스프링 핵심가치

한영진·2022년 12월 27일
0

1.제어 역전(IoC)

일반적으로 자바에서는 개발자가 객체를 생성하고 직접 제어하는 구조입니다.반면 제어역전을 특징으로 하는 스프링은 사용할 객체를 직접 생성하지 않고 객체의 생명주기 관리를 스프링 컨테이너에 위임하는데, 이렇게 제어권이 넘어간 것을 제어역전이라고 부릅니다. 제어역전을 통해 나머지 핵심가치인 의존성 주입, 관점지향 프로그래밍 등이 가능해집니다.

2.의존성 주입(DI)

제어 역전의 방법 중 하나로, 사용할 객체를 직접 생성하지 않고 외부 컨테이너가 생성한 객체를 주입받아 사용하는 방식을 의미하는데 스프링에서는 @autowired라는 어노테이션을 통해 의존성을 주입할 수 있습니다.(스프링
4.3이후 버전은 의존성주입시 @autowired생략 가능)
스프링 공식문서에서는 생성자를 통해 의존성 주입받는 방식을 권장!
(생성자를 통해 의존성 주입받는 방식은 래퍼런스 객체 없이 객체 초기화할 수 없게 설계할 수 있기때문이다)

3.관점 지향 프로그래밍(AOP)

OOP(객체지향 프로그래밍)을 더 잘 사용하도록 생겨난 개념으로 관점으로 묶어 개발하는 방식을 의미합니다.
핵심 기능과 부가기능으로 구분해 각각을 하나의 관점으로 보는 것인데, 각각의 로직에서 동일한 코드가 포함된다면 부가기능을 하나의 공통로직으로 처리하도록 모듈화해 삽입하는 방식이다.

(책 스프링부트 핵심가이드 참고하였습니다)

profile
끊임없이

0개의 댓글