메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

엔터프라이즈 자바 애플리케이션 구축 : 아키텍처

엔터프라이즈 자바 애플리케이션 구축 : 아키텍처

한빛미디어

번역서

절판

  • 저자 : 브렛 맥래프린
  • 번역 : 임백준
  • 출간 : 2002-08-19
  • 페이지 : 472 쪽
  • ISBN : 8979142005
  • 물류코드 :1200
  • 초급 초중급 중급 중고급 고급
4.3점 (3명)
좋아요 : 13
엔터프라이즈 애플리케이션 설계의 알파와 오메가
     엔터프라이즈 애플리케이션 오케스트라의 지휘자에 도전한다!

진정으로 실력있는 설계자의 모습은 한 편의 영화를 만들기 위해 상상력을 동원하는 영화 감독의 모습과 비슷하다. 훌륭한 설계자는 남들이 한번 그리는 동안 열번 백번을 그리고 고치고 하면서, 자신이 설계하는 시스템을 완벽한 작품으로 만들기 위해 혼을 불어 넣는 것이다. - 역자 서문에서

"A business, generally a large one." 어느 한 온라인 컴퓨터 용어 사전에 나온 "Enterprise(엔터프라이즈)"에 관한 정의다. 비즈니스인데, 크다? 현대의 비즈니스는 수많은 고객과 데이터 그리고 시스템들이 존재한다. 웹에서 그들 간의 행태를 효율적으로 보여주고자 하는 노력의 일환으로 EJB, 서블릿, JSP, XML 등 그야말로 셀 수 없을 정도로 많은 기술들이 등장하였다. 이제는 그들을 어떻게 유기적으로 묶어 최적의 환경을 구성하는 시스템을 설계하느냐가 중요한 이슈로 대두되고 있다. 바로 이 책이 그 이슈에 대한 솔루션이다.

구축하기(Building) 시리즈의 1권인 이 책에서는 주로 웹 애플리케이션에서 백엔드(back-end)에 있는 데이터베이스, 엔티티 빈, 세션 빈, JMS, JNDI, RMI, LDAP 등을 애플리케이션 설계의 관점에서 다루고 있다. 2권에서는 주로 후론트 엔드(front-end)에 있는 JSP, 서블릿, XML 등을 다루고 3권에서 UDDI, SOAP, WSDL 등 웹 서비스 관련 주제를 다루며 엔터프라이즈 애플리케이션 구축에 관한 대단원의 막을 장식한다.

이 책의 주요 흐름
  • 엔터프라이즈 애플리케이션 구축에 있어 기획과 요구사항 검토 단계 인식
  • 데이터 스토리지 구축과 제약 정의
  • 디렉토리 서버 소개와 샘플 애플리케이션을 위한 디렉토리 구축
  • 샘플에 사용되는 엔티티 빈을 작성하고 기초 작업 수행
  • 향상된 엔티티 빈과 세션 빈을 만들어 보고 CMP 엔티티 빈에 관한 정보 제공
  • 자바 컴포넌트에 의한 데이터의 추상화 방식 설명
  • 드디어 데이터 계층 완성과 테스트!
  • 비즈니스 계층의 설계
  • 메시징과 패키징으로 비즈니스 계층 완성
  • 마지막으로 개발에 필요한 알짜 정보 공개!
브렛 맥래프린 저자

브렛 맥래프린

저자는 자바와 자바 관련 기술로 애플리케이션 인프라스트럭처를 전문으로 만들어 왔다. 그리고 웹 애플리케이션 개발에서 다시 사용할 수 있도록 자바 서블릿으로 컴포넌트 구조를 작성하는 자바 아파치 프로젝트 터빈(Turbine)의 창립자 중 한 명이다. 또한 오픈 소스 EJB 애플리케이션 서버인 EJBoss 프로젝트와 오픈 소스 XML 웹 출판 엔진인 코쿤의 공헌자이다. 그의 모든 프로젝트는 미션 크리티컬, 고성능을 가진 분산 시스템에서 XML과 J2EE 플랫폼을 사용하는 것에 중점을 둔다. 제이슨 헌터(Jason Hunter)와 함께 자바 프로그램에서 XML을 처리하기 위한 JDOM API를 정의하였다.
임백준 역자

임백준

한빛미디어에서 『팟캐스트 나는 프로그래머다』, 『임백준의 아카 시작하기』, 『폴리글랏 프로그래밍』, 『누워서 읽는 퍼즐북』, 『프로그래밍은 상상이다』, 『뉴욕의 프로그래머』, 『소프트웨어 산책』, 『나는 프로그래머다』, 『누워서 읽는 알고리즘』, 『행복한 프로그래밍』을 출간했고, 로드북에서 『프로그래머 그 다음 이야기』를 출간했다. 삼성SDS, 루슨트 테크놀로지스, 도이치은행, 바클리스, 모건스탠리 등에서 근무했고 현재는 맨해튼에 있는 스타트업 회사에서 분산처리, 빅데이터, 머신러닝과 관계된 업무를 수행하고 있다. 지디넷코리아와 한겨레신문에 정기적으로 칼럼을 기고하고 있고, 〈나는 프로그래머다〉 팟캐스트 방송 호스트로 활약 중이다.

1장. 소개

2장. 청사진
     포어소트 브러커지
     데이터 계층
     비즈니스 계층
     프리젠테이션 계층
     마무리
     다음 내용

3장. 기초
     데이터 스토리지 디자인
     데이터베이스
     디렉토리 서비스
     다음 내용

4장. 엔티티의 기본
     기본적인 디자인 패턴
     빈 코딩하기
     빈 계발하기
     다음 내용

5장. 향상된 엔티티
     ID, 시퀀스, 그리고 CMP
     자세히, 자세히, 자세히
     데이터 모델링
     공백 채우기
     다음 내용

6장. 매니저
     매니저와 엔티티
     LDAP 매니저 클래스
     다음 내용

7장. 데이터 레이어 완성
     체크 포인트
     데이터 스토리지 설치
     다음 내용

8장. 비즈니스 로직
     외장 패턴
     유저 매니저
     디자인 상태
     다음 내용

9장. 매시징과 패키징
     서버에서의 매시징
     클라이언트에서의 매시징
     패키징
     다음 내용

10장. 아키텍처 이후
     유연성
     포인트 결정
     다음 내용

부록A SQL 스크립트

부록B SQL 배치

부록C 디렉토리 서버 설치

부록D 애플리케이션 서버 설치

부록E 코드 정리

작년 10월에 강컴에 들렀다가 받은 책을 이제야 읽어 보고 서평을 쓰게 되네요~ 이전엔 몰랐는데 이 책의 역자 분은 최근 프로그래밍에 관한 에세이 ‘행복한 프로그래밍’, ‘누워서 읽는 알고리즘’ 의 저자 임백준씨 이군요~ 번역이 매우 자연스럽고 역주를 통해 보완 설명도 가끔 보이고 이런 점은 책에 대한 이해가 부족한 단순히 내용만을 번역한 책에서는 볼 수 없는 설명이겠죠.



이 책은 EJB, LDAP을 다루면서 책을 전개하고 있지만 특정 기술들은 이미 알고 있다는 가정을 하고 있습니다. 가상의 회사를 통해 사용자 요구사항을 수렴하여 기초적이고 독립적인 데이터 계층을 설계해 보는 것이 이책의 목적입니다. 저자는 3권의 시리즈를 통해 데이터 계층 설계 => 웹 프리젠테이션 층 설계(웹 기반 애플리케이션) => 웹 서비스 라는 구성 계획을 세우고 있습니다만 이책의 원서가 2002년 3월 임을 볼 때 두 번째 책이 나온다 하더라도 어떤 메리트가 있을까? 라는 생각이 드네요~ 어떻게 보면 이렇게 물리적으로 구성을 나누었기 때문에 확실한 데이터 계층 분리를 보여주긴 합니다~ 프리젠테이션 구현을 신경 쓰지 않고 데이터 계층에만 집중하여 볼 수 있었던 것은 좋았습니다.



특정 기술에 대해 선행지식을 요구하기는 하지만 EJB에 관해 약간의 지식과 J2EE(JMS, JDBC, JNDI)에 관한 지식만 있으면 수월하게 보실 수 있습니다. 주로 소스를 중심으로 책을 설명하기 보다는 소스 부분은 마지막 부록 부분으로 남겨놓고 필요한 부분만 추가하면서 진행했기 때문에 책을 빠르게 볼 수 있었고 특이한 점이라면 LDAP을 사용하여 사용자 로그인, 권한 기능을 구현한 점입니다. LDAP을 많이 접해 보지 않았지만 이 책을 통해 어느 정도 감을 잡을 수 있을 정도로 어렵지 않게 설명되어 있습니다. 오라일리 책의 특징이긴 하지만 소스를 실행시키기가 까다롭습니다. 그렇기 때문에 그냥 이런 식으로 구현하는구나~ 하고 소스를 살펴 보는 것에 만족하는 것이 편하고 정신건강에 좋습니다~



가끔씩 저자의 내공이 보이는 장(시퀀스를 가지고 있는 테이블은 눈 여겨 볼만한 부분이었습니다. Oracle에서 시퀀스를 가지고 올 때 nextval로 가져 온 다음 무언가 잘못되어 rollback시키면 시퀀스는 증가한 상태로 있는 처치 곤란한 상태가 되죠. 또한 혼란을 가중시키지 않는 인터페이스 명명 법이라던가, 메소드 명명법등..)도 있었고 전체적인 흐름도 자연스럽습니다만 아쉬운 점이 있다면 이책에서 구현한 데이터 계층이 차후 나올 지도 모르는 세 번째 책의 주제인 웹서비스와 어떻게 연동이 될까? 라는 궁금증을 낳았습니다. 모든 것을 웹서비스에 맞추어 새롭게 만들어야 하는 것일까? 아니면 어디까지 재사용이 가능한가? 라는 호기심이 생기더군요.



EJB와 DB설계에 관한 내용(Value Object및 패턴 얘기 등등)은 그리 새로울 것이 없었지만 LDAP을 써먹는 방법, 그것의 이점과 이후 시리즈 책들이 출간된다면 부담 없이 볼만한 책이라는 생각이 듭니다~

서평은 잔인한 것이다. 마케팅 차원에서 서평은 도서의 판매를 촉진하기 위해 장려하지만, 책의 입장에서 보면 잘 팔리는 책은 더욱 잘 팔리게, 안 팔리는 책은 더욱 안 팔리게 만드는 역할을 수행한다. 양질의 도서가 아니면 서평은 괴로운 일이다. 이런 측면에서 『엔터프라이즈 자바 애플리케이션 구축 : 아키텍처』의 서평을 쓰는 일은 고역은 아니다. 특히 이 책은 담고 있는 정보의 희귀성, 소스의 통합성 및 정확성이라는 장점을 가지고 있기 때문이다. 그럼에도 불구하고 이 책이 모든 개발자들에게 잘 소화될 수 있는 책은 아니라고 생각한다. 저자가 밝히듯, 엔터프라이즈(기업용) 애플리케이션의 구축과정, 즉 프로젝트에 관한 소프트웨어 공학적인 이해와 J2EE 기술에 대한 기본적인 지식을 필요로 하기 때문이다.



저자에 따르면, 이 책은 “부분적인 예제를 넘어서 커다란 애플리케이션을 처음부터 만들어 나가는 전체 과정과 설계단계에서 내리는 의사결정에 대한 구체적인 설명”이다. 이 책에서 구현하는 애플리케이션은 조금씩 이름을 달리 하기는 하지만, 기본적인 형태는 MVC(Model-View-Control)모델을 기반으로 하고 있다. Model의 측면에서는 관계형 데이터베이스, 디렉토리 서버, 그리고 이를 핸들링 하는 방법으로 CMP 엔티티 빈과 Manager 클래스를 사용한다. 이때 실제 프로젝트에서 사용하는 것과 같이 Adapter 클래스를 사용한다. 또한 흥미로운 점은 데이터베이스에 신규 Key값을 생성하는 방식에 대한 설명인데, 일반적으로 Max값을 조회하고 거기에 1를 더하거나 Sequence(주로 오라클에서 사용)에서 값을 읽어오는 방식의 문제점을 제기하면서 스캇 앰블러의 방식을 이야기한다. 이 책에서는 이를 자세히 다루지 않고 Key값 생성을 위한 별도 테이블을 구성하고, Stateless Session Bean을 이용하는 방법을 소개했다. 신선했다. 일반적으로 Key값 생성이 중요한 경우, 별도 테이블을 구성한 경우가 있었지만, Session Bean을 이용하기보다는 직접 데이터베이스로 작업했다. 약간 아쉬운 점은 업무 자체가 작은 트랜잭션만으로 이루어져 있다는 것이다. 즉 대용량 처리 및 배치 처리를 위한 업무가 빠져 있다.



네 개의 장을 할애하여 데이터 계층에 대해 상세하고 다룬 다음, 비즈니스 로직과 메세징과 패키징에 대해 이야기한다. 패키징에 대한 내용은 적었던 것 같다. 이 부분에서 아직까지 신기술로 잘 사용되지 않고 있는 Message-Driven Bean과 JMS 클라이언트 프로그램 예제가 나와 있어 좋았다. 또한 Stateful Bean에서 시작하여 Stateless Bean으로 바꾸는 과정을 보여준다.



이 책은 전체 세 권으로 구성된 시리즈의 첫 번째 책이다. 마지막 장인 아키텍처를 넘어서는 계속해서 변화하는 요구사항에 대응할 수 있는 유연성을 갖춘 시스템을 염두에 두고 앞장에서 논의한 애플리케이션을 설명하고 있다. 또한 2권과 3권에 등장할 웹 애플리케이션과 무선이라는 프리젠테이션에 대한 부분을 언급하면서 끝나고 있다. 기대는 되지만 어떤 모습인지 알 수 있을 정도로 자세하지는 않다.



이 책을 처음 잡았을 때의 느낌은 “얇군”이었다. 부록을 제외하고도 500페이지를 훨씬 넘을 줄 알았는데, 300페이지를 조금 넘기고 있을 뿐이다. 프리젠테이션 계층이 없다는 면에서는 절름발이 애플리케이션이라고 할 수 있지만, 아직 공장에 있는 로봇 태권V로 말하고 싶다. 만약 실제 개발과정에 조금이라도 더 다가서고 싶다면, 이 책은 좋은 동반자가 될 것이다. 또한 이미 나와 같이 다가선 사람들에겐 생각할 거리를 제공해 줄 거라 생각한다.

이 책은 엔터프라이즈 자바 애플리케이션을 구축하는데 필요한

내용을 다루는 3권의 시리즈물의 첫번째 책에 해당한다. 오렐리에서

준비중인 이러한 3권의 시리즈물은 각각 아키텍처, 웹 기반

애플리케이션, 웹서비스이다. 2권과 3권에서는 각각 JSP와

서블릿 그리고 XML, 웹서비스에 대해서 다룰 것이며 이 책은 그 시작으로

EJB 애플리케이션 서버 구축을 위한 방법을 설명하고 있다.



오렐리의 책이면 흔히 그렇듯이 이 책은 독자가 기본적인 EJB 지식과

데이터베이스 지식을 가지고 있을 것이라는 것을 가정으로 하고 시작한다.



대부분의 EJB 기본서적들과 이 책이 맥락을 달리하는 부분은 바로

아키텍처에 집중하고 있다는 것이다. 기본서에서는 EJB를 설명하기 위해

EJB그 자체에 치중하다보니, 어떤 구조를 왜 채택해야하는지 그리고

어떤 구조가 더 나은 구조인지에 대해서는 건너뛰는데 반해서 이 책은

순전히 왜 그런 구조를 채택하고 왜 어떻게 코딩해야하는지에만 집중

하고 있다. 예를들어 사무실 정보를 나타내는 OFFICE테이블에서 기본키는

OFFICE_ID이지만 엔터티 빈에서는 getId()를 사용해야하고 이것이

왜 그런지, 그리고 어째서 getId()라는 메소드명을 사용하고 getID()는

아닌지, 또한 이렇게 획득한 ID가 Integer타입이어야 하는 까닭에 대해서

설명하고 있다. 애플리케이션 서버를 구축하는 방법이 다양할 수 있다는

측면에서 안목있는 개발자의 지식을 엿보는 재미가 쏠쏠하다.



그러나 이책은 EJB와 서블릿간의 연동이라던가 EJB를 웹 서비스로 노출

시킨다던가 하는 부분은 다루고 있지 않다. 이러한 부분은 이어지는

시리즈물인 2,3권을 기대해 봐야 할 것이다. 전체467쪽에서 실제

내용은 326페이지까지이며 그 뒤는 부록으로 이 책내에서 다루고

있는 가상의 회사인 forethought.com 구축을 위한 SQL문, 소스코드의

전체와 서버 설정방법등을 다루고 있다. CD부록은 없으나 웹에서

소스코드를 다운로드 할 수 있으므로 소스코드입력의 부담은 덜할 것이다.

그리고 보안이나 EJB튜닝의 내용은 다루고 있지 않다.



이런류의 책이 드물다는 점에서, 그리고 좋은 개발자의 애플리케이션 설계

기법을 배울 수 있다는 점에서 볼만한 책이라고 생각한다.

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
엔터프라이즈 자바 애플리케이션 구축 : 아키텍처
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
엔터프라이즈 자바 애플리케이션 구축 : 아키텍처
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
엔터프라이즈 자바 애플리케이션 구축 : 아키텍처
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실