[Spring] 웹 배포서술자(web.xml) 무엇인가요? (스프링부트 개념정리 / 인프런 최주호님 강의)
web.xml은
- ServletContext의 초기 파라미터 설정
- Session의 유효시간 설정
- Servlet / JSP에 대한 정의
- Servlet / JSP 매핑
- Mime Type 매핑
- Welcome File list
- Error Pages 처리
- 리스너 / 필터 설정
- 보안 설정
web.xml이라는 엄청 큰 성이 있다
입구에는 문지기가 있는데 스스로 일을 못한다
그래서 관리자가 문서를 던져준다 여기있는 문서처럼 일하라고
이 일은 관리자에따라 달라질 수 있다
하지만 문지기가 달라질 일은 없다
그 일 들을 나열해서 보자면
첫번째로
ServletContext의 초기 파라미터 설정이다
외부에서 사람 한명이 들어온다 그것이 초기 파라미터다
암구호는 왈라 라고 정해두면 a라는 사람이 성 안을 돌아다니다
암구호를 물었더니 왈라라고 했다 정상적으로 접근한 사람
암구호를 물었는데 모르면 정상루트로 들어오지 않은 사람
초기파라미터를 한번 설정해두면 성안에 어디서든 동작한다
두번째로
Session의 유효시간 설정이다
어떤 집에 어떤 사람이 들어오려고 할때 인증하는게 세션이다
중요한 PK를 확인해서 인증을 한다
다시 성 예시로와서 세션이 3일 이라고 정해두면
성안에 3일만 돌아다닐 수 있고 시간을 늘릴려면 문지기한테 가서
시간을 늘려달라해야한다
이때 정상루트로 들어온 사람이 아니면 문지기한테 못가니
3일 지나면 강제로 팅겨나가진다
세번째로
Servlet / JSP에 대한 정의이다
어떤 사람이 가고자할때 어떤 목적지가 있을텐데
성 안에 가, 나, 다, 라 가있을때 문지기가 어디로 갈꺼야 하면
사람이 '다'에 갈꺼야 라고하고
그럼 문지기가 '다'로 가는 길을 알려준다
그렇게돠면 사람은 '다'를 들고 성안으로 들어간다
네번째로
Mime Type 매핑이다
어떤사람이 들어올때 엄청나게 많은 쌀을 들고가려한다
그럼 문지기가 Mime Type이 뭐야 라고하면 어떤사람은 쌀이라고 한다
Mime Type은 들고온 데이터의 타입이 뭔지 묻는것이다
아무것도 들고오지 않으면 get방식을 쓰는것이다
이때 쌀을 들고왔으니 쌀창고로 데이터를 보내게 하고
성에서 먹을 수 있는지 확인후 가공을 한다
이런 과정이 Mime Type을 확인하는 과정이다
쌀을 들고왔는데 물 창고로 보내면 가공을 할 수 없으니
이럴때 에러가 발생하는것이다
다섯번째로
Welcome File list이다
어떤 사람이 도착해서 문지기가 어디로 갈지 물었다
그런데 아무것도 들고오지않았다 그럼 문지기가 어디로 보내야할지 모르게 되는데
문서에 아무것도없으면 광장으로 보내라는 문구가있다
그래서 문지기는 어떤사람을 광장으로 보내는것이다
이것이 Welcome File list이다
여섯번째로
Error Pages 처리이다
어떤사람이 들어오는데 '파' 라는 곳으로 간다고 들어온다
그럼 문지기가 '파'..? 무한반복하며 부하가 걸려서 에러가나게된다
그래서 문서에는 아무것도 없는 사람은 광장으로 가지만
이상한걸 들고온 사람은 일단은 이상한 광장으로 보내라고 해두면
이것이 Error Pages 처리이다
일곱번째로
리스너 / 필터 설정이다
필터라는건 어떤사람이 들어왔을때 신분을 확인하는것이다
어떤사람이 총을가지고 들어오면 성 안에서 총을 쓰지 못하므로
문지기가 총을 뺏기도 한다 이것이 필터이다
리스너라는건 고급 관리자실이있는데 높은 양반이
술을 잘먹는 사람이 필요로한다 왜냐하면 양반이 술을 잘먹어서
그때 문지기한테 술잘먹는 사람을 찾으라 하면 문지기는
할일이 너무 많아서 못하겠다고한다 그때 리스너를 쓴다
리스너는 술잘먹는 사람만 찾는 대리인 느낌이다
문지기가 여러 사람이 몰려오면 그사람들을 하나하나 안내할때
리스너는 옆에서 동시에 술잘먹냐고 같이 물어보는 역할이다
이때 묻기만하지않고 진짜 술 잘먹는지 확인도한다
그리고 술잘먹는게 판단되면 문지기한테 말해서 다른 검사하지말고
무조건 데리고가겠다해서 양반한테 데려간다
이것이 리스너이다
마지막으로
보안이다
이상한 사람들어오면 쫒아내고 현상수배범이 오면 감옥으로 보내고
그런 역할을 하는 것이 보안이다