스프링 입문을 위한 자바 객체 지향의 원리와 이해 - Chapter 07. 스프링 삼각형과 설정 정보

김광현·2023년 1월 6일
0

스프링을 이해하기 위해선 POJO (Plain Old Java Object)를 기반으로 스프링 삼각형이라는 애칭을 가진 3대 모델에 대한 이해가 필수입니다.

이번 챕터에선 스프링 삼각형의 요소인 IoC/DI, AOP, PSA에 대해 알아보겠습니다.

IoC/DI - IoC

IoC란?

직역 그대로 Inversion Of Control 제어의 역전 입니다.

제어의 역전이란?
개발자가 작성한 객체나 메서드의 제어를 개발자가 아니라 외부에 위임하는 설계 원칙을 제어의 역전이라고 합니다.

특징

오브젝트 스스로가 사용할 오브젝트를 결정하지도, 생성하지 않습니다.
원칙의 이름 그대로 제어에 대한 권한이 개발자에서 외부 환경으로 역전되는 것입니다.

####5 DI란?
의존 역전 (Dependency Inversion)의 약자로 외부로부터 제공(주입)받고 이를 통해 다른 객체들과 동적으로 의존관계가 만들어지는 뜻으로 IoC의 개념을 조금 구체화 시킨 것 입니다.
다시 말해, 생성자를 통해서 어떤 클래스의 객체를 전달 받는 것이 DI입니다.

IoC랑 DI랑 만나면?

DI는 IoC원칙을 실현하기 위한 디자인패턴의 역할을 하게됩니다.
IoC와 DI 모두 객체간의 결합을 느슨하게 만들어 유연하고 확장성이 뛰어난 코드를 작성할수 있게 만들어 줍니다.

장점

ㆍ객체간 결합도를 낮추줍니다.
ㆍ유지보수가 좋습니다.
ㆍ테스트 하기가 편합니다.

선언 방법

ㆍ생성자 주입
ㆍGetter/Setter 주입
ㆍXML 수정(스프링)
ㆍ@Resource (스프링)
ㆍ@Autowired (스프링)


AOP (Aspect Oriented Programming)

AOP란? (관점 지향 프로그래밍)

어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것입니다.

장점

ㆍ공통 관심 사항을 핵심 관심사항으로 부터 분리를 하여 가독성, 유지보수성 상승
ㆍ각각의 모듈의 수정이 필요시 다른 모듈의 수정 없이 해당 로직만 변경하면 됨
ㆍ공통 로직을 적용할 대상을 선택 가능

핵심 용어

ㆍAspect : 여러개의 Advice와 여러개의 Pointcut의 결합체
ㆍAdvisor : 버젼이 올라가면서 구버젼을 쓰지 말라고 권고하는 기능
ㆍAdvice : Pointcut에 언제 무엇을 적용할지에 대한 로직,메서드
ㆍJoinPoint : 연결 가능한 지점 (스프링일시 빈의 모든 메서드)
ㆍPointcut : 횡단 관심사를 적용할 타킷 메서드를 선택하는 지시자

PSA (Portable Service Abstraction)

PSA란?

일관성 있는 서비스 추상화

서비스 추상화란?

어댑터 패턴을 적용해 같은 일을 하는 다수의 기술을 공통의 인터페이스로 제어할 수 있게 한 것


느낀점 및 알게된점

7장을 마지막으로 핵심 내용이 끝났습니다.
이책을 읽으며 아직 내가 부족한 부분, 스프링을 실습으로만 하여 개념적인 것들을 많이 놓쳤었는데
많은 도움이 된것 같습니다.

해당 내용은 스프링 입문을 위한 자바 객체 지향의 원리와 이해를 참고하여 작성되었습니다.

profile
대림대학교 컴퓨터정보학부

0개의 댓글