728x90
Spring
- Spring 1.0 버전은 2004년 3월 출시, 지난 20년 세월 동안 자바 엔터프라이즈 어플리케이션 개발의 최고의 자리를 차지
- 스프링 프레임워크의 구성은 20여 가지로 구성, 이러한 모듈들은 스프링의 핵심기능(DI, AOP, 등) 을 제공해 주며, 필요한 모듈만 선택하여 사용 가능
- 현재 단일 아키텍쳐(모놀리스) 에서 마이크로서비스 아키텍쳐로 변환 중이다.
- 여러 가지 모듈이 있지만 그 중에서 스프링 부트, 스프링 클라우드, 스프링 데이터, 스프링 배치, 스프링 시큐리티에 중점을 둔다.
- 스플리의 과제는 "테스트의 용이성", "느슨한 결합" 에 중점을 두고 개발됐다.
- 스프링이 다른 프레임워크와의 가장 큰 차이점이 IoC 를 통한 개발이다.
- AOP 를 사용하여 로깅, 트랜잭션 관리, 시큐리티에서의 적용 등 AspectJ 와 같이 완벽하게 구현된 AOP 와 통합하여 사용 가능 하다.
IoC(Inversion of Control)
- 스프링에서는 일반적인 Java 객체를 new 로 생성하여 개발자가 관리하는 것이 아닌 Spring Container 에 모두 맡긴다. 즉, 개발자에서 프레임워크로 객체를 제어하는 객체 관리의 권한이 넘어 갔음으로 "제어의 역전" 이라고 한다.
DI(Dependency Injection)
- 의존성으로부터 격리시켜 코드 테스트에 용이
- DI 를 통하여, 불가능한 상황을 Mock 과 같은 기술을 통해 안정적으로 테스트가 가능하다.
- 코드를 확장하거나 변경 할 때 영향을 최소화 한다.(추상화)
- 순환참조를 막을 수 있다.
AOP(Aspect Oriented Programming)
관점지향 프로그래밍, 스프링 어플리케이션은 대부분 특별한 경우를 제외 하고는 MVC 로 정의된다.(Web Layer, Business Layer, Data Layer)
- Web Layer : REST API 를 제공하며, 클라이언트 중심의 로직 적용
- Business Layer : 내부 정책에 따른 로직을 개발하며, 주로 해당 부분을 개발하게 된다.
- Data Layer : 데이터 베이스 및 외부와의 연동을 처리한다.
주요 어노테이션
728x90