스프링의 핵심

Minseo Kang·2023년 2월 11일
1

Spring Boot

목록 보기
11/27
post-thumbnail

01. Spring


1) Spring 1.0 버전은 2004년 3월 출시

2) 지난 20년 동안 계속 자바 엔터프라이즈 어플리케이션 개발 최고의 자리를 차지

3) 스프링 프레임워크는 20여 가지로 구성(https://spring.io/projects/spring-framework)

4) 모듈들은 스프링의 핵심 기능(DI, AOP 등)을 제공하며, 필요한 모듈만 선택하여 사용 가능

5) 현재 단일 아키텍처(모놀리스) 마이크로서비스 아키텍처로 변환 중이며, 여기에 맞춰 스프링도 진화하고 있는 상태

6) 스프링 부트, 스프링 클라우드, 스프링 데이터, 스프링 배치, 스프링 시큐리티에 중점




02. Spring 개발


1) Spring은 '테스트 용이성', '느슨한 결합'에 중점을 두고 개발

2) 2000년대 초 자바 EE 애플리케이션은 작성이 어려웠고, 한 번 테스트 하는 것이 번거로웠기에 느슨한 결합이 된 애플리케이션 개발이 힘든 상태였고, 데이터베이스와 같이 외부에 의존성을 두는 경우에는 단위테스트가 불가능 했음




03. IoC와 AOP


IoC

  • 스프링이 다른 프레임워크와의 가장 큰 차이점이 IoC를 통한 개발 진행

AOP

  • AOP를 사용하여 로깅, 트랙잭션 관리, 시큐리티에서의 적용 등 AspectJ와 같이 완벽하게 구현된 AOP와 통합하여 사용 가능



04. POJO


POJO

  • IoC/DI 의존 관계 주입

  • AOP 관점 중심 프로그램

  • PSA 이식 가능한 추상화




참고


스프링 부트스프링 애플리케이션을 만들 때에 필요한 초기 설정을 간편하게 해주는 프레임워크
스프링 클라우드MSA 구성을 지원하는 스프링 부트 기반의 프레임워크
스프링 데이터DB와 관련된 많은 하위 프로젝트를 포함하는 프로젝트
스프링 배치엔터프라이즈 시스템의 운영에 있어 대용량 일괄처리의 편의를 위해 설계된 가볍고 포괄적인 배치 프레임워크
스프링 시큐리티스프링 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크

MSA : 마이크로 서비스 아키텍처(Micro Service Architecture)의 약자로 단일 프로그램을 각 컴포넌트 별로 나누어 작은 서비스의 조합으로 구축하는 방법

0개의 댓글