Spring에 관한 문서나 책에 자주 등장할만한 용어들을 정리하고자 한다.
용어들은 계속해서 추가해나갈 것이다.
1. DI(의존성 주입)
- 추상화 계층을 통해 모듈을 쉽게 교체할 수 있도록 만드는 것
2. 개방 폐쇄 원칙
- 클래스나 모듈은 확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다는 원칙
- 변화가 일어나지 않고도 기능을 확장할 수 있도록 하는 것이 주 목적이다.
3. SOLID
- 다음 5가지 객체지향 설계 원칙의 각 첫 글자를 따서 만든 단어이다.
* SRP(The Single Responsibility Principle) : 단일 책임 원칙
* OCP(The Open Closed Principle) : 개방 폐쇄 원칙
* LSP(The Liskov Substitution Principle) : 리스코프 치환 원칙
* ISP(The Interface Segregation Principle) : 인터페이스 분리 원칙
* DIP(The Dependency Inversion Principle) : 의존관계 역전 원칙
4. 응집도와 결합도
- 응집도(Coherence) : 하나의 모듈, 클래스가 하나의 책임 또는 관심사에만 집중되어 있는 정도로, 높을 수록 좋다.
- 결합도(Coupling) : 하나의 모듈, 클래스가 변경이 일어날 때에 관계를 맺고 있는 다른 대상에게 변화를 요구하는 정도로, 낮을 수록 좋다.
5. 전략 패턴
- 자신의 기능 맥락에서 필요에 따라 변경이 필요한 알고리즘을 인터페이스를 통해 통째로 외부로 분리시키고, 이를 구현한 구체적인 알고리즘 클래스를 필요에 따라 바꿔서 사용할 수 있도록 하는 패턴이다.
※ 여기서 알고리즘은 독립적인 책임으로 분리가 가능한 기능을 뜻한다.
- 대체 가능한 전략이라는 의미로 전략 패턴이라고 하는 것이다.
6. 제어의 역전(Inversion of Control)
- 자신에 대한 제어 권한을 다른 대상에게 위임해서, 자신은 그 외의 작업에만 집중할 수 있도록 하는 것이다.
- 능동적이었던 자신을 수동적인 입장으로 바꾸는 것이다.
- 프레임워크도 제어의 역전 개념이 적용된 기술이다. 라이브러리는 애플리케이션 코드가 사용하지만, 프레임워크는 애플리케이션 코드를 사용한다.
7. Bean
- Spring이 제어권을 가지는 오브젝트
- 기본적으로 싱글톤 타입으로 관리되며, 범위 설정이 가능하다.
- static과 달리 의존성 주입이 가능하다는 차이점이 있다.
8. Application Context
- IoC 방식을 따라 만들어진 Bean 팩토리의 기능과 스프링이 제공하는 애플리케이션 지원 기능을 통틀어 말한다.
- Bean 오브젝트의 생성, 관계설정 등의 제어 작업을 총괄한다.
- IoC 컨테이너, 스프링 컨테이너라고 부르기도 하고, 단순히 Bean 팩토리라고 부르기도 한다.
9. POJO
- Plain Old Java Object의 약자로, 환경과 기술에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 객체지향적인 원리에 충실한 오브젝트를 말한다.
10. STS
- 이클립스의 기본 설치 버전에는 없는 스프링 개발 지원 플러그인들이 포함되어 있는 이클립스 환경이다.
11. Factory
- 특정 오브젝트를 요구하면서 오브젝트를 생성하거나 가져오는 방식을 신경쓰지 않도록 중간에서 역할하는 오브젝트
12. FlashMap
- 하나의 요청에서 생성되어 다음 요청에서 한 번 사용되고 바로 제거 되는 정보를 의미한다.
- 여러 개의 attribute를 저장할 수 있도록 맵 타입으로 되어 있다.
- 스프링의 플래시 맵은 요청 사이에 다른 요청이 끼어드는 문제나 플래시가 제때에 제거되지 않아서 발생하는 메모리 누수 문제를 해결하는 기능을 제공하며, 보통 POST 요청을 처리하는 컨트롤러에서 생성된다.
- 플래시 맵, 플래시 맵 매니저, 플래시 맵 애트리뷰트는 RequestContextUtils로부터 가져와서 사용할 수 있다.
- 플래시 맵 정보를 저장하고 가져오는 방법이 Spring 3.1의 새로운 Dispatcher 전략으로 추가되었으며, 기본적으로 HTTP 세션을 이용하는 SessionFlashMapManager 전략을 사용한다.
13. DDD(Domain Driven Design)
- 도메인 주도 설계라고 하며, 도메인 오브젝트에 비즈니스 로직을 대부분 적용하는 설계 기법이다.
'Spring 사전 준비 > About Spring' 카테고리의 다른 글
Spring 소개 (0) | 2020.11.10 |
---|
댓글