Java EE (Enterprise Edition)
- Java EE 플랫폼은 Java SE 플랫폼을 기반으로 그 위에 탑재된다.
- 웹 프로그래밍에 필요한 기능을 다수 포함
- JSP, Servlet, JDBC, JNDI, JTA, EJB 등
- 대규모, 다계층, 확장성, 신뢰성, 보안 네트워킹 API, 환경 등을 제공
*Java EE 기술 중에서 서블릿, JSP는 웹을 기반으로 한 클라이언트/서버 기술을 정의한다. 자바로 웹 어플리케이션을 개발한다는 것은 서블릿, JSP 기술을 사용하여 어플리케이션을 개발하는 것을 의미한다.
Java SE (Standard Edition)
- 가장 대중적인 자바 플랫폼
- 흔히 자바 언어라고하는 대부분의 패키지가 포함된 에디션
- java.lang.*, java.util.*, java.awt.*, javax.rmi.*, javax.net.* 등
- Java SE의 API는 자바 프로그래밍 언어의 핵심기능들을 제공
- 기초적인 타입
- 네트워킹
- 보안
- 데이터베이스 처리
- 그래픽 사용자 인터페이스 개발
- XML 파싱
- 가상머신, 개발도구, 배포기술, 부가 클래스 라이브러리, 툴킷 등 제공
Servlet
서블릿은 자바 기반의 CGI 프로그램이며 CGI 규칙에 따라 웹 서버와 데이터를 주고받는다.
먼저 웹 애플리케이션의 실행 과정을 살펴보면 (1) 웹 브라우저가 웹 서버에게 요청을 전송한다. (2) 웹 서버는 클라이언트가 요청한 프로그램을 찾아서 실행한다. (3) 해당 프로그램은 작업을 수행한 후 그 결과를 웹 서버에게 돌려준다. (4) 웹 서버는 그 결과를 HTTP 형식에 맞춰 웹 브라우저에게 보낸다.
이때 웹 서버와 프로그램 사이에 데이터를 주고받는 규칙을 CGI(Common Gateway Interface)라고 한다. 웹 서버에 의해 실행되며 CGI 규칙에 따라 웹 서버와 데이터를 주고받도록 작성된 프로그램을 CGI 프로그램이라 한다. 서블릿은 자바 기반의 CGI 프로그램이다.
자바 서블릿이 다른 CGI 프로그램과 다른 점은 웹 서버와 직접 데이터를 주고받지 않으며 서블릿 컨테이너에 의해 관리된다는 것이다.
서블릿 컨테이너
서블릿의 생성, 실행 소멸을 관리하는 프로그럄을 '서블릿 컨테이너(Servlet Container)'라 한다. 서블릿 컨테이너가 서블릿 대신 웹 서버와 데이터를 주고받는다.
WAS와 서블릿 컨테이너
- WAS란 웹 기반 서버 애플리케이션의 생성, 실행, 소멸을 관리하는 프로그램이다.
- Java EE 기술 사양을 준수해서 만든 서버이다.
- Java EE 구현체라고도 한다.
서블릿 컨테이너가 서블릿의 생성, 실행, 소멸을 관리하듯이, 클라이언트/서버 시스템 구조에서 서버쪽 애플리케이션의 생성, 실행, 소멸을 관리하는 프로그램을 '애플리케이션 서버(Application Server)'라고 한다. 그 중 서블릿 컨테이너와 같이 웹 기술을 기반으로 동작되는 애플리케이션 서버를 'WAS(Web Application Server)'라 한다.
특히 Java에서는 WASsms Java EE 기술 사양을 준수해서 만든 서버를 가리킨다. 다른 말로 'Java EE 구현체(Implementation)'라고도 한다.
*상용 WAS로는 티맥스소프트의 제우스(JEUS), 오라클의 웹로직(WebLogic), IBM의 웹스피어(WebSphere), 레드헷의 JBoss Enterprise등이 있다.
Java EE 기술 중 서블릿, JSP 등 웹 관련 부분만 구현한 서버가 '서블릿 컨테이너'이다. 아파치 재단의 Tomcat, 오픈 프로젝트 Jetty등이 있다.
'👨🏫Study > JAVA' 카테고리의 다른 글
[Database] JDBC (0) | 2022.04.14 |
---|---|
[JAVA] Servlet(서블릿), JSP(Java Server Page) (0) | 2022.04.14 |
[JAVA] 19. NIO 기반 입출력 및 네트워킹(6) (0) | 2022.04.06 |
[JAVA] 19. NIO 기반 입출력 및 네트워킹(5) (0) | 2022.04.06 |
[JAVA] 19. NIO 기반 입출력 및 네트워킹(4) (0) | 2022.04.06 |
댓글