패키지

EJB(Enterprise JavaBeans)란 무엇인가. 본문

기타

EJB(Enterprise JavaBeans)란 무엇인가.

업단업업 2015. 7. 6. 15:34

EJB란 

자바 RMI :

 Java RMI는 Remote Method Invocation의 머리말을 딴 말인데 JDK1.1부터 자바에 내장된 기술이다. Java 환경에서 Computer 간 또는 Program 간에 통신(객체를 주고 받을 수 있다)을 할 수 있는 기능을 제공한다. 자바에 내장 되었다는 것은 CORBA, DCOM, EJB등은 통신을 대신 해주는 미들웨어(Middleware)가 필요한데(EJB를 사용하기 위해서는 이 사이트에서 강좌가 진행 중인 웹 로직, 웹 스피어등의 미들웨어가 필요하다는 겁니다.),  RMI는 이미 JVM에서 지원을 한다는 이야기..

 미들웨어 :

 분산 환경에서 애플리케이션들이 연결되어 서로 데이터를 교환할 수 있게 해 주는 Software.

*
객체 지향의 개념에서 프로그램이 객체들 간의 메세지 전송으로 실행 된다는 이야기를 많이 보셨을 겁니다. 그런데 만약 그 객체들이 서로 다른 컴퓨터에 존재한다면 어떨까요? 과거 분산 시스템은 서로 다른 프로그램들이 다른 컴퓨터에 존재하고 실행되는 것이었는데 최근의 객체 지향에서는 각 객체가 분산되어 존재하는 개념인 것입니다. 그래서 서로 통신을 하는데 다른 컴퓨터에 있는 객체의 메소드를 호출 한다든지 또는 객체들도 던졌다 받았다 한다는 것이 RMI 입니다.

분산컴퓨팅, 분산객체에 대한 개념에 대해 정리하면 아래와 같습니다. 물론 Java Network 강좌에 나와 있는 내용 입니다.

분산 컴퓨팅 이란?

네트워크에서 서로 다른 시스템 간에 응용 프로그램을 분산해서 처리하는 환경. 즉 하나의 컴퓨터에 존재하는 Application이나 프로세스에서 스스로 처리하거나 수행하기 어려운 작업을 다중 프로세서나 컴퓨터에 분산 시키는 것. 분산 컴퓨팅을 적용한 Application을 Distributed Application 이라고 한다.
 
분산 객체 (Distributed Object) 란?

 분산 컴퓨팅 기술이 객체 지향과 접목되어 하나의 프로세서나 컴퓨터에서 실행되는 객체가 다른 프로세서나 컴퓨터에서 객체와 통신이 가능 하도록 하는 기술이 분산 객체 기술이며 분산 객체란 자신이 존재하는 런타임 환경과는 다른 런타임에 있는 객체와 통신이 가능한 객체.


EJB:

 대규모 분산 객체 시스템을 구축하기 위한 기술 또는 자바로 서버 측  비즈니스 로직을 작성하기 위한 Enterprise 환경에서의 자바 표준. 흔히 프리젠테이션 로직이라고 하는 것이 화면에 보여지게 되는 정보의 타입, 포맷을 자동으로 처리하는 반면 비즈니스 로직은 급여계산 한다든지 하는 보이지 않는 어떤 처리를 하는 것. 만약 EJB를 사용하기 위해 웹로직 서버를 이용한다고 하면 프로그램 개발자는 웹로직 서버의 컨테이너를 이용하여 작업을 하게 되는데 이는 트랜잭션의 지원, 보안, 동시 접근 처리 등 비즈니스 로직을 처리하는데 있어 필요한 모든 것을 제공 한다고 보면 됨. EJB는 엔티티빈, 메시지 드리븐 빈, 상태유지 세션 빈, 비상태유지 세션 빈등 4가지의 타입이 있다. EJB는 명세, 스펙만 잘아시면 쉽게 공부 할 수 있다.

*
EJB에 대한 이해를 위해서는 앞서 설명 한 분산 환경, 분산 객체, RMI등을 잘 알고 있어야 합니다. 그래서 RMI의 기초가 부분에 대해 부족하시다고 생각이 드는 분은 Java Network의 RMI강좌중 HelloWorld를 따라해 보시고 오시기를 부탁 드리구요, JSP, Servlet등도 공부를 하시기 바랍니다.

 EJB기술을 이용하면 다른 곳에 떨어진(원격의) EJB서버 메모리에 떠 있는 클래스를 참조할 수 있습니다. 다시 말씀 드리면 그 클래스의 메소드를 호출 할 수 있다는 이야기 입니다.  즉 EJB도 내부적으로 컴포넌트의 통신을 위해 RMI를 사용 한다는 겁니다. 그리고 분산 환경이라고 무조건 EJB를 쓰시면 큰일 납니다. 미들웨어 구입을 위한 비용은 둘째 치더라도 EJB는 추가적인 overhead가 있으므로 성능 향상을 위한 EJB 보다는 안정성, 재사용 가능한 시스템, 프리젠테이션 영역과 비즈니스 로직의 분리, 신뢰성 있는 N-Tier 환경, 분산 환경이 꼭 필요한가 등을 고려하여 사용 하는 것이 바람 직 합니다. EJB를 사용하기 위해서는 전용 서버(미들웨어)를 사용해야 하는데 SUN에서 제공하는 J2EE서버의 경우 거의 실무에서는 쓰이지 않으며 주로 웹로직, 웹스피어 등을 이용하셔서 개발을 하게 됩니다.

Comments