SpringBoot 개념정리(11) - 3. 동작원리

Jang Seowoo·2022년 9월 28일
0
post-thumbnail

인프런 스프링부트 개념정리(이론)
이 글은 다음 강의의 이론 정리 글 입니다.


웹 배포서술자(web.xml)에 대해서 알려줘요!

3) web.xml

엄청나게 큰 성이 있는데 이 입구에 문지기가 있다. 문지기는 스스로 일을 할 수 없기 때문에 관리자가 문지기한테 문서를 던진다. 관리자에 따라 문서는 달라질 수 있고 문지기는 그 문서에 적힌 대로만 일을 하면 된다. 우리는 문지기(web.xml)가 일을 관리자에 따라 다르게 할 경우가 없다. 이 파일을 토대로 일을 한다.

ServletContext의 초기 파라미터 생성

외부에서 사람 a가 문을 통해 들어온다. 초기 파라미터에 암구호는 '왈라'라고 적혀있었다. a가 성 안을 마음껏 돌아다니다가 누군가 암구호를 대라고 했을 때 '왈라'라고 대답한다면 통과! 하지만, 문을 통해 들어온 게 아니라 몰래 잠입한 사람 b한테 암구호를 대라고 한다면 대답을 못할 것이다.

따라서 초기 파라미터라는 것은 암구호처럼 성안의 어디서든 언제든 가지고 있는 매개 변수를 의미한다.

Session의 유효시간 설정

어떤 집에 a가 들어오려고 할 때, "너 누구야! 했는데 나 너 자식이야. 너 내 자식이야? ok" 하고 인증(like 민증, 공인인증서)을 통해서 들어오는 것이 session이다.

session에 3일이라는 유효시간을 설정해주면 3일이 지난 후 성에서 추방을 당해야 한다. 만약 문을 통해 들어온 a가 유효시간을 늘리고 싶다면 문지기한테 와서 세션을 초기화하면 된다. 하지만 몰래 들어온 사람 b는 문지기한테 갈 수 없기 때문에 세션마다 추방을 당하게 된다.

Servlet/JSP에 대한 정의 및 매핑

성 안에는 '가', '나', '다', '라' 건물이 있다. 문을 통해 들어온 a는 자신의 목적지가 성 안의 '다' 건물이라고 말한다. 그러면 문지기는 '다' 건물로 가는 길을 설명해준다. 이런 것을 servlet 매핑이라고 한다. a가 요청한 자원, 식별자, location인 '다' 건물이 어디라는 것을 정확하게 알려주고(ex. 서울 용산구), 그 쪽으로 이동할 수 있게 도와준다.

Servlet/JSP 매핑시(web.xml에 직접 매핑 or @WebServlet 어노테이션 사용)에 모든 클래스에 매핑을 적용시키기에는 코드가 너무 복잡해지기 때문에 @FrontController 패턴을 이용함 → 다음 시간에!

Mime Type 매핑

a가 쌀한포대를 들고 왔다. 문지기는 a의 Mime Type이 무엇인지 물어본다. 그러면 a는 쌀이요!라고 말할 것이다.

Mime Type이라는 것은 a가 들고 온 data의 type이다. 성에 들어오는 사람들은 데이터를 들고 올 수도 있고 안들고 올 수도 있다. 보통 안들고 오는 경우는 이 성에 들어와서 보기만 하기 때문에 http 통신의 get 방식(select)을 쓴다. 반면, 쌀을 들고 온 a는 일단 쌀 창고에 데이터인 쌀을 보낸다. 성에서는 이 쌀이 먹을 수 있는 것인지 확인을 하고 사람들에게 팔기 위해서 깔끔하게 가공을 한다. 만약 Mime Type을 잘못 파악해서 물 창고로 보내게 되면 물 창고에서는 쌀을 가공할 수 없기 때문에 에러가 발생한다.

즉, 문지기가 문을 통해 들어오는 사람들이 어떤 물건을 들고 들어오는지 가방 검사를 하는 것이 Mime Type 매핑이다.

Welcome File list

a가 목적지도 안정하고 데이터도 안들고 오고 맨 몸 상태로 문지기한테 왔다. 그냥 왔는데요? 라고 하면 문지기가 어디로 보내야할지 멘붕이 온다. 그래서 필요한게 welcome file list이다. welcome file list라는 것은 광장에 있는 일거리와 같다. 문지기는 그냥 온 a를 광장으로 보내고 welcome file list를 건네준다.

Error Pages 처리

성 안에는 '가', '나', '다', '라' 건물이 있다. 문을 통해 들어온 a는 자신의 목적지가 성 안의 '파' 건물이라고 말한다. 문지기는 '파?!'는 없는데 하고 뚝딱이가 된다. 그러면 관리자는 문지기한테 너가 모르는 곳은 다 error page(이상한 광장)로 던지라고 명령한다.

리스너/필터 설정

필터는 A나라 성에 B나라 사람이 들어오지 못하게 만드는 것을 말한다. 또는 a가 총기를 소지하고 있을 때 A나라가 총기 소지 불가능한 나라라면, a한테서 총기를 뺏고 A나라로 들여보내주는 것이 필터가 하는 일이다.

고급 관리자 집이 있을 때, 여기에 양반 한 사람이 있는데 이 사람이 술을 너무 잘 먹어서 같이 술 친구를 해줄 술 잘먹는 사람이 필요했다. 그래서 이 양반이 "문지기야 너 술 잘먹는 사람 좀 찾아내줘"라고 하자 문지기가 "저 해야할 일이 너무 많아요. 그거까지 할 시간 없음."이라고 했다. 그래서 리스너가 필요하다. 리스너는 문지기의 대리인 역할로 문지기 옆에서 술 잘 먹는 사람만 찾아내고 테스트 해본다. 진짜 술을 잘 마신다면 데리고 간다.

보안

이상한 사람 들어오면 쫓아내기, 이상한 나라에서 들어오면 쫓아내기, 현상수배범 감옥으로 보내기 등등

profile
https://devseowoo.notion.site/Seowoo-Portfolio-b21365c3477345818913e8d8fe2e3b90

0개의 댓글

관련 채용 정보