IT 강의 정리/[스프링의 정석] 남궁성의 끝까지 간다

ch.02 Spring MVC 05~06 클라이언트와 서버, 설정파일(server.xml, web.xml)

Nellie Kim 2022. 9. 28. 19:41
728x90

05. 클라이언트와 서버

서버의 포트

한대의 서버컴퓨터(IP주소 1개)안의 여러 서버 프로그램이 있을 때, 클라이언트가 요청을 했을때 원하는 서버를 찾기위해 포트번호도 추가로 적어줘야 한다. 웹서버는 기본적으로 80이고, 80은 생략 가능하다.

미리 서버가 포트에서 기다리고(Listening)있어야 클라이언트 요청과 잘 연결(binding)된다.

포트번호 0~1023번까지는 예약된 번호여서 사용불가, 총 65535개의 포트를 사용할 수 있다.

WAS란?

웹 어플리케이션 서버(WAS) : 웹 어플리케이션을 서비스하는 서버.

서버에 프로그램을 설치해놓고, 클라이언트가 이 프로그램을 사용할수 있게 해준다. 

프로그램을 클라이언트에 설치할수도 있지만, 서버에 설치하는 이유는 ? 

예전에는 각 컴퓨터에 프로그램을 다 설치했었는데, 단점은 업데이트를 각각 컴퓨터마다 다 해야한다. 서버에 설치하면 서버 한곳만 업데이트하면 된다. 그리고 클라이언트의 저장공간이 절약되는 장점이 있다.

 

톰캣의 내부구조는?

사용자가 http://www.fastcampus.co.kr/event/list 로 서버에 요청하면,

톰캣이라는 서버안으로 8080포트를 통해 들어온다. 

여기서 쓰레드들(Thread Pool)이 기다리고 있다. 미리 쓰레드들을 만들어놨다가 요청이 오면 한가한 쓰레드가 처리한다.

톰캣서버안에 서비스라는게 있고, 거기서 Connector가 있는데 해당하는 프로토콜(HTTP1.1)를 타고 엔진으로 들어온다.

엔진(카탈리나)안에서는 호스트별로 나뉘어있다. 해당 호스트(www.fastcampus.co.kr) 안으로 들어간다.

각 호스트안에는 Context로 나뉘어있는데, 이것은 하나하나가 Web App인 STS프로젝트이다(ex. ch2, ch3) 해당 Context(/event)로 들어간다.

하나의 Context안에는 여러개의 서블릿이 있는데, URL과 연결된 해당 서블릿(list)이 컨트롤러를 호출하면서 작업을 처리한다. 그리고 그 안의 main메서드를 호출하여 처리한다.

프로그램의 처리 결과를 클라이언트로 제공한다.

 

 

 

06. 설정파일(server.xml, web.xml)

실제로 톰캣파일안의 conf경로에 server.xml, web.xml 이 있다.

web.xml은 공통설정을 먼저 한다음, 개별설정을 한다.

STS안에서의 web.xml 파일 위치 비교

예전에는 서블릿등록, URL연결 모두 WEB-INF/web.xml파일에 직접 작성해서 설정해줘야 했다. 그러나 요즘은 에너테이션으로 대체하여 사용한다. 요즘에는 WEB-INF/web.xml파일작성은 선택사항!

WEB-INF/ web.xml 파일의 내부구조

 

 

출처 : [패스트캠퍼스] 스프링의 정석 : 남궁성과 끝까지 간다