상세 컨텐츠

본문 제목

[JAVA] JAVA관련 상식 CGI와 서블릿 그리고 톰캣

국비/[JAVA] 관련 상식

by 개발성훈 2020. 5. 13. 11:05

본문

CGI(Common Gatewat Interface)란

Web Server는 보통 CGI 프로그램 혹은 CGI 스크립트라고 부르는(웹 페이지 내용을 만드는) 외부 프로그램과의 통신하는 방법을 정의하며 웹사이트에서 동적인 페이지를 만드는 가장 흔하고 가단한 방법이다. 또한CGI는Web Server에 있어 사용자의 요구를 응용프로그램에 전달하고 그 결과를 사용자(또는 클라이언트)에게 되돌려주기 위한 표준적인 방법이다. 사용자(또는 클라이언트)가 하이퍼링크를 클릭하거나 웹사이트의 주소를 입력함으로써 웹 페이지를 요청하면 서버는 요청된 페이지를 보내준다. 그러나 사용자가 웹 페이지의 양식에 내용을 기재하여 보냈을 때 그것은 보통 응용프로램에 처리될 필요가 있다. 웹 서버는 그 양식 정보를 조그만 응용프로그램에 전달하는데 이 프로그램은 데이터를 처리하고 필요에 따라 확인 메세지를 보내주기도 한다. 이렇게 서버와 응용 프로그램간에 데이터를 주고 받기 위한 방법이나 규약들을 CGI라고 부른다.

 

CGI의 문제점

사용자가 한 번의 요청을 할 때마다 웹서버가 프로세르를 하나씩 만든다. 사용자가 몇명 되지 않는다면 문제가 없지만, 대용량의 데이터베이스를 다루고 수많은 사용자가 사용하는 사이트라면 아무리 좋은 컴퓨터라고 해도 수많은 프로세스가 실행되고 죽는 과정에서 남아날 재간이 없다.

 

이러한 문제점을 해결하기 위해 많은 규약들이 등장하게 되었는데 JAVA에서 Servler라는 기술을 내놓았다.

 

Servlet은 멀티쓰레딩을 이용하기 떄문에 요구가 많아지더라고 CGI보다 부하가 적고 빠르다.

 

Servlet이란

서블릿은 서버에서 실행되는 작은 프로그램이다. 이 용어는 웹 페이지와 함께별도의 파일로 보내지는 작은 프로그램인 자바 애플릿의 맥락에서 만들어진 신조어이다. 자바 애플릿들은 사용자를 위해 간단한 계산업무를 수행하는 사용자의 반응에 기반하여 이미지를 위치시키는 등과 같은 서비스를 위해 대게 클라이언트에서 실행되도록 만들어진다.

그러나 사용자의 입력에 따라 데이터베에스와 연계되는 프로그램들은 서버에서 실행 될 필요가 있다. 보통 이러한것을들 CGI를 이용하여 구현된다. 그러나 서버에서 실행되는 JVM(자바 가상머신)을 이용하면 그러한 프로그램들을 자바 언어로 구현할 수 있다. 서버에 있는 자바 서블릿의 장점은 CGI 응용프로그램보다 더 빠르게 실행될 수 있다는 것이다. 서블릿은 각 사용자의 요청마다 별도의 프로세스가 생기는 대신 단 하나의 데몬 프로세스내에서 스레드로 호출되는데 이는 각 요구에 따른 시스템 오버헤드가 적다는 것을 의미한다.

톰캣이란 

Java Servlet을 실행하고 JSP 가 포함된 웹 페이지를 렌더링하는 Apache Software Foundation의 응용 프로그램 서버입니다. 톰캣(Tomcat)은 웹 서버와 연동하여 실행할 수 있는 자바 환경을 제공하여 자바 서버 페이지(JSP)와 자바 서블릿이 실행할 수 있는 환경을 제공하고 있습니다. 톰캣은 관리툴을 통해 설정을 변경할 수 있지만, XML 파일을 편집하여 설정할 수도 있습니다. 그리고, 톰캣은 HTTP 서버도 자체 내장하기도 합니다.


관련글 더보기