https://github.com/HoJin-jjimgo/Spring
= 관점 지향 프로그래밍
대부분 MVC웹 어플리 케이션에서 사용을 하며 반복되는 로직들을 한곳에 몰아서 코딩을 하게 해준다.
-> 이렇게 하면 코딩의 중복이 없어진다.
-> 처음에는 DI와 똑같이 코드가 짧아져서 비슷하다고 생각했는데 하는 일이 완전히 다르다.
AOP 같은 경우는 기능을한가지로 묶어서 이용하는것이고
DI 같은 경우에는 객체를 외부에서 받는것을 말한다.
Web Layer
REST AIP를 제공하며 고갱 줌시의 로직을 적용
Busineww Layer
내부 정책에 따른 LOGIC를 개발(가장 많은 시간이 소요)
Data Layer
데이터 베이스 및 외부와의 연동을 처리
Aspect : Aop를 정의하는 class에 할당(중복코딩을 모듈화함, 주로 부가기능)
Pointcut : Aop를 적용시킬 지점을 설정(메소드 ,Annotation, class 등등)
Before, After : 메소드 실행하기 이전, 후
AfterReturing : 메소드 호출 성공
AfterThrowing : 메소드 호출 실패 예외 발생
Around : Before, After 모두 제어
기본 서버의 이름은 8080이지만 서버를 바꾸고자 한다면
resources -> application.properties 에서
server.port = 바꾸고자 하는 서버 이름(9090, 7070 등등)
으로 수정하면 된다.
AOP를 이용하여 메서드의 실행 시간을 알수가 있고 이를 통해 서버의 부하 또는 상태 등에 대한 로그를 볼수가 있다.
만약 암호화된 파일이 들어오게 된다면 코드에서 복호화 하는것이 아니라
들어오기 전에 AOP를 통해서 복호화를 한뒤 코드에서 처리후 다시 AOP를 통해 암호화하서 다른곳에 송출을 할수도 있다.
Bean 같은 경우는 class에 붙일수가 없다.(메서드만 가능)
component는 class에 붙여서 속한 모든 메서드들을 bean 처리해준다.
configlation는 하나의 클래스에 여러가지 bean을 처리할떄 class에 사용
--- 이에 대한 모든 내용은 코드에 주석을 통해서 남겼기 떄문에 복습 또는 공부할시에 코드를 반드시 참고 할것 ---