til
-
[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 #11-1][블로그] 블로깅에 대해CodeStates_Backend/TIL (Today I Learned) 2022. 5. 14. 19:02
코드스테이츠 백엔드 부트캠프 39기 16일차 , 05/10 WHY? 🍖 기억은 잊혀진다. 기록은 잊혀지지 않는다. 나만의 정보저장소가 된다. 🍖겪었던 문제를 해결한 경험을 기록함으로써 문제해결능력을 볼 수 있다. 🍖메타인지 - 블로깅 중에 무엇을 모르는 지 스스로 알게 된다. HOW? 🍖 TIL : 학습 내용, 느낀점, 기술 내용 등 🍖 Error Handling Log : 문제 해결 경험에 대한 기록 🍖 회고 : Daily, Weekly, Monthly 등. 보여주기식 회고는 아무 의미가 없다. 무엇이 좋았고 무엇이 문제였는가 그리고 어떻게 발전해나갈것인가.. 끝