서버에서 처리해야 하는 업무
- 서버 TCP /IP 연결대기, 소켓 연결
- HTTP 요청 메시지를 파싱해서 읽기
- POST 방식 , /saveURL 인지
- Content-Type 확인
- HTTP 메시지 바디 내용 파싱
- username, age 데이터를 사용할 수 있게 파싱
- 저장 프로세스 실행
- 비지니스 로직 실행
- 데이터 베이스에 저장 요청
- HTTP 응답 메시지 생성 시작
- HTTP 시작 라인 생성
- Header 생성
- 메시지 바디에 HTML 생성에서 입력
- HTTP를
직접 구현해서 처리하려면 단순히 비즈니스로직은 회원 데이터를 저장하는 일인데 그걸 하기 전에 너무 많은 일을 한다
그래서 서블릿이 등장 한다
서블릿
비즈니스 로직 실행 빼고 모든 일을 서블릿 이 대신 다 지원해준다
HTTP 요청 정보를 편리하게 사용할 수 있는 HTTPServletRequest 지원
HTTP 응답 정보를 편리하게 사용할 수 있는 HTTPServletResponse 지원
HTTP 요청 시
- WAS는 Request,Response 객체를 새로 만들어서 서블릿 객체 호출
- 개발자는 Request 객체에서 HTTP 요청 정보를 편리하게 꺼내서 사용
- 개발자는 Response 객체에 HTTP 응답 정보를 편리하게 입력
- WAS 는 Response 객체에 담겨있는 내용으로 HTTP 응답 정보 생성
서블릿 컨테이너
- 톰캣처럼 서블릿을 지원하는 WAS를 서블릿 컨테이너 라고 한다
- 서블릿 컨테이너는 서블릿 객체를 생성, 초기화, 등 생명주기 관리한다
- 서블릿 객체는 싱글톤으로 관리한다
- 고객이 요청이 올 때마다 계속 객체를 생성하는 것은 비효율
- 최초 로딩 시점에 서블릿 객체를 미리 만들어 두고 재활용
- 모든 고객 요청은 동일한 서블릿 객체 인스턴스에 접근
- 공유 변수 사용 주의
- JSP 도 서블릿으로 변환되어서 사용한다
- 동시 요청을 위한 멀티 스레드 지원
성능 팁
- WAS의 주요 튜닝 포인트는 최대 스레드(max thread) 수이다
- 성능 테스트
- 최대한 실제 서비스와 유사하게 성능 테스트 시도
- 툴 : 아파치 ab , 제이미터, nGrinder
'🌿 스프링 > 김영한' 카테고리의 다른 글
| 1. 스프링 컨테이너와 스프링 빈 (0) | 2026.02.08 |
|---|---|
| 2. 서블릿 (0) | 2026.02.07 |
| 빈 생명주기 콜백 함수 와 빈 스코프 (2) | 2025.08.25 |
| 의존관계 자동 주입 (1) | 2025.08.25 |
| 스프링 컨테이너생성 과 Component Scan (1) | 2025.08.25 |