우아한 테크톡 관련된 유튜브 강의 정리 내용입니다.
정확한 내용을 학습하고 싶으면 강의 링크 를 참고하시면 됩니다.
비지니스 로직
- 일반적으로 데이터베이스와 사용자 인터페이스 사이의 정보 교환을 처리하는 알고리즘을 설명하는 데 사용하는 비기술적 용어입니다.
- 업무에 필요한 데이터처리를 수행하는 응용 프로그램의 일부를 말합니다.
- 하나의 프로젝트나 프로그램 중 업무와 관련된 처리를 하는 일부분을 뜻합니다.
부가 기능
시간을 잰다든지, 트랜잭션을 거는 등등 서비스 로직 외의 기능을 인프로 로직이라고 부릅니다.
인프라 로직의 특징
- 애플리케이션의 전 영역에서 나타날 수 있음
- 중복코드를 만들어낼 가능성 때문에 유지보수가 힘들어짐
- 비지니스 로직과 함께 있으면 비지니스 로직을 이해하기 어려워짐
횡단 관심사
AOP (Aspect-Oriented Programming)
관점 지향 프로그래밍
- 흩어진 Aspect 들을 모아서 모듈화 하는 기법입니다.
- 횡단 관리에 따라서 프로그래밍 하는 것을 말합니다.
- AOP는 다른 생각의 방향을 제시함으로 써, OOP를 보완하고 있습니다.
AOP의 용어
- Target : 어떤 대상에 부가 기능을 부여할 것인가?
- Advice : 어떤 부가 기능을?
- Join point : 어디에 적용할 것인가? 메서드, 필드, 객체, 생성자 등등...
- Point cut : 실제 advice가 적용될 지점, Spring AOP에서는 advice가 적용될 메서드를 선정
AOP의 구현 방법
- 컴파일
AspectJ가 사용이 됩니다.
자바 파일을 클래스 파일로 만들 때, 바이트 코드들을 조작하여, 조작된 바이트 코드들을 생성합니다.
즉, A.java 파일이 A.class로 변환될 때, A.class 파일에 메서드가 포함되어 있어야 합니다.
- 클래스 로드시
AspectJ가 사용이 됩니다.
- 프록시 패턴
Transactional 어노테이션
-> Spring AOP 어노테이션 중 하나입니다.
Interceptor
Filter
Spring AOP vs AspectJ
'Computer Science > 테크톡 정리' 카테고리의 다른 글
[CS 정리]캐시 정리 (0) | 2021.08.21 |
---|---|
[CS 정리]빌드 용어 정리 (0) | 2021.08.21 |
[CS 정리]프로세스 ( Process ) vs 쓰레드 ( Thread ) (0) | 2021.08.20 |
네트워크 프록시(Proxy) & 로드 밸런서(Load Balancer) (0) | 2021.08.19 |
[CS 정리]Web Server vs WAS (0) | 2021.08.19 |