스프링 프레임워크 본문

백앤드 개발일지/스프링부트

스프링 프레임워크

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
Comments