본문 바로가기

BOOK/토비의스프링

[토비의 스프링 2권] 4일차

컨테이너 인프라빈

스프링은 BeanPostProcessor나 BeanFactoryPostProcessor 같은 확장 포인트를 제공한다. 이런 인터페이스를 구현한 크래스가 빈으로 되어 있다면 스프링 컨테이너는 스스로를 확장하는 데 이를 이용한다.

 

컨테이너의 기능을 확장해주는 6개의 빈(3.1버전)

- ConfigurationClassPostProessors

- AutowiredAnnotationBeanPostProcessor

- AutowiredAnnotationBeanPostProcessor

- RequiredAnnotationBeanPostProcessor

- PersistenceAnnotationBeanPostProcessor

 

2.1 DAO 패턴 

DTO 또는 도메인 오브젝트만을 사용하는 인터페이스를 통해 데이터 엑세스 기술을 외부에 노출하지 않도록 만드는 것이다.

따라서 DAO는 구현 기술에 대한 정보를 외부에 공개해서는 안된다.

DAO 내부에서 던져지는 에러는 RuntimeError 따라서 대부분의 예외는 직접 다뤄야할 이유가 없다.

 

2.1.2 템플릿과 API

스프링은 DI의 응용 패턴인 템플릿/콜백 패턴을 이용해 이런 판에 박힌 코드를 피하고 꼭 필요한 바뀌는 내용만을 담을 수 있도록 데이터 액세스 기술을 위한 템플릿을 제공한다.

 

풀링 기법 활용 -> DB 커넥션을 풀준비해두고, 애플리케이션이 요청할때마다 풀에서 꺼내 하나씩 할당해주고 다시 돌려받아서 풀에 넣는 식의 폴링 기법을 이용한다.