스프링이란 무엇인가?
- 자바 기반의 다양한 애플리케이션을 만드는 것을 도와준다.
- 웹 뿐만 아니라 배치 등 다양한 영역을 포괄한다.
- 애플리케이션 코드에 언제나 존재하는 공통 영역에 대한 작성을 쉽고 깔끔하게 만들어준다.
공통 프로그래밍 모델
이라는 것을 지원한다.- 트랜잭션 처리, 다국어 처리, AOP 처리 등 애플리케이션에는 언제나 공통 영역이 존재한다.
- 애플리케이션에 자주 사용되는 다양한 기술 API도 제공한다.
CGLIB
,Jackson(Object Mapper)
등 ...
스프링 컨테이너
- 스프링 설정 정보(
@Configuration
)로 생성된 객체들을 일반적으로 싱글톤으로 관리한다.- 물론 빈 스코프 설정에 따라 항상 싱글톤은 아닐 수 있다.
객체지향 원칙을 지키기 어려운 싱글톤의 단점을 해소해준다.
공통 프로그래밍 모델
IoC/DI
- 제어의 역전과 의존성 주입
- 싱글톤 패턴을 이용하면서도 객체지향의 다양한 이점을 활용할 수 있게 해준다.
- 변화에 유연한 설계를 돕는다.
서비스 추상화
- 비슷한 역할을 하는 다른 기술들을 묶어줌
- ex)
ProxyFactory
는JDK 동적 프록시
,CGLIB
등 프록시 기술 선택의 기로에서 해방시켜준다. - ex) DB 벤더에 영향을 받지 않는 트랜잭션 처리 기술
AOP
- 애플리케이션에서 많은 메서드, 클래스 등에 공통 부가기능을 넣고 싶을 때 중복된 코드 없이 이를 실현할 수 있게 해준다.
- 로깅, 소요시간 측정 등에 사용될 수 있다.
반응형
'프레임워크 > 토비의 스프링' 카테고리의 다른 글
토비의 스프링 5장 요약 정리 - 서비스 추상화 (0) | 2022.09.06 |
---|---|
토비의 스프링 4장 요약 정리 - 예외 처리 (0) | 2022.06.21 |
토비의 스프링 3장 요약 정리 - 템플릿 (0) | 2022.06.20 |
토비의 스프링 2장 요약 정리 - 테스트 (2) | 2021.12.26 |
토비의 스프링 1장 요약 정리 - 오브젝트와 의존관계 (3) | 2021.12.26 |