AOP

yihyun·2024년 11월 14일

Spring Boot

목록 보기
32/33

스프링의 4대 특징에는 다음 4가지가 있다.
1. 제어역행(I.O.C) 지원하여 필요에 따라 스프링이 사용자 코드를 호출 (내가 요청하지 않아도 알아서 해주는 것)
2. 의존성 주입(D.I) 을 지원하여 느슨한 결합을 유지 (@Auto.. @Value 등 으로 선언해서 하나씩 객체화를 하는 것이 아닌 한번 선언해두고 사용하는 것)
3. Spring Framework 에서 객체 자원을 효율적으로 관리해준다. (@Auto.. 처럼 하나만 선언 = 싱글톤 패턴을 활용한다.)
4. AOP 을 지원한다.

이 중 AOP를 살펴보려고 한다
(인터셉터, ASPECT-J 두가지가 있다.)

AOP 란?

관점 지향형 프로그램으로,
즉 하나의 흐름에 특정한 시점에 수행되는 프로그램을 만드는 것이다.

예를들어 지하철에 무임승차가 너무 많아 무임승차 근절을 위한 의견 중
1. 지하철에 사람이 내리면 그 사람 당 직원 한명씩 붙여서 돈을 내는지 안내는지를 확인하자는 의견과
2. 개찰구를 만들어 2번만 확인하자는 의견이 있었다.

이 중 2번이 AOP를 활용한 것이다!

스프링 시큐리티 : 시큐리티는 로그인 말고도 여러개를 검사한다. (ip, 데이터, 파라미터 등등..)

AOP에는 2가지 상황이 있다.

  1. 요청이 들어왔을 때 특정 조건을 만족하지 못하면 컨트롤러로 못보냄
  2. 컨트롤러까지 다 끝나고 뷰로 보내기 전에 체크 (또는 뷰로 가기 전에 무언가를 추가해주는 방식)

1번 방식을 preHendler 이라고 한다. (컨트롤러 앞에서 한다.)
2번 방식을 postHandler 이라고 한다. (컨트롤러 뒤에서 한다.)

이 두개를 사용한 것을 Interceptor 라고 한다.

(Interceptor 관련 내용은 다른 포스트 활용!)

profile
개발자가 되어보자

0개의 댓글