본문 바로가기
📔개발자 일기 | | TIL

[20220223] TIL

by 캔 2022. 2. 23.

새로운 웹사이트를 구축하면서 특정 페이지에 접근 시 비회원일 경우 로그인을 차단해야 하는 요구사항이 있었다. 처음에는 인터셉터로 그 페이지만 막으려고 했었으나, 서비스의 가장 중요한 기능이기도 하고 해서 따로 패키지를 만들어서 별도의 controller에서 요청을 처리하기로 했다. 이제 본격적으로 작업을 시작하게 되었고, 오늘은 입력받을 데이터를 저장할 테이블을 설계하고 create했다. mapper와 service, controller 등 기존 패키지들의 구조를 만들어 놓고 내일부터 내부 코드를 작성하려고 한다.

 

인터셉터를 다루다가 필터와의 차이도 궁금하고 조사하다 보니 spring 구조를 조금 더 공부하게 되었다. 먼저, 필터는 자바에서 제공하는 객체이며 spring 컨테이너 밖에서 작동하고, 인터셉터는 spring에서 제공하는 객체로 spring 컨테이너 안에서 작동한다. 두 가지 모두 요청이 들어왔을 때 막는 역할을 한다.

 

지금까지 스프링에 대해 이미지를 많이 보아왔지만 가장 좋은 이미지를 발견해서 가져왔다.

 

내가 알고 있는 스프링을 정리하면, 다음과 같다.

 

클라이언트로부터 요청이 들어오면 Dispatcher Servlet이 가로채 HandlerMapping에게 보냄 -> HandlerMapping이 알맞은 Controller를 찾음 -> 권한을 위임받은 HandlerAdapter가 Controller의 메서드가 비즈니스 로직을 수행하도록 함 -> Controller는 Model과 View name을 Dispatcher Servlet에게 보내고 Dispatcher Servlet은 ViewResolver에 View 이름을 보내 해당하는 View를 Dispatcher Servlet에 보내고 클라이언트에게 요청에 대한 응답을 전달한다.

'📔개발자 일기 | | TIL' 카테고리의 다른 글

[20220228] 개발자 일기 & TIL  (0) 2022.02.28
[20220224] TIL  (0) 2022.02.24
[20220221] TIL  (0) 2022.02.21
[20220217] 개발일기  (0) 2022.02.17
[20220214] TIL(리눅스 조회 명령어 정리)  (0) 2022.02.14