
공부할 때 분명 알았는데, 시간 지나면 잊어먹는 IoC와 AOP 이제는 외워야 할 때도 되었고, 혹시 또 잊어먹으면 바로 찾아보기 위해 정리를 할 것이다.
스프링을 시작하면서 가장 많이 들었던 이야기가 바로 '낮은 결합도'와 '높은 응집도'이다.
이것과 연관지어 IoC와 AOP를 정리해보자.
제어의 역행 (Inversion of Control, IoC) - 낮은 결합도 유지
출처 입력
IoC 적용 전: 의존관계에 있는 객체를 변경할 때는 반드시 자바 코드를 수정해야 한다.
IoC 적용 후: 객체 생성을 컨테이너가 대신 처리하고, 객체와 객체 사이의 의존관계 역시 컨테이너가 처리한다.
-> 소스에 의존관계가 명시되지 않기 때문에 결합도가 떨어져서 유지보수가 편리해진다.
한마디로 new 객체를 생성하지 않는다는 말.
- 결합도를 낮추기 위한 방법
- 다형성 이용하기 : 상속과 메소드 재정의(Overriding), (묵시적)형변환
- 디자인 패턴 이용히가: 매개변수 필요
- 의존성 관리 방법
- Dependency Lookup
- Dependency Injection
- Setter Injection
- .xml : constructor-arg
- Constructor Injection
- .xml : property
- Setter Injection
관점지향 프로그래밍 (Aspect Oriented Programming, AOP) - 높은 응집도 지원
출처 입력
핵심 비즈니스 로직과 각 비즈니스 메소드마다 반복해서 등장하는 공통 로직을 분리하여 응집도가 높게 개발할 수 있도록 지원한다.
공통으로 사용하는 기능들을 외부의 독립된 클래스로 분리하고, 선언적으로 처리하여 적용한다.
-> 공통 기능을 분리하여 관리할 수 있기 때문에 응집도가 높고, 유지보수를 향상시킬 수 있다.
이정도면 스프링 의존성 본격 공부하기 전 기초 지식으로는 충분하지 않을까 생각한다.
'지식' 카테고리의 다른 글
[JAVA] 변수의 기본형과 참조형 타입 정리 (0) | 2024.08.27 |
---|---|
[자바 필수] method의 4가지 형태 (리턴형과 매개변수) (0) | 2024.08.21 |
[STS4] src/main/resources 의 static과 webapp의 차이 (2) | 2024.01.31 |
스프링 프레임워크란? (0) | 2024.01.23 |
Spring MVC 수행 흐름 (2) | 2024.01.15 |