개발/JSP

서블릿이란

728x90

 

CGI (Common Gateway Interface)

웹서버와 프로그램 사이의 데이터를 주고받는 규칙

 

 

1990년 초반 초기 HTML문서는 웹서버에서 클라이언트로의 일방적인 정보전달만 했다.

정적인 데이터(HTML, XML, 이미지 등)를 전달하는 것만으로 충분.

웹사이트에 필요한 정보를 올려두면 그 정보를 원하는 측에서 받아가거나 참조하는 단방향의 정보전달만 했었기 때문에 정보제공측과 수해측 의사효관이나 정보교환을 이뤄지지 않음

웹서버와 클라이언트간에 필요한 정보교환을 가능하게 해주는 일종의 프로그램

 

 

웹이 발달하여 입력을 받아 처리하고 그 결과를 화면에 보여주는 동적인 페이지가 필요하게 됨

사용자의 요청을 받아 정보를 동적으로 생성하고 이를 다시 클라이언트로 보내주기 위해,

서버에서 다른 프로그램을 불러내고 그 프로그램의 처리결과를 클라이언트로 보내줄 수 있는 인터페이스가 필요했음

 

처음에는 프로세스 단위로 실행됐었는데 서버에 부하가 크게가여 더 작은 단위인 스레드로 부하를 줄임으로서 Java Servlet이 등장함.

 

 

Servlet은 톰캣이 이해할 수 있는 순수 자바 코드로만 이뤄진 웹서버용 클래스. 이를 통해 CGI프로그래밍을 할 수 있고, 프로그램이 실행될 때 스레드 단위로 실행되어 서버의 부하를 줄이고 추상화를 시켜줌.

 

하지만 Java를 사용하여 웹페이지를 동적으로 생성하기 위해 HTML을 출력하려면 print() 메소를 통해 일일이 String으로 태그들을 양식에 맞춰 써야하므로 다른 서버사이드에 비해 불편했다.

 

이를 개선하기 위한것이 Java Server Page이다.

JSP 실행시에는 자바 서블릿으로 변환된 수 실행되므로 서블리소가 거의 유사하다.

서블릿과 달리 HTML 표준에 따라 작성되므로 웹페이지 작성이 편리해짐. 서비스가 요청되면, JSP의 실행을 요구하고, 웹서버 톰캣의 서블릿 컨테이너에서 서블릿 원시코드로 변환된다.

 

그후에 서블릿 원시코드는 바로 컴파일 되어 HTML형태로 클라이언트에 돌려준다.

 

 

CGI -> Servlet -> JSP 개념이 등장한 순서

 

 

 

언어 플랫폼에 독립적.

매우 단순하고 다른 서버사이드 프로그래밍 언어에 비해 쉽다

재사용할 수 있는 라이브러리가 풍부하다.

 

느리다.(요청이 올 떄 마다 DB Connection을 새로 열어야 한다.)

HTTP 요청마다 새로운 프로세스를 만들기 때문에 서버 메모리를 점유한다.

페이지 로드 사이에 데이터가 메모리에 캐시도리 수 없다

가장 오래된 인터페이스, 거의 모든 웹서버 지원

 

 

서블릿

자바 CGI 프로그램을 서블릿이라고 부른다.

 

 

'개발 > JSP' 카테고리의 다른 글

MVC 패턴  (0) 2021.04.18
ServletContextListener  (0) 2021.04.18
JSP 필터  (0) 2021.04.18