🌿 스프링/김영한

1. 웹 애플리케이션의 이해

le2donguk 2026. 2. 7. 01:56

서버에서 처리해야 하는 업무

  • 서버 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