백앤드 개발일지/스프링부트
스프링 프레임워크
giron
2021. 7. 2. 17:49
728x90
스프링 프레임워크란?
- 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크이다.
- 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다
특징
- 경량 컨테이너로서 자바 객체를 직접 관리한다. 각각의 객체 생성, 소멸과 같은 라이프 사이클을 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있다.
- 제어 반전(IoC : Inversion of Control)을 지원한다. 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드를 호출한다.
- 의존성 주입(DI : Dependency Injection)을 지원한다. 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다.
- 관점 지향 프로그래밍(AOP : Aspect-Oriented Programming)을 지원한다. 따라서 트랜잭션이나 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리할 수 있다.
- 스프링은 영속성과 관련된 다양한 서비스를 지원한다. MyBatis나 하이버네이트 등 이미 완성도가 높은 데이터베이스 처리 라이브러리와 연결할 수 있는 인터페이스를 제공한다.
제어 반전(IoC : Inversion of Control)
- 외부 라이브러리의 코드가 프로그래머가 작성한 코드를 호출한다.
의존성 주입(DI : Dependency Injection)
- 클라이언트가 어떤 서비스를 사용할 것인지 지정하는 대신, 클라이언트에게 무슨 서비스를 사용할 것인지를 말해주는 것이다.
- 이점
- 객체의 생성과 사용의 분리
- 가독성과 코드 재사용을 높여준다.
- 의존 관계 설정이 실행시에 이루어져 모듈들 간의결합도를 낮출 수 있다.
- 모의 객체 등을 이용한 단위 테스트의 편의성을 높여준다.
728x90