관심사 분리란
컴퓨터의 프로그램의 부분을 분리시키는 디자인 패턴으로 각 부분의 개개인의 관심사를 해결합니다.
관심사 분리는 변화의 폭을 최소한으로 줄이고자 할 때 필요로 하게 됩니다.
관심사 분리가 필요한 이유에는
관심사를 분리시켜 놓으면 각 기능의 코드를 파악하기 쉽고
특정 기능을 수정, 추가를 할 때도 그 기능만 교체를 함으로 간단하게 해결을 할 수 있기 때문입니다.
관심사 분리의 장점에는
영역간의 구분이 명확하여 한 영역이 다른 영역에 영향을 주지 않아서
개별 영역들에 대한 이해가 쉽고, 코드 재사용성이 올라가며 변경과 유지보수가 수월해진다는 장점이 있습니다.
관점 지향 프로그래밍이란
핵심 관심 사항과 공통 관심 사항으로 분리시키고 각각을 모듈화 한 것을 의미하며,
공통 모듈인 인증, 로깅, 트랜잭션 처리에 용이합니다.
중복 코드 제거,재활용성,변화수용의 용이성이 AOP의 장점이자 특징입니다.
더보기
트랜잭션
DB의 상태를 변경시키는 작업의 단위
OOP(객체 지향 프로그래밍)을 돕는 보조적인 기술로,
기능의 분리의 문제를 해결하기 위해 만들어진 프래그래밍 패러다임입니다.
AOP의 특징에는
Spring이 타겟 객체에 대한 프록시를 만들어서 제공하고,
그 프록시는 타겟 객체에 대한 요청을 가로채 Advice의 부가기능을 수행하고 타겟의 핵심 기능을 호출하고,
메서드는 joinPoint만을 지원한다는 특징이 있습니다.
'Java' 카테고리의 다른 글
Getter, Setter 어노테이션 (0) | 2024.08.29 |
---|---|
Rest, API, Restful API 간단 (0) | 2024.08.28 |
Java Spring, 객체 지향 프로그래밍 (7) | 2024.08.27 |
MVC, 3 Layer (0) | 2024.08.21 |
Spring 쿠키와 세션, JWT (0) | 2024.08.19 |