J2EE

자바(Java)는 Sun Microsystems 에서 개발된 언어 플랫폼이고, 현재 Ver. 2 이다.

(흔히 java2 라고 부른다.

정확히 Java 2 Platform, Enterprise Edition 이다.


배경을 보자면, 썬(Sun)은 Java 2가 나오면서 플랫폼별로 3개의 Java Version 을 따로 만들었다. 가장 작은 버전인 J2ME는 Micro Edtion이라고 해서 핸드폰이나 PDA등 휴대용 단말기를 위한 자바 플랫폼이고, 요즘 핸드폰에서 게임하고 그런 것들이 해당 된다.


표준인 J2SE는 Standard Edtion 이다. 보통 PC에서 쓰는 일반적인 에디션이다.

J2EE는 Enterprise Edition 이다.

대형 서버에서 돌아가도록 여러가지 부가 기능들이 많이 들어가 있는 에디션이다.

웹 서버 (WS)

클라이언트 요청을 받아 HTML이나 오브젝트를 HTTP Protocol을 이용하여 전송하는 것

user가 Client로 request를 보내오면 그 명령에 대한 처리를 실행하고 다시 user에게 response를 보내주는 역할


하지만, 사용자가 요청한 것들 중에 웹 서버 자체적으로 처리 할 수 없는 것들을 WebLogic이나, Tomcat과 같은 웹 컨테이너나 php 모듈과 같이 처리 할 수 있는 곳으로 넘겨 처리 결과를 받은 후, 사용자에게 넘겨주는 역할도 수행


웹 서버만 구축된 서버는 웹페이지, 이미지 등 정적인 페이지를 생성 하지만, Jsp 컨테이너가 탑재되어 있는 웹 어플리케이션 서버는 jsp 페이지를 컴파일해 동적인 페이지를 생성한다.


따라서 웹 서버는 일반 웹 문서를, 웹 어플리케이션 서버는 jsp 페이지 등을 양분하여 서버 부담을 줄이는 역할을 한다


웹 컨테이너 (Web Container)

Jsp와 Servlet을 이용하는 웹 응용 프로그램은 자바 언어를 이용해서 작성 할 수 있는데 Jsp와 Servlet을 실행시킬 수 있는 소프트웨어를 웹 컨테이너(web Container) 혹은 서블릿 컨테이너(Sevlet Container) 라고 한다.


Sevlet 컨테이너, Jsp 컨테이너, EJB 컨테이너 등의 종류가 있으며,

대표적인 웹 컨테이너(web Container)로는 웹로직(JSP 실행 가능), 자카르타 Tomcat, Resin 등이 있다.

웹 서버(ws)에서 jsp를 요청하면 웹로직에서는 jsp파일을 servlet으로 변환하여 컴파일을 수행하며, 서블릿의 수행 결과를 웹 서버에 전달하게 된다.


Servlet Container

서블릿을 동작시킬 수 있는 환경을 제공하는 서버 프로그램

즉, Http 요청을 받아 해당 서블릿을 동작시키고, 그 결과를 사용자 브라우저로 전달하는 역할

Http 파라미터 파싱, 결과 전달 컨트롤, Forwarding, Redirecting 기능 제공

개발한 서블릿을 컨테이너에 등록하면 컨테이너가 알아서 처리한다


Jsp Container / Engin

서블릿 컨테이너가 Jsp 컨테이너가 된다.

즉, Jsp는 서블릿으로 변환된 후 실행되는데 이 Jsp를 서블릿으로 컴파일 해주는 것이 Jsp 서블릿/엔진 이다.


웹 컨테이너는 웹 응용프로그램을 위해 보안, 병행성 관리, 라이프 사이클 관리 등의 서비스를 제공 한다.

1. 보안(Security)

사용자 인증과 제한된 사용자만 접근 할 수 있도록 지원

2. 병행성 관리(Concurrency management)

여러 개의 작업이 동시에 이루어지는 경우에 쓰레드를 통해서 작업이 보다 효과적으로 이루어지도록 지원

3. 라이프 사이클 관리(Life Cycle management)

웹 응용 프로그램이 생성되고, 실행되고, 삭제되는 라이프 사이클 전 과정을 지원


웹 어플리케이션 서버 (Web Application Server)

웹서버(ws) + 웹 컨테이너(Web Container)

웹상에서 사용하는 컴포넌트들을 올려놓고 사용하게 되는 서버

EJB(Enterprise JavaBeans) 와 같은 빈들이 올라가게 되며, 서버에 따라 웹에 필요한 많은 기능들을 포함하고 있다

POJO (Plain Old Java Object)


POJO는 기본적으로 Sun의 Java Beans나 EJB(Enterprise JavaBeans)의 Beans를 뜻하는 것이 아닌 순수하게 setter, getter 메소드로 이루어진 Value Object성의 Bean을 뜻한다.


example)

public class SimpleBean{

private String name;

private String age;


public void setName(String name) {

this.name = name;

}

public void getName(String age) {

this.age age;

}


public void getName(String name) {

return this.name;

}

public void getName(String age) {

return this.age;

}

}


일반 자바개발자들이 코딩하거나 이클립스를 통해 자동으로 생성하던 VO 개념의 Bean이 바로 POJO 이다.


하지만, 왜 Beans라고 말하지 않고 POJO라고 할까?

그 이유는 Beans라는 용어로 위 클래스를 정의하기에는 Java Beans나 EJB의 Beans와 구분이 모호하고 Beans라는 용어로 정의되는 여타 다른 개념들과의 확실한 분리를 위해 POJO라는 용어를 사용한 것이라 볼 수 있다.

'Server Enterprise > Java' 카테고리의 다른 글

[decompile] java decompiler  (0) 2014.12.30
[Encode] 한글 인코딩  (0) 2014.08.15
[Image Object] width, height  (0) 2014.03.11
[Java] System.getProperty() 에 관하여  (0) 2013.06.14
Java 멤버와 변수에 대한 고찰  (0) 2013.01.08

+ Recent posts