자료가 오래되서 여기 가도 이 자료는 없을 거다.
내용은 뭐 말하기 좀 그렇고, 원초적인 질문이 너무 재밌어서 남겨둔다.
우리는 가끔 이런 질문이 필요할 때가 있다.
-----------------------------------------
중앙대학교 컴퓨터공학과 자바 동호회 JSTORM http://www.jstorm.pe.kr EJB는 정말 필요한 걸까? EJB는 정말 필요한 걸까? Issued by: <한제택> Revision: <1.0> <2000/10/12 JSTORM <2/5> Document Information Document title: EJB는 정말 필요한 걸까? Document file name: IsEJBNeeded.doc Revision number: <1.0> Issued by: <한제택> neverbeg@nownuri.net Issue Date: <2000/12/20> Status: final Content Information Audience EJB를 시작하려는 사람 Abstract EJB가 과연 필요한가와 초보 EJB 개발자가 가져야할 자세를 기술하고 있다. Reference Do you really need Enterprise JavaBeans? By Anil Hemrajani http://www.javaworld.com/javaworld/jw-10- 2000/jw-1006-soapbox.html Benchmark information EJB는 정말 필요한 걸까? Issued by: <한제택> Revision: <1.0> <2000/10/12 JSTORM <3/5> EJB가 정말 필요한가? EJB는 만능열쇠가 아니다. 자바2 플랫폼(Java 2 Platform), 엔터프라이즈 에디션(J2EE), 엔터프라이즈 자바 빈즈 (Enterprise JavaBeans)는 이제 자바 프로그래머들에게 익숙한 단어가 되어 버렸다. 만약 독자 중에 자바, 특히 서버측 자바(server-side Java)에 대한 개념이 없다면 [그림.1]을 참 고하기 바란다. 반대로 독자가 경험이 많은 자바 개발자라면 J2EE의 핵심 구성요소에 대 해 일일이 설명하지 않아도 되지만, 그렇지 않은 독자들을 위해 간단히 설명하려고 한다. ?? 서블릿(Servlet)은 CGI 스크립트와 같은 기능을 제공하는 자바 클래스이다. ?? 자바 서버 페이지(JavaServer Pages, JSP)는 동적(動的) HTML 페이지다. ?? 엔터프라이즈 빈즈(Enterprise Beans)로도 알려진 엔터프라이즈 자바 빈즈는 서버측 컴포넌트 아키텍처(server-side component architecture)이다. 엔터프라 이즈 빈즈는 엔터프라이즈 애플리케이션에서 사용하는 비즈니스 로직 (business logic)을 담고 있다. ?? JDBC는 데이터베이스 독립적인 API이며, 오라클(Oracle), 사이베이스(Sybase), 마이크로소프트 SQL 서버(Microsoft SQL Server)와 같은 데이터베이스에 접근 할 수 있도록 해준다. [그림.1] J2EE 환경 이 에서는 EJB에 대해 다룰 것이다. EJB는 정말 필요한 걸까? Issued by: <한제택> Revision: <1.0> <2000/10/12 JSTORM <4/5> 주목 받는 EJB 1998년 초 EJB가 처음 소개된 이후, 많은 자바 개발자들이 EJB로 개발하겠다고 나서고 있 다. 필자는 자바에 특화된 IT 컨설팅과 솔루션에 관련된 일을 하고 있는데, J2EE 환경, 정 확인 말하면 EJB 환경에서 일하고자 하는 개발자를 많이 접했다. EJB가 훌륭한 기술이기 는 하지만, 많은 개발자들이 EJB가 만능열쇠(one-size-fits-all)가 아니라는 사실을 알지 못 하고 있다. 보안, 트랜잭션과 같이 EJB에 주주 매달려 있는 기능들이 모든 애플리케 이션에 필요한 것은 아니다. 객체 지향 설계가 적용될 수 있는 작은 규모의 웹 애플리케 이션 프로젝트라면 일반적인 개발 방법으로도 충분하다. 또, 분산 객체 시스템이 아니거나 보안, 트랜잭션보다 속도가 중요한 일괄 작업(batch processes)의 경우에도 EJB는 필요하지 않다. 분산 객체를 기본 개념으로 하고 있는 EJB 의 경우 클라이언트와 EJB 컴포넌트(서버)가 통신을 하기 위해서, 주는 쪽에서는 마샬링 (직렬화)된 데이터를 넘겨주고 받는 쪽에서는 받은 데이터를 언마샬링하여 사용한다. 이 는 엄청난 부하(overhead)가 걸리는 작업이기 때문에 성능 면에서 해(害)가 될 수 있다. 때에 따라서는 로컬 클래스를 사용하는 쪽이 더 효율적일 수 있다. 익숙해져라 애플리케이션에 EJB를 적용하는데 문제가 없다고 하더라도, 전혀 다른 문제가 발생할 수 있다. EJB에 대한 이론과 경험 부족이 바로 그것이다. 필자는 J2EE 기반 애플리케이션 개발자들이 썬(Sun)에서 발행한 J2EE 청사진(J2EE Blueprint)을 읽는데 인색하다는 사실 에 놀란 적이 있다. EJB 아키텍처가 어떻게 작동되는지 알지 못하고, 애플리케이션 서버를 과신(過信)하는 개발자는 제대로 된 애플리케이션을 개발할 수 없다. 예를 들어 컨테이너 관리 지속형 (Container Managed Persistence) 엔터티 빈을 사용하면 각 빈들이 하나의 데이터 베이스 테이블과 연결되어야 한다. 그런데 애플리케이션에서 사용할 데이터 베이스 구조가 복 잡하다면 제 성능을 발휘할 수 없다. 이 경우 개발자들은 빈 내부에서 데이터 베이스를 호출할 수 있는 빈 관리 지속형(Bean Managed Persistence) 엔터티 빈을 사용하곤 한다. 그런데 경험이 부족한 개발자라면 여기서 성능 문제에 부닥칠 수 있다. ejbLoad()나 ejbStore() 같은 메소드가 호출되는데 대한 기준이 없기 때문이다. 즉, 설계를 잘못하면 요구하는 것 이상으로 데이터 베이스를 호출할 수 있다는 얘기이다. 또한 이식성을 생각 한다면 빈에서 사용한 데이터 베이스 구조에 대한 내용을 알려두어야 한다. 보다 나은 엔터프라이즈 애플리케이션을 개발할 생각이라면 EJB를 언제, 어디에, 어떻 게 적용할 지에 대한 고민과 함께 서드 파티 제품에 대한 지식도 필요하다. 웹게인 (WebGain)의 탑링크(TopLink)나 엑셀론(Excelon)의 자블린(Javlin)을 사용하면 EJB 기반 애플리케이션의 성능을 대폭 향상시킬 수 있다. EJB는 정말 필요한 걸까? Issued by: <한제택> Revision: <1.0> <2000/10/12 JSTORM <5/5> 필자는 썬에서 보다 나은 안내서가 나오길 바라며, 언제 어떻게 EJB를 적용하면 되는지 에 대한 예제도 필요하다고 본다. 레퍼런스 구현이 아닌 실제 제품으로 구현된 EJB에 대 한 사례 연구도 큰 도움이 되리라 생각한다. J2EE 환경에 익숙하지 않은 개발자라면 J2EE 아키텍처 전반을 이해하고 개발 경험이 있는 개발자에게 의지하는 것이 좋다. J2EE를 지 원하는 애플리케이션 서버와 사용가능한 서드 파티 제품에 대해 알아두는 것도 중요하 다. 하지만 가장 중요한 것은 개발하기 전에 썬에서 발행한 J2EE 청사진을 읽고 개발환경 의 구석구석까지 이해하는 것이다.
댓글 없음:
댓글 쓰기
국정원의 댓글 공작을 지탄합니다.