CGI의 이해
애플리케이션, 데스크톱 애플리케이션
- 사용자가 직접 아이콘을 더블 클릭하거나 명령 창을 통해 실행 시키는 프로그램
웹 애플리케이션
- 사용자가 웹 서버를 통해 간접적으로 실행시키는 프로그램
- 서버는 클라이언트가 요청한 프로그램을 찾아서 실행, 작업을 수행한 후 웹 서버에게 돌려줌
- 웹 서버는 결과를 토대로 HTTP 형식에 맞추어 웹 브라우저에 전송
- 웹 서버와 프로그램 사이의 데이터를 주고받는 규칙을
CGI(Common Gateway Interface)
라고 함
- 웹 서버와 데이터를 주고 받도록 작성된 프로그램을 '
CGI 프로그램
'이라고 함
CGI 프로그램
- C나 C++, Java와 같은 컴파일 언어로 작성할 수 있음
- Perl, PHP, Python, VBScript 등 스크립트 언어로도 작성할 수 있음
컴파일 방식
- 기계어로 번역된 코드를 바로 실행하기 때문에
실행 속도가 빠름
컴파일
하고 재배포
해야 하는 문제점 발생
스크립트 방식
- 실행할 때마다 소스 코드의 문법을 검증하고 해석해야하므로
실행속도가 느림
- 변경 사항 발생에 유연함
서블릿(Servlet)
- 자바 CGI 프로그램은 C/C++처럼 컴파일 방식
- 자바로 만든 CGI 프로그램 -> 서블릿(Servlet)
- 웹 서버와 직접 데이터를 주고받지 않으며, 전문 프로그램에 의해 관리
서블릿 컨테이너
-
서블릿의 생성과, 실행, 소멸 등의 생명주기(LifeCycle)를 관리하는 프로그램
-
서블릿을 대신하여 CGI 규칙에 따라 웹 서버와 데이터를 주고 받음
-
서블릿 개발자는 더 이상의 CGI 규칙에 대해 알 필요가 없음
-
자바 웹 애플리케이션 개발자는 JavaEE 기술 사양에 포함된 Servlet 규칙에 따라 CGI 프로그램을 만들고 배포합니다.
Reference
엄진영, 『자바 웹 개발 워크북』, 프리렉(2018.8.9), 103~106p