일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- Dijkstra
- 아키텍처
- db
- 백준
- 프로그래머스
- DFS
- 레디스
- 자료구조
- nosql
- deque
- 캐싱
- 운영체제
- OS
- 영속성 컨텍스트
- CS
- Algorithm
- HTML
- java
- 플로이드-워셜 알고리즘
- 데이터베이스
- 알고리즘
- BFS
- Data structure
- CSS
- It
- redis
- 완전탐색
- jpa
- javascript
- PYTHON
Archives
- Today
- Total
If at first you don't succeed, try again
[Spring] 오브젝트와 의존관계 본문
- 전략 패턴 : 개방 폐쇄 원칙의 실현에 가장 잘 들어 맞는 패턴. 전략 패턴은 자신의 기능 맥락에서 필요에 따라 변경이 필요한 알고리즘을 인터페이스를 통해 통째로 외부로 분리시키고, 이를 구현한 구체적인 알고리즘 클래스를 필요에 따라 바꿔서 사용할 수 있게 하는 디자인 패턴.
- 라이브러리 vs 프레임워크 : 라이브러리를 사용하는 애플리케이션 코드는 애플리케이션 흐름을 직접 제어한다. 단지 동작하는 중에 필요한 기능이 있을 때 능동적으로 라이브러리를 사용한다. 반면에 프레임워크는 거꾸로 애플리케이션 코드가 프레임워크에 의해 사용된다.
- Spring Bean 오브젝트란? : 스프링에서 스프링이 제어권을 가지고 직접 만들고 관계를 부여하는 오브젝트. 스프링 빈은 스프링 컨테이너가 생성과 관계설정, 사용 등을 제어해주는 제어의 역전(IoC)이 적용된 오브젝트
- Bean Factory? Application Context? : 빈의 생성과 관계 설정 같은 제어를 담당하는 IoC 오브젝트를 빈 팩토리라고 부른다. 하지만 보통 빈 팩토리보다는 이를 좀 더 확장한 애플리케이션 컨텍스트(Application Context)를 주로 사용한다. 빈 팩토리 < 애플리케이션 컨텍스트 처럼 애플리케이션 컨텍스트가 전반적으로 좀 더 큰 개념. 빈 팩토리 = IoC의 기본 기능에 초점. 애플리케이션 컨텍스트 = 모든 구성요소의 제어 작업하는 IoC 엔진
- 빈 팩토리 (BeanFactory)
- Spring의 가장 기본적인 IoC(Inversion of Control) 컨테이너로, 객체(빈)를 생성하고 DI(의존성 주입)를 관리한다.
- Lazy loading 방식으로 필요할 때 빈을 생성한다. 즉, 빈이 실제로 요청될 때만 초기화된다.
- 애플리케이션 컨텍스트 (ApplicationContext)
- BeanFactory를 확장한 더 큰 기능의 IoC 컨테이너. 빈을 생성하고 관리하는 기능 외에도 여러 부가 기능을 제공.
- Eager loading 방식으로 기본적으로 애플리케이션이 시작될 때 모든 빈을 미리 초기화한다.
- Lazy Loading (지연 로딩) : 객체를 실제로 필요할 때까지 로드하지 않고, 해당 객체에 대한 접근이 이루어질 때 로드하는 방식이다.
- Eager Loading (즉시 로딩) : 객체를 사용할 준비가 되었을 때, 즉시 관련된 모든 데이터를 로드하는 방식이다.
- 의존관계 주입(Dependency Injection)
- 클래스 모델이나 코드에는 런타임 시점의 의존관계가 드러나지 않는다. 그러기 위해서는 인터페이스에만 의존하고 있어야 한다.
- 런타임 시점의 의존관계는 컨테이너나 팩토리 같은 제3의 존재가 결정한다.
- 의존 관계는 사용할 오브젝트에 대한 레퍼런스를 외부에서 제공해줌으로써 만들어진다.
'Java > Spring' 카테고리의 다른 글
[Spring] 의존성 주입 (0) | 2024.10.16 |
---|---|
[Spring] Springboot 사용법과 MVC 패턴 (0) | 2022.12.30 |