일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 남궁성과 끝까지 간다
- Spring
- @jsonproperty
- 스프링의 정석
- 스파르타코딩클럽
- java
- 생성자 주입
- CentOS
- EC2
- 데이터베이스
- JavaScript
- Spring Security
- emqx
- WEB SOCKET
- JWT
- 웹개발
- AWS
- 쇼트유알엘
- visualvm
- Kafka
- docker
- 항해99
- 프로그래머스
- 개인프로젝트
- MYSQL
- 시큐리티
- DB
- 스웨거
- 카프카
- 패스트캠퍼스
- Today
- Total
Nellie's Blog
ch.02 Spring MVC 05~06 클라이언트와 서버, 설정파일(server.xml, web.xml) 본문
ch.02 Spring MVC 05~06 클라이언트와 서버, 설정파일(server.xml, web.xml)
Nellie Kim 2022. 9. 28. 19:4105. 클라이언트와 서버
서버의 포트
한대의 서버컴퓨터(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)
web.xml은 공통설정을 먼저 한다음, 개별설정을 한다.
예전에는 서블릿등록, URL연결 모두 WEB-INF/web.xml파일에 직접 작성해서 설정해줘야 했다. 그러나 요즘은 에너테이션으로 대체하여 사용한다. 요즘에는 WEB-INF/web.xml파일작성은 선택사항!
출처 : [패스트캠퍼스] 스프링의 정석 : 남궁성과 끝까지 간다
'IT 강의 정리 > [스프링의 정석] 남궁성의 끝까지 간다' 카테고리의 다른 글
ch.02 Spring MVC 09~12 관심사의 분리와 MVC패턴 (0) | 2022.10.02 |
---|---|
ch.02 Spring MVC 07~08 HTTP 요청과 응답, 텍스트와 바이너리, MIME, Base64 (2) | 2022.09.28 |
ch.02 Spring MVC 03~04 HTTP 요청과 응답 (0) | 2022.09.28 |
ch.02 Spring MVC 01~02 원격프로그램의 실행, AWS에 배포하기 (0) | 2022.09.27 |
ch.01 Spring시작하기 (0) | 2022.09.26 |