TIL

107일차(모험 16일차) - AOP, 프록시

haedal-uni 2021. 12. 29. 02:06
728x90

모험 도중 시계가 고장나서 시간 체크를 하지 못했다.

내일은 정상 작동 할 것 같다.

 

 

 

오늘은 Spring 강의와 정리로 하루를 보냈다.

코드를 작성하고 그 코드를 작성하면서 나왔던 용어를 이해하는 과정을 주로 해서

시간체크는 중요하지 않을 것 같다.

 

오늘 정리한 강의는 아래 링크를 참고하면 된다.

 

107일차 - AOP가 필요한 상황

107일차 - AOP 적용

 

 

 

오늘 AOP에 대해서 배웠는데 AOP가 정확히 뭘까 알아보다가

OOP 얘기가 나와서 OOP를 먼저 보고 AOP를 보게되었다.

그리고 OOP에서 SOLID 얘기가 나와서 SOLID도 보게 되었다.

 

OOP와 SOLID 정리는 내일 할 예정이고 오늘은 AOP에 대해서만 적겠다.

 

 

 

 

그리고 팀원이 여태까지 다른 사람들이 제출했던 til 엑셀파일을 가지고 통계를 냈는데 

내가 가장 많이 냈다고 했다. (하루도 안빠지고 작성해서 그런가...)

TIL 개수는 76개인데 제출은 69인걸 보면 제출 안한날도 있는 것 같다.

 

그리고 팀원분도 5등안에 들었다. (열심히 제출하라고 괴롭혀야겠다 😆)

 


AOP

Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다.

 

Spring의 핵심 개념중 하나인 DI가 애플리케이션 모듈들 간의 결합도를 낮춰준다면,

AOP는 애플리케이션 전체에 걸쳐 사용되는 기능을 재사용하도록 지원하는 것이다.

 

관점 지향은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점,

부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것이다.

쉽게 얘기하면 프로젝트 구조를 바라 보는 관점을 바꿔보자는 이야기다.

 

 

 

각각의 Service는 핵심기능에서 바라보았을때는 Board, User, XXX 등 공통된 요소가 없다.

 

 

 

 

부가기능의 관점에서 바라보면 각각의 Service는 수행시간 측정을 나타내는 before라는 메소드와

after라는 메소드가 공통되는 것을 알 수 있다.

 

이때 가로(횡단) 영역의 공통된 부분을 잘라냈다고 하여,

AOP를 크로스 컷팅(Cross-Cutting) 이라고 불리기도 한다.

 

 

 

추가적인 내용은 아래 링크를 통해 확인한다.

 

[출처] : AOP 정리 (3)

[출처] : [Spring] 스프링 AOP (Spring AOP) 총정리 : 개념, 프록시 기반 AOP, @AOP


Proxy

AOP가 어떻게 동작하는지에 대해서 강의를 보다가 프록시 얘기가 나왔다.

여기에선 프록시가 가짜 느낌의 뜻으로 나왔는데 정확한 뜻을 알고 싶었다.

 

 

프록시란?

Proxy 는 ‘대리', '대신' 이라는 뜻을 가진다.

주로 보안상의 문제를 방지하기 위해, 직접 통신하지 않고 중계자를 거친다는 개념이다.

이 때 중계의 기능을 하는 것이 ‘프록시 서버' 이다.

 

클라이언트와 서버 사이에 프록시 서버가 '중계'를 할 때,

클라이언트는 프록시 서버를 ‘서버’ 라고 인식하고, 서버는 프록시 서버를 ‘클라이언트’ 처럼 여기게 된다.



https://iforint.tistory.com/145

 

 

[출처] 프록시란?

[출처] Proxy 프록시란?

 

 

- 모험가 haedal

 

728x90