본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
CGI 프로그램과 서블릿
CGI(Common Gateway Interface)
- 웹 서버와 애플리케이션 사이에 데이터를 주고받는 규약
- CGI 규칙에 따라서 만들어진 프로그램을 CGI 프로그램이라고 함
- CGI프로그램 종류로는 컴파일 방식(C, C++, JAVA 등)과 인터프리터 방식(PHP, Python 등)이 있음
Servlet(Server+Applet의 합성어)
- 자바에서 웹 애플리케이션을 만드는 기술
- 자바에서 동적인 웹 페이지를 구현하기 위한 표준
ServletContainer
- 서블릿의 생성부터 소멸까지의 라이프사이클을 관리하는 역할
- 서블릿 컨테이너는 웹 서버와 소켓을 만들고 통신하는 과정을 대신 처리해준다. 개발자는 비즈니스 로직에만 집중하면 된다
- 서블릿 객체를 싱글톤으로 관리(인스턴스 하나만 생성하여 공유하는 방식)
- 상태를 유지(stateful)하게 설계하면 안됨
- Thread safety 하지 않음
WAS vs 서블릿 컨테이너
- WAS는 서블릿 컨테이너를 포함하는 개념
- WAS는 매 요청마다 스레드 풀에서 기존 스레드를 사용함
- WAS의 주요 튜닝 포인트는 max thread 수
- 대표적인 WAS로는 톰캣이 있다
서블릿 프로그래밍
Servlet 인터페이스
- 서블릿 컨테이너가 서블릿 인터페이스에 있는 메소드들을 호출함
- 서블릿 생명주기와 관련된 메소드
- init()
- 딱 한 번만 호출
- 서블릿 컨테이너가 서블릿 객체를 생성한 후 호출
- 서블릿이 작업하는데 필요한 자원을 준비시키는 코드를 넣는다
- service()
- 해당 서블릿에 대해 요청이 들어올 때마다 호출된다
- 클라이언트가 요청한 작업을 처리하는 코드를 넣는다
- destroy()
- 딱 한 번만 호출
- 웹 어플리케이션의 실행이 멈출 때, 서블릿이 사용한 자원을 초기화시킬 수 있도록 이 메서드를 호출한다
- 서블릿이 사용한 자원을 초기화 시키는 코드를 넣는다
- init()
- 서블릿 기타 메소드
- getServletConfig()
- 서블릿 설정 정보를 다루는 ServletConfig 객체를 반환
- ex) 서블릿 이름, 서블릿 초기 매개변수 값, 서블릿 환경정보
- getServletInfo()
- 서블릿을 작성한 사람에 대한 정보
- ex) 서블릿 버전, 권리
- getServletConfig()
'패스트캠퍼스 강의' 카테고리의 다른 글
[7일차] 50일 포트폴리오 챌린지 (0) | 2023.08.14 |
---|---|
[6일차] 50일 포트폴리오 챌린지 (0) | 2023.08.13 |
[4일차] 50일 포트폴리오 챌린지 (0) | 2023.08.11 |
[3일차] 50일 포트폴리오 챌린지 (0) | 2023.08.10 |
[2일차] 50일 포트폴리오 챌린지 (0) | 2023.08.09 |