백엔드
-
[TIL #15-1][JAVA] genericCodeStates_Backend/TIL (Today I Learned) 2022. 5. 24. 10:30
코드스테이츠 백엔드 부트캠프 39기 23일차, 05/17 🍭 Generic generic 의 사전적 의미는 '총칭의, 포괄적인, 특정되지 않은' 이다. 자바에서 generic 은 '데이터 타입이 특정되지 않았을 때'라는 의미로 데이터 타입이 특정되지 않는 경우에 사용되는 키워드이다. JDK 1.5 이전에는 여러가지 타입을 관리해야하는 경우(=데이터 타입이 특정되지 않은 경우) Object 타입을 사용하였다. 하지만 이 경우 반환된 Object 객체를 다시 원하는 타입으로 변환해야 하는 과정이 필요하며 이 때 오류가 발생할 가능성마저 존재한다. 예제 코드를 보면, public class Basket { private Object object; Basket(Object object) { this.object..
-
[TIL #14-2][JAVA] 객체지향 프로그래밍 심화, 추상화CodeStates_Backend/TIL (Today I Learned) 2022. 5. 22. 13:54
코드스테이츠 백엔드 부트캠프 39기 19일차, 05/13 추상화 🍕 개요 자바에서 추상화란 객체의 공통적인 속성과 기능을 추출하여 정의하는 것이다. ⭐️ 추상화의 장점 1️⃣ 코드의 중복을 줄일 수 있다. 2️⃣ 클래스간의 관계를 효과적으로 설정할 수 있다. 3️⃣ 유지보수에 용이하다. 자바에서는 '추상 클래스'와 '인터페이스' 라는 문법 요소로 추상화를 구현한다. 상속계층도의 상층부에 위치할수록 추상화의 정도가 높고 그 아래로 내려갈수록 구체화된다. 🍕 abstract 제어자 자바의 제어자는 크게 '접근 제어자'와 '기타 제어자'로 구분될 수 있고, 기타 제어자에서 가장 빈번하게 사용하는 제어자 중 하나가 abstract 이다. abstract 의 사전적 의미는 '추상적인'인데 자바의 맥락에서는 '..
-
[TIL #13-2][JAVA] 객체지향 프로그래밍 심화, 캡슐화(패키지, 접근 제어자, getter, setter)CodeStates_Backend/TIL (Today I Learned) 2022. 5. 21. 11:24
코드스테이츠 백엔드 부트캠프 39기 18일차, 05/12 캡슐화 (Encapsulation) 🧲 개요 속성 , 기능 을 하나의 캡슐로 감싸는 것. 목적은 크게 3가지로 나뉜다. 1️⃣ 데이터의 보호 👉 외부로부터 속성과 기능이 함부로 변경되지 못하게 막음, 데이터가 수정되어도 다른 객체에 영향을 주지 않아 독립성 확보(=정보 은닉; Data Hiding) 2️⃣ 데이터의 불필요한 외부 노출을 방지 3️⃣ 유지보수, 코드 확장 시 오류 범위를 최소화 🛟 '캡슐'이라 함은 개념적인 표현으로, 감싸서 보호한다는 의미가 중요한 것이라고 생각한다. 클래스가 될 수도 있고 접근제어자가 될 수도 있고 객체가 될 수도 있고 블록이 될 수도 있을 것이다. 🛟 자바에서는 접근 제어자(Access Modifier)가 캡슐화..
-
[TIL #13-1][JAVA]객체지향 프로그래밍 심화, 상속(오버라이딩, super()와 super)CodeStates_Backend/TIL (Today I Learned) 2022. 5. 18. 15:59
코드스테이츠 백엔드 부트캠프 39기 18일차, 05/12 객체지향 프로그래밍 심화 객체지향의 4대 기둥 상추다캐!! 👉 상속, 추상화, 다형성, 캡슐화 📌 상속 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속에 상속에 상속 . . . 도 가능하다. 예를 들면 interface Animal {public abstract void cry();} // 인터페이스 선언. public abstract 생략 가능. interface Pet {void play();} class Cat implements Animal, Pet { // Animal과 Pet 인터페이스 다중 구현 public void cry(){ System.out.println("야옹~!"); } public void play(){ ..
-
[TIL #12][JAVA] 생성자, this 와 this()CodeStates_Backend/TIL (Today I Learned) 2022. 5. 16. 20:59
코드스테이츠 백엔드 부트캠프 39기 17일차, 05/11 생성자 new 키워드를 사용하여 객체를 생성할 때 호출되는 것이 바로 생성자이다. 생성자는 인스턴스가 생성될 때 인스턴스를 초기화하는 역할을 한다. 붕어빵틀에서 붕어빵을 만들때 어떤 녀석은 팥붕어빵, 어떤 녀석은 슈크림붕어빵으로 만들어내지 않는가? 생성자가 팥인지 슈크림인지를 지정해주는 역할을 하는 것이다. 🏐 생성자 이름은 클래스명과 같아야 한다. 🏐 생성자는 리턴타입이 없으며 void 를 사용하지 않는다. 🏐 생성자도 오버로딩이 가능하다. 그래서 여러개의 생성자가 존재할 수 있는것. 🏐 생성자가 하나도 없으면 컴파일러가 자동으로 기본 생성자를 만들어 준다. 단, 하나라도 다른 생성자가 존재하면 기본 생성자를 만들어 주지 않으며, 이 때 기본 생..
-
[TIL #11-2][JAVA] 객체지향 프로그래밍(OOP, Object Oriented Programming) 개념, 클래스, 객체, 필드, 메서드CodeStates_Backend/TIL (Today I Learned) 2022. 5. 16. 14:38
코드스테이츠 백엔드 부트캠프 39기 16일차 , 05/10 앞으로의 TIL 블로깅에서는 내용을 축약하는 경우도 있을 것이다. 그 이유는 다음과 같다. "부트캠프 과정의 모든 학습내용을 자세히 블로깅하려다 보니 시간이 매우 부족했다. 현재도 TIL 정리해야할 내용이 쌓여있다." "이 블로깅은 나의 복습이 주된 목적이며, 나의 정리보다 훨씬 더 나은 수많은 정보들을 접할 수 있기 때문이다." 물론 중요한 내용이라면 상세히 기록하겠지만, 그렇지 않을 경우 조금 불친절하더라도 보시는 분들께는 양해를 구하고 싶다. 객체지향 프로그래밍 개념 음.. 철학적이다. 추상적으로 어떠한 느낌인 지(?)는 알겠지만 선뜻 정확히 써내려가기 어렵다는 생각이 든다. 핵심을 문장으로 표현해보겠다. 🔘 Everything is Obj..
-
[TIL #9-2][JAVA] 배열CodeStates_Backend/TIL (Today I Learned) 2022. 5. 14. 18:18
코드스테이츠 백엔드 부트캠프 39기 12일차 배열 선언 두 가지 방법으로 선언이 가능하다. int[] arr; int arr[]; 여기서 arr은 참조변수로 배열의 주소값을 가진다. 초기화 🍒 new int[ 크기 ] 만 가능하다. new[ ] int 는 없음. 🍒 배열 객체를 생성하고 초기화를 하지 않고 선언만 한다면 해당 데이터타입의 기본값으로 자동 초기화가 된다. // 선언 후 초기화 int[] arr; arr = new int[5]; // arr -> {0, 0, 0, 0, 0} // 배열의 요소에 값을 지정하지 않으면 각 요소는 해당 타입의 기본값으로 자동으로 채워집니다. 다차원 배열 다차원 배열 int[][] arr = new int[3][] 을 생성했다면, arr , arr[0] , arr[..