Springboot 개념정리 - web.xml

Yuri Lee·2020년 9월 10일
0

Springboot 개념정리

목록 보기
7/10

스프링부트 강좌 with JPA 11강 - web.xml은 무엇인가요?

스프링에 있는 수많은 기술들을 알려주고 사용할 수 있는 게 목표는 아니다. 이 기능을 다 써본 사람이 있을까?...그게 무슨 의미가 있는가.. 기술은 사라지고 매일 생기고 할텐데...스스로 학습할 수 있는 토대를 만드는 게 목표이다.

엄청나게 큰 성이 있고 그 성에 입구가 있다. 그 입구에는 문지기가 한명 있다 . 이 문지기는 스스로 일을 할 수 없다. 관리자가 문서를 더진다. 문지기에게..그리고 이 문서대로 일을 하면 된다고 말한다. 관리자가 바뀔때마다 문지기가 해야 할 일이 달라질 수 있다. web.xml파일을 토대로 문지기는 일을 한다.

1. ServletContext의 초기 파라미터

외부에서 A 사람이 들어온다. 초기 파라미터에 "암구호: 왈라"라고 적혀있다. A가 막 돌아다니다가, 누가 물어보는 것이다. 암구호는? 그때 A가 왈라라고 하면 잘 들어온 것이다.

하지만 b는 다른 외벽을 타고 들어왔고 암구호는? 라는 질문에 대답을 하지 못한다. 모르니까....

초기 파라미터는 한번 설정해놓으면 어디에서든지 동작할 수 있다. 성 내부에서..!!

2. Session의 유효시간 설정

세션은..

어떤 집에 a가 들어오려고 하는데 너 누구야? 나 너 아들이야 하고 인증을 통해 들어오는 것을 세션이라고 한다. 인증이 없으면 집에 들어오지 못하게 한다. 아버지는 아들의 얼굴을 보고 한다던지, 확인할 수 있는 무언가가 있을 것이다. 웹에서는 공인인증서를 사용하는 것 처럼..

세션이 3일로 설정되어있었다. 그럼 a는 3일동안 진입이 가능하다는 것이다. 3일 이후에는 a는 추방당해야 한다. 만약 a가 더 있고 싶다면 문지기에게 가서 3일 더 있고 싶다고 허락을 구하면 세션이 초기화 된다. 하지만 몰래 들어온 사람들은 문지기에게 갈 수 없으므로 .... 바로 튕겨나갈 것이다.

3. Servlet/JSP에 대한 정의
4. Servlet/JSP 매핑

a가 들어올때 얘가 가고자 하는 목적지가 있을 것이다. 가,나,다,라 건물이 있다. 그럼 a가 문지기에게 다라는 곳에 갈 것이라고 말할 것이다. 문지기는 다를 보고 다라는 곳을 찾아서 여기로 가라고 알려준다.

만약 a가 나라는 곳으로 갈려고 한다면 나라는 곳에 주소를 알려준다. 어디라는 것을 정확히 알려주고 갈 수 있도록 도와주는 것이 매핑이다.

나라는 곳의 주소가 서울 강남구, 다는 서울 용산구, 라는 부산 수영구, 가는 창원 용호동이라고 하면 a가 다라는 것을 들고왔으면 문지기는 다는 서울 용상구라는 정보를 web.xml에 들고 있다. 거기에 매핑을 해주는 것이다.

5. Mime Type 매핑

A라는 사람이 들어올때 그냥 들어올 수도 있지만 a 라는 사람이 엄청나게 많은 쌀을 들고온다. 쌀을 들고 입구에 도착한다. 그럼 문지기는 야, 너 마인타입이 뭐야? 그럼 a는 쌀이라고 말한다. 마인타입이라는 것은 니가 들고온 데이터가 뭐냐, 어떤 물건을 들고 온건지 물어보는 것이다.

아무것도 안들고 있는 사람도 있을 것이다. 이런 사람들은 무엇을 주려고 온게 아니라, 그냥 가지고 가려고 온것이다. 이것을 get 방식: select라고 한다.

쌀이면 쌀창고로 이동하라고 한다. 쌀창고에 데이터를 보낸다. 그럼 이 쌀을 우리나라에서 먹을 수 있을지 없을지 판단을 하고, 먼저 가공을 한다. 흙도 묻고 있을 수도 있으니까..그래서 마인타입에 대해 알아야 한다. 어떤 물건을 들고 왔는지 알아야 쌀을 보내는 위치를 알 수 있기 때문이다.

내가 거짓말로 쌀을 들고오고 물들고 왔다고 뻥치면 이 쌀을 검사할 수 없다. 따라서 마인타입은 중요하고, 마인타입이 틀리면 에러가 난다. 마인타입에는 종류가 굉장히 많다.

내가 들고 온 데이터가 무엇인지 알려주는 것을 의미한다.

6. Welcome File list

a라는 얘가 도착했다. 문지기가 "왜옴? 어디로 감?" 근데 a는 어디로 가는지도 모르고 데이터도 없음 . 그럼 문지기는 얘를 어디로 보내야 할까? 이것에 대한 정의가 있어야 한다.

관리자가 아무 이유 없이 온 얘들은 광장으로 보내라고 한다. 그렇게 한다. Welcome File list는 관리자가 누구냐에 따라 달리진다. web.xml을 어떻게 적었느냐에 따라..

7.Error Pages 처리

a (파) 들고 옴. 파는 없으니까..
관리자는 문지기에게 이상한 곳으로 가려고 하면 그냥 에러페이지로 던져~ 잘못던진 것이니까.. 이상한 광장으로 보낸다.

8. 리스너/필터 설정

a가 들어왔을 때 a의 신분을 확인하는 것이다. a가 만약 b나라 사람이면? 바로 쫓아내버려야 한다. 이게 필터이다.

만약 a가 총을 소유하고 있음. 근데 a가 총으로 소유하지 못하는 나라면 문지기는 총을 빼았음...!!

리스너는 무엇이냐? 관리자 실이 있다. 여기에 고급 양반이 있는데 술을 잘 먹는 사람이 필요한 것이다. 술친구가 필요.. 리스너에 등록을 해놓는다. 술을 잘 먹는 사람을 찾아내~~~

web.xml에 적혀있는 일들이 많아 그것까지는 다 못하겠는데 니가 하면 안되냐? 그럼 관리자가 니가 해야지~~ 문지기가 너무 힘들어...... 그러면 새로운 리스너를 만든다. 진짜 딱 술 잘먹는 사람만 확인하는..일종의 대리인

문지기가 일을 하는 동시에 리스너가 지켜보는 것이다. 리스너는 동시에 a,b,c,d,에다가ㅏ 물어봄 술 잘먹는지, 그리고 테스트 하고... 그럼 데이터 처리할 필요 없이 그냥 데리고 간다.~~~

9.보안

간단하다. 성을 보호하는 것임.
현상수배범? 쫒아낼 수 있지만 감옥에 보낼 수도 있음.
초반에 돈다. 처음에 웹서버에 진입을 하면 도는 게 이것이다.

jsp 매핑시에 문지기가 해야할일이 너무나도 많은데 이때 frontController 패턴을 이용할 것이다.


(3) web.xml

-Session의 유효시간 설정

-Servlet/JSP에 대한 정의

-Servlet/JSP 매핑

-Mime Type 매핑

-Welcome File list

-Error Pages 처리

-리스너/필터 설정

-보안

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

-이 글은 유투버 겟인데어의 스프링 부트 강좌를 바탕으로 정리한 내용입니다.-

profile
Step by step goes a long way ✨

0개의 댓글