인프런 커뮤니티 질문&답변

Henu님의 프로필 이미지
Henu

작성한 질문수

스프링 핵심 원리 - 고급편

AOP 소개 - 핵심 기능과 부가 기능

강의 학습 중 공통(부가)기능 처리 방법에 대한 질문입니다.

해결된 질문

작성

·

326

7

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 아니오
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예

[질문 내용]
안녕하세요. 스프링 핵심원리 고급편에서 다루는 주요 내용인 핵심기능과 공통(부가)기능을 어떻게 나눌 것인가를 듣다보니 어느덧 AOP 챕터까지 다다르게 되었습니다.

 

강의를 통해 부가기능의 종류에는 크게 로깅, 트랜잭션처리, 접근권한확인이 있다고 생각이 들었습니다. 이것들은 앞에서 다룬 개발 패턴이나 AOP를 사용하지 않고도 유틸리티성 클래스를 통해 처리가 가능한 것으로도 알고 있지만 SOLID 원칙, 유지보수 효율 증대, 중복 코드 제거 등의 많은 이점을 가져다주기 때문에 AOP와 같은 기술을 사용하는 것은 이해를 했습니다.

 

그러나 Filter/HandlerInterceptor를 사용해서도 부가기능을 처리할 수 있을 것으로도 생각이 드는데요.(스프링 MVC 강의 학습을 통해 느낀 점입니다.)

 

저와 비슷한 생각을 가지고 계신 다른 분께서 질문한 글의 답변을 인용하자면 웹과 관련된 공통(부가)기능(특정 메뉴 접근권한 확인, 로그인 여부 확인 등)는 Filter/HandlerInterceptor를 통해 처리하고, 순수한 자바 코드를 통한 공통(부가)기능은 AOP를 이용하는 것이 맞는 것인지 궁금합니다.

(참고 질문: https://www.inflearn.com/questions/495293)

 

물론 더 나아가 시큐리티를 알고 있다면 이런 질문 내용도 다른 방식으로 해결이 가능하겠지만, 만약, 시큐리티를 현재 모르고 있다라는 가정하에 위와 같이 실무에서도 처리하는게 맞는지 첨언 부탁드리겠습니다.

 

미리 답변 감사드립니다.

답변 1

6

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. Henu님

생각하신 내용이 맞습니다.

추가로 Filter, Interceptor는 HTTP에서 제공하는 다양한 파라미터(URL 정보 등등)들을 활용할 수 있는 장점이 있습니다. 반면에 AOP는 순수 자바 코드 안에서 동작하는 기능입니다.

감사합니다.

Henu님의 프로필 이미지
Henu

작성한 질문수

질문하기