새로운 내용을 공부할 때
새로운 내용의 공부를 시작할 때 용어의 정의를 이해하지 못하거나 정확하게 알지 못한다면 그 용어가 포함된 문장을 이해하지 못합니다.
작은 단어 하나가 내용을 이해하지 못하게 하기 때문에 용어를 정확하게 이해하는 것이 중요합니다.
스프링 3.1 1장 정리
기술 도서 학습 정리
학습 주제
- 학습한 장(Chapter) 또는 소단원의 제목:
- 예시: “1.4 제어의 역전(IoC)”
학습 목표
- 이번 학습에서 달성하려는 목표를 작성.
- 예시:
- IoC의 개념과 DI의 차이를 명확히 이해한다.
- 팩토리 패턴과 IoC 컨테이너의 차이를 설명할 수 있다.
- 예시:
핵심 질문
- 학습 시작 전에 스스로 설정한 질문들:
- 예시:
- IoC는 왜 필요한가?
- IoC 컨테이너는 어떻게 동작하나?
- 팩토리 패턴과 IoC의 차이점은 무엇인가?
- 예시:
핵심 내용 요약
- 책에서 배운 핵심 개념과 내용을 간단히 요약.
- 예시:
- IoC(Inversion of Control): 객체의 생성과 의존성 관리를 개발자가 아닌 컨테이너가 담당하는 설계 원칙.
- 스프링 IoC 컨테이너: 애플리케이션 컨텍스트(ApplicationContext)를 통해 객체의 생성, 초기화, 의존성 주입, 생명주기 관리가 이루어진다.
- 팩토리 패턴 vs IoC: 팩토리는 객체를 생성하지만, IoC 컨테이너는 객체 생성 외에도 의존성 관리와 생명주기 관리까지 제공한다.
- 예시:
코드 예제 및 분석
-
책의 코드 예제를 작성하고, 직접 실행해본 결과와 분석.
-
예시:
java코드 복사public class DaoFactory { public UserDao userDao() { return new UserDao(new ConnectionMakerImpl()); } }
- 분석: DaoFactory를 사용해 UserDao 객체를 생성하고 의존성을 주입함으로써 객체 간 결합도를 낮추었다.
-
질문에 대한 답변
- 학습 후 처음에 설정했던 질문들에 답변.
- 예시:
- IoC는 왜 필요한가? → 객체 생성 및 의존성 관리의 책임을 분리하여 코드의 유연성과 테스트 가능성을 높이기 위해.
- IoC 컨테이너는 어떻게 동작하나? → XML이나 자바 설정 파일로 의존성 정보를 정의하고, 런타임에 객체를 생성하고 주입한다.
- 팩토리 패턴과 IoC의 차이점은 무엇인가? → 팩토리는 객체 생성만 담당하지만, IoC는 객체의 의존성 관리와 생명주기까지 처리한다.
- 예시:
실습 및 응용
-
배운 내용을 바탕으로 스스로 작성한 코드나 변형한 코드와 그 결과.
-
예시:
java코드 복사public interface ConnectionMaker { Connection makeConnection(); } public class MyConnectionMaker implements ConnectionMaker { @Override public Connection makeConnection() { // 커넥션 로직 구현 } }
- 응용: ConnectionMaker를 구현한 MyConnectionMaker를 UserDao에 주입하여 커넥션 방식을 유연하게 변경 가능.
-
느낀 점 및 개선점
- 학습 과정에서 느낀 점, 어려웠던 점, 또는 더 깊이 공부하고 싶은 내용.
- 예시:
- IoC와 DI의 개념이 헷갈렸는데, 코드 예제와 비교 분석을 통해 이해도가 높아졌다.
- 애플리케이션 컨텍스트의 동작 방식을 더 깊이 탐구할 필요가 있음.
- 예시:
핵심 키워드
- 학습한 내용을 요약하는 키워드.
- 예시: IoC, DI, 의존성 주입, 스프링 컨테이너, 애플리케이션 컨텍스트, 팩토리 패턴, 결합도
복습 계획
- 학습 내용을 복습하기 위한 계획 작성.
- 예시:
- 24시간 내에 학습 내용을 노트에서 다시 읽기.
- 1주일 후 배운 개념을 프로젝트에 적용하거나 코드 예제를 다시 작성해보기.
- 예시:
댓글남기기