* Spring의 특징
1. DI (Dipendency Injection) : Spring 프레임워크에 의존성을 주입하면서 객체 간 결합을 느슨하게 하여 코드의 재사용성 증가 및, 단위 테스트 용이하다.
2. IOC (Inversion Of Control) : 의존성 주입의 한 형태로, 객체의 생성 및 생명 주기를 제어하는 책임을 개발자가 아닌 프레임워크에 위임한흔 것을 말한다. 개발자는 객체의 구체적인 구현에 의존하지 않고 객체의 인터페이스에만 의존할 수 있다. 이는 코드의 재사용성과 유지보수성을 향상 시킬 수 있다.
- Spring은 IoC를 구현하는 다양한 방법을 제공하는게 가장 일반적인 방법은 컨테이너에 객체를 등록하고 컨테이너에서 객체를 주입하는 방법이다. 컨테이너는 객체의 생명주기를 관리하고, 개발자는 객체의 인터페이스에만 의존할 수 있다.
3. AOP (Aspect Oriented Programming) 횡단 관심사를 처리하는데 사용됨. 횡단 관심사는 애플리케이션의 주요 기능과 관련이 없는 로깅, 보안 및 트랜잭션 등이 횐당 관심사이다. AOP는 횡단 관심사를 애플리케이션 코드에서 분리하고 프록시 오브젝트를 사용하여 애플리케이션 코드에 추가하는 데 사용됨.
* Spring Boot의 특징
1. Embed Tomcat을 사용하여 따로 tomcat을 설치하지 않고 jar로 간편하게 배포할 수 있다.
2. starter를 통한 dependency 자동화 spring framwork는 각각의 dependency의 호환 버전을 일일이 맞추어야 했고, 하나의 버전을 올리면 다른 dependency에 영향을 미쳐 버전 관리에 어려움이 있었지만 starter가 대부분의 dependency를 관리해주어 편리ㅏ하다.
3. EnableAutoConfiguration 사전에 정의한 라이브러리들을 Bean에 등록하여 준다.
Q. Starter 란?
A. 특정 기능이나 기술 스택을 쉽게 사용하기 위해 필요한 라이브러리나 설정을 모아놓은 의존성 관리 세트.
* Starter 특징
1. 의존성 번들 제공 : 특정 기능에 필요한 여러 라이브러리들을 하나의 의존성 (Starter)로 묶어서 제공하기 때문에 pom.xml 혹은 build.gradle 파일에 단 하나의 starter 의존성만 추가하면 관련 라이브러리들이 자동으로 포함됨.
2. 버전 및 호환성 관리 용이 : spring-boot-starter-web 를 추가하면 웹 애플리케이션 개발에 필요한 스프링 MVC, 임베디드 톰켓, Jackson 라이브러리 등을 알아서 맞추어 가져옴.
'Computer Science > Spring' 카테고리의 다른 글
WebApplication 이해 (2) | 2024.12.18 |
---|---|
Spring 트래픽 처리 방법 (0) | 2024.12.10 |
동기 방식으로 외부 서비스를 호출할 때 외부 서비스 장애가 나면 어떻게 조치할 수 있을까. (0) | 2024.12.10 |
JSON에 대해서 ( Serialiazation, Deserialization ) (2) | 2024.12.08 |
@Component, @Controller, @Service, @Repository 차이점 (1) | 2024.12.08 |