티스토리 뷰
이 글은 토비의 스프링 3.1 Vol.1 서적을 토대로 다른 자료들을 함께 참고하여 정리한 내용입니다.
스프링이란?
스프링은 자바 엔터프라이즈 애플리케이션 개발에 사용되는 애플리케이션 프레임워크다.
애플리케이션 프레임워크란?
개발을 빠르고 효율적으로 할 수 있도록 애플리케이션의 바탕이 되는 툴과 공통 프로그래밍 모델, 기술 API를 제공해준다.
(개발자를 편하게 해주는 표준 틀이라고 생각하면 될 것 같다.)
스프링 컨테이너란?
스프링은 스프링 컨테이너 또는 애플리케이션 컨텍스트라고 불리는 스프링 런타임 엔진을 제공한다. 설정정보를 참고하여 애플리케이션을 구성하는 오브젝트 생성하고 관리한다. 독립적으로 동작할 수 있지만 웹모듈에서 동작하는 서비스나 서블릿으로 등록하여 사용한다.
스프링을 사용하기 위해서는 이 스프링 컨테이너를 다루는 방법과 스프링 컨테이너가 애플리케이션 오브젝트를 이용할 수 있도록 설정정보를 작성하는 방법을 알아야한다.
공통 프로그래밍 모델?
프레임워크는 어플리케이션 구성 오브젝트들의 생성과 동작 방식에 대한 틀도 제공해 줄 뿐만 아니라
애플리케이션 코드가 어떻게 작성되어야 하는지에 대한 기준도 제시한다. 이 기준을 프로그래밍 모델 이라고 한다.
스프링에는 3가지 핵심 프로그래밍 모델을 지원한다. (흔히 스프링의 3대 요소라고 한다.)
1) IoC/DI : 오브젝트 생명 주기와 의존관계에 대한 프로그래밍 모델이다. (스프링의 가장 근간을 이루는 모델)
2) 서비스 추상화: 구체적인 기술과 환경에 종속되지 않도록 유연한 추상계층을 두는 방법이다.
3) AOP: 애플리케이션 코드에서 흩어져서 나타나는 부가적인 기능을 독립적으로 모듈화하는 모델.
다양한 엔터프라이즈 서비스를 적용하고도 깔끔한 코드를 유지할 수 있도록 해준다.
기술API?
다양한 영역에 바로 활용할 수 있는 방대한 양의 기술 API를 제공한다. 다양한 계층에 필요한 주요 기술을 스프링에서 일관된 방식으로 사용할 수 있도록 지원하는 기능과 전략 클래스를 제공한다. 스프링이 제공하는 API와 지원 기술은 모두 스프링의 프로그래밍 모델에 따라 작성되어 있기 때문에 가져다 쓰는 것 만으로도 스프링 프로그래밍 모델을 코드에 자연스럽게 적용하게 된다.
즉, 스프링을 사용한다는 것은 이 3가지 요소를 활용하여 애플리케이션을 개발한다는 것이다.
1) 클래스를 스프링 컨테이너 위에서 오브젝트로 관리 되도록 하며
2) 코드는 스프링의 프로그래밍 모델에 따라 작성하고
3) 엔터프라이즈 기술을 사용할 때는 스프링 기술 API 및 서비스를 활용한다.
출처:
1. 토비의 스프링 3.1 Vol.1 스프링의 이해와 원리
2. https://data-flair.training/blogs/spring-ioc-containers/
'Java > Spring' 카테고리의 다른 글
IoC (Inversion of Control) 그리고 DI (Dependency Injection) (0) | 2023.08.21 |
---|
- Total
- Today
- Yesterday
- 디자인패턴
- digital tree
- Java #GC #가비지콜렉터 #Garbage Collector
- WORE
- 신규 아이디 추천
- PatternSyntaxException
- 2020 KAKAO
- 스프링 컨테이너
- jvm
- nginx 내부
- Java #JIT #JVM
- behavior parameterization
- okhttp3
- trie 소스코드
- 카카오
- 카카오 코테
- 스프링
- Kakao Blind
- KAKAO 2021
- 2021
- 코테
- 모던 자바 인 액션
- Java
- 2019 Kakao Blind
- decorator
- 카카오 인턴
- 프로그래밍 모델
- 카카오코테
- IOC
- WORA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |