본문 바로가기
👨‍🏫Study/JAVA

[JAVA] Java EE

by 코푸는 개발자 2022. 4. 11.
728x90

Java EE (Enterprise Edition)

  • Java EE 플랫폼은 Java SE 플랫폼을 기반으로 그 위에 탑재된다.
  • 웹 프로그래밍에 필요한 기능을 다수 포함
    • JSP, Servlet, JDBC, JNDI, JTA, EJB 등
  • 대규모, 다계층, 확장성, 신뢰성, 보안 네트워킹 API, 환경 등을 제공

*Java EE 기술 중에서 서블릿, JSP는 웹을 기반으로 한 클라이언트/서버 기술을 정의한다. 자바로 웹 어플리케이션을 개발한다는 것은 서블릿, JSP 기술을 사용하여 어플리케이션을 개발하는 것을 의미한다.

 

Java EE 플랫폼 사양 다이어그램

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등이 있다.

728x90

댓글