AOP - AOP란? AOP vs OOP
2019. 11. 13. 12:12ㆍ🔴 Spring
300x250
AOP (Aspect Oriented Programming, 관점지향프로그래밍)
# 스프링의 또 하나의 기반기술
# 어플리케이션 전체에 걸쳐 사용되는 기능을 재사용할 수 있도록!
AOP(관점지향), OOP(객체지향) 의 차이점?
→ AOP는 OOP를 더욱더 OOP답게 사용할 수 있도록 도와주는 개념!
(기존에 OOP에서 바라보던 관점을 다르게 해서 부가기능적인 측면에서 보았을 때 공통된 요소를 추출하는 것, "AOP = 크로스 컷팅")
OOP: 비지니스 로직을 모듈화함
객체를 상속/위임을 통해 재사용 → 반복되는 코드의 양을 줄여줌
But, 반복되는 코드를 없앨 수 없는 상황이 생김 + 어플리케이션 전체에서 사용되는 부가기능들을 모듈화하기 어려움
=> AOP 등장! : 인프라 / 부가기능을 모듈화함 ex) 권한체크, 인증, 예외처리 등
즉, 기능을 비지니스 로직과 공통 모듈로 구분한 후 → 개발자의 코드 밖에서 필요할 때 비지니스 로직에 삽입하여 실행
ex) 게시판 기능에서 '권한체크, 인증, 예외처리 등'은 필요한 시점에 자동으로 삽입되도록 함
장점:
- 어플리케이션 전체에 흩어진 공통 기능이 하나의 장소에서 관리됨
- 다른 서비스 모듈들이 다른 사항들을 신경쓰지 않도록 해줌 (개발자는 핵심로직에만 집중하면 됨)
- 중복 코드 제거 / 효율적인 유지보수 / 높은 생산성 / 재활용성 극대화 / 변화수용 용이
300x250
'🔴 Spring' 카테고리의 다른 글
컨트롤러 구현(1) - 핵심 어노테이션(@Controller, @RequestMapping, @RequestParam, @ModelAttribute) (1) | 2019.11.14 |
---|---|
DispatcherServlet이란? (0) | 2019.11.14 |
SpringMVC에서의 Annotation, 간단 정리! (0) | 2019.11.13 |
DI(3) - XML없이 자바 코드 기반 설정 (0) | 2019.11.13 |
DI(2) - Annotation사용하기 (0) | 2019.11.13 |