Top

JBoss AS 7 애플리케이션 개발 [JBoss 관리부터 자바EE 개발, 배포, 운영까지]

  • 원서명JBoss AS 7 Development (ISBN 9781782161349)
  • 지은이프란체스코 마르치오니
  • 옮긴이최지웅
  • ISBN : 9788960775183
  • 30,000원
  • 2014년 02월 13일 펴냄
  • 페이퍼백 | 360쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

요약

JBoss 애플리케이션 서버는 신뢰성, 효율성, 안정성의 높은 요구사항을 만족시키며, 강력하고 안전한 자바EE 애플리케이션을 구축하는 데 사용된다. 또한 EJB 3.1, CDI, JAX-WS, JAX-RS, 웹 서비스, 보안 프레임워크 등을 포함하는 자바 엔터프라이즈 프로그래밍의 가장 중요한 기능을 지원한다. JBoss 애플리케이션 서버를 통한 개발이 도전적인 일이 될 수는 있지만, 올바른 접근법과 가이드를 통해 쉽게 달성할 수 있다는 것을 이 책에서 약속 드린다.

쉽게 읽을 수 있게 쓰여진 이 책은 코어 컴포넌트와 플러그인 설치 같은 JBoss AS의 기초부터 JBoss 메시징, 웹 서비스, 클러스터 애플리케이션 등과 같은 고급 주제를 다룸으로써 실력 있는 JBoss 개발자로 인도해 줄 것이다.

이 책에서 다루는 내용

■ EJB 패러다임을 CDI 빈으로 옮기고, CDI 빈을 사용한 웹 애플리케이션 생성
■ 아퀼리언(Arquillian) 환경 구성과 컨테이너 내부와 외부에서의 애플리케이션 테스트
■ JBoss 메시징 프로바이더를 찾고, 예제에 큐와 토픽을 추가하는 방법. 외부 JMS 프로바이더를 통한 메시지 수신 등 고급 JMS 내용
■ 애플리케이션을 관리하기 위한 CLI 스크립트 작성과 상세한 관리 API 살펴보기
■ 웹 영역 클러스터링과 JBoss AS 7 서비스 컴포넌트 클러스터링
■ 애플리케이션에 로그인 모듈을 생성하고 웹 영역과 EJB 애플리케이션 영역에 대한 보안

이 책의 대상 독자

여러분이 만약 최신 버전의 JBoss 애플리케이션 서버 사용을 원하는 자바 아키텍트 또는 개발자일 경우 이 책이 아주 적합할 것이다. 자바EE의 기본 개념에 대해 반드시 알고 있어야 하지만 그렇다고 해서 애플리케이션 서버에 대한 많은 경험이 필요하지는 않다.

이 책의 구성

1장 ‘JBoss AS 7 시작하기’는 자바EE 애플리케이션 개발과 실행에 필요한 핵심 애플리케이션 서버와 개발 도구들(JVM, 이클립스, 메이븐)의 설치에 대해 살펴본다.

2장 ‘JBoss AS 7의 새로운 기능’에서는 JBoss AS 7을 보다 자세하게 다룬다. JBoss AS 7의 새로운 파일 시스템 구조, 애플리케이션 설정, 단독 서버와 도메인 서버 간의 차이점에 대해 설명한다.

3장 ‘자바EE 6 EJB 시작하기’에서 싱글톤 EJB, 비동기 EJB, EJB 타이머 서비스를 포함하는 EJB 3.1의 새로운 기능에 대해 다룬다. 이 책의 핵심 예제 애플리케이션으로 티켓 예약 시스템을 개발한다.

4장 ‘CDI’에서 기존의 EJB와 JSF 프로그래밍 모델을 통한 CDI(Context Dependency Injection)를 소개한다. CDI 애노테이션을 사용하여 티켓 예약 시스템을 어떻게 개선하는지 보여준다.

5장 ‘CDI를 통한 퍼시스턴스 결합’은 관계형 데이터베이스에 데이터 저장 방법을 보여주는 자바 퍼시스턴스 API를 다룬다. 이후 이전 장에서 개발된 예제를 활용하여 JPA API를 적용한다.

6장 ‘애플리케이션 테스팅’은 실행 중인 애플리케이션 서버 인스턴스 또는 자신의 관리 서버 인스턴스를 사용하여 개발된 애플리케이션을 테스팅하는 아퀼리언(Arquillian) 프레임워크를 소개한다.

7장 ‘JBoss JMS 프로바이더를 통한 애플리케이션 개발’은 자바 메시지 서비스(JMS)에 대해 다루며, 서버 상에 JMS 엘리먼트를 구성할 수 있는 방법을 설명한다. 이후 JMS 생산자와 소비자를 추가하여 티켓 예약 시스템 예제의 기능을 개선할 것이다. 이 장의 마지막 부분에 JMS 프로바이더 확장을 통한 메시지 처리와 같은 고급 개념을 다룬다.

8장 ‘웹 서비스 애플리케이션 개발’은 두 가지 핵심 웹 서비스인 SOAP 기반 웹 서비스와 RESTful 기반 웹 서비스에 대해 다룬다. 이 두 가지 구현 방법의 차이점과 구체적인 예제를 제공한다.

9장 ‘애플리케이션 서버 관리’에서 CLI 개념과 이를 통해 생산성을 개선할 수 있는 방법을 소개한다. 좀 더 깊숙이 들어가 자이썬(Jython) 등의 다른 언어를 사용하는 CLI 스크립트 작성법을 소개한다.

10장 ‘JBoss AS 7 애플리케이션 클러스터링’에서는 클러스터된 애플리케이션의 모든 것을 다룬다. 이 책에서 다뤘던 몇 가지 예제에 JBoss AS의 강력한 클러스터링 기능의 적용 방법에 대해 설명한다.

11장 ‘JBoss AS 7 애플리케이션 보안’에서 인증과 권한 확인 처리를 위해 보안 도메인을 사용하는 방법을 보여준다. 다음 부분으로 클라이언트에서 서버로 또는 그 반대로 전송되는 데이터를 보안하는 방법에 대해 다룬다.

부록 ‘JBoss Forge를 사용한 쾌속 개발’은 이 책의 마지막 부분으로 JBoss Forge 프레임워크에 대해 설명하고, 기본 CRUD 애플리케이션을 생성하는 방법을 보여준다.

저자/역자 소개

저자 서문

JBoss 애플리케이션 서버는 자바 엔터프라이즈 애플리케이션 개발과 배포를 위한 표준 자바EE 인증 플랫폼이다. JBoss 애플리케이션 서버는 자바EE 6 전체 기능뿐만 아니라 클러스터링, 캐싱, 퍼시스턴스를 포함하는 확장된 엔터프라이즈 서비스를 제공한다. 이 책은 자바EE 개발자가 생산성 향상을 제공하는 메이븐 프레임워크에 통합된 이클립스와 JBoss AS 7을 사용한 애플리케이션 개발 방법을 설명한다. 모든 학습 과정은 개발 주제인 티켓 예약 애플리케이션을 사용하고 있으며, 처음에 간단한 예제부터 시작하여 점점 복잡도를 높여가도록 구성됐다.

저자 소개

프란체스코 마르치오니(Francesco Marchioni)

SCEA(Sun Certified Enterprise Architect) 자격을 가진 아키텍트이며 이탈리아 로마에 있는 회사에서 일하고 있다. 1997년에 자바를 배우기 시작한 이래로 썬에서 만든 새로운 API들을 지켜봐 왔다. JBoss 애플리케이션 서버(이하 JBoss AS)의 버전이 2.x였던 2000년부터 JBoss 커뮤니티에 참여했다. 소프트웨어 컨설턴트로 오랜 시간을 보냈으며, 벤더 기반의 플랫폼을 JBoss AS 같은 오픈소스 제품으로 성공적으로 이전하는 것을 계획해 왔다. 지금처럼 빠듯한 예산 요구사항을 만족시키면서 말이다.

지난 5년간은 오라일리 미디어에서 기술 기사를 작성했으며 JBoss 제품에 초점을 둔 IT 포탈(http://www.mastertheboss.com)을 운영 중이다. 팩트 출판사에서 출간된 『JBoss AS 5 Development』, 『JBoss AS 5 Performance Tuning』, 『JBoss 인피니스팬 따라잡기』(에이콘출판, 2013), 『JBoss AS 7 따라잡기』(에이콘출판, 2013)를 저술했다.

옮긴이의 말

여러분이 자바 개발자라면 최소한 직접 개발한 프로젝트를 애플리케이션 서버에 배포하고 그것을 테스트하는 작업을 수행해보았을 것이다. 4~5년 전만 하더라도 대부분의 엔터프라이즈 영역에서는 개발된 애플리케이션이 운영환경으로 배포될 경우 IBM 웹스피어, 오라클 웹로직과 같은 상용 애플리케이션 서버를 사용했다.

하지만 이제는 상황이 많이 바뀌었다는 것을 여러분도 이미 느끼고 있을 것이다. 그 변화의 중심에는 오픈소스가 존재한다. 이제는 대부분의 기업들이 오픈소스에 대한 관심을 두고, 그것을 적용하기 위해 노력하고 있으며 미션 크리티컬(misson-critical)한 시스템 운영환경에 오픈소스를 적용하는 단계에 이르렀다. 현재 우리 회사(오픈소스 컨설팅)에서는 수백 노드 이상의 고객사 JBoss 애플리케이션 서버를 관리하고 있으며, 다수의 미션 크리티컬 시스템을 운영 중이다.

JBoss 애플리케이션 서버는 자바 기반의 상용 웹 애플리케이션 서버를 대체할 수 있는 가장 훌륭한 도구다. JBoss의 가장 큰 장점은 모듈화된 시스템을 통한다는 것인데, 이는 전세계에 흩어져 있는 JBoss 코어 개발자들의 결과물을 가장 효과적으로 통합하는 방법을 제공한다.

이 책의 장점은 JBoss상의 단순 개발에 그치는 것이 아닌 애플리케이션 서버의 특성에 따른 JBoss의 다양한 자바EE기술, 프레임워크 통합, 개발 방법을 제공한다는 것이다. 단순히 JBoss를 활용하는 것이 아닌 예제 애플리케이션을 통해 동작 원리와 자바EE 기반 애플리케이션 개발 전반에 대한 폭넓은 지식을 제공한다.

또한 JBoss 애플리케이션 서버를 설치하고, JPA, 메시징, 웹서비스, 로드밸런싱, 클러스터링, 보안 등을 적용하여 운영하는 방법들을 함께 설명함으로써 개발 시에 JBoss를 효과적으로 활용할 수 있는 방법을 자세하게 설명한다. 여러분들이 접해보지 못한 기술일 수 있는 Seam, JSF, EJB 등의 일부 생소한 개념을 설명하지만 그것을 공부하는 것만으로도 자신의 경쟁력을 높일 수 있는 좋은 동기부여가 될 것이다.

이를 통해 개발자들 사이에서 가장 널리 사용되는 스프링 프레임워크와의 차이점을 인식하고 동일한 결과와 목적을 위해 서로 다른 기술적 접근법이 있음을 알 수 있을 것이다. 또한 자바EE가 어떤 방식으로 발전했는지를 살펴보는 것도 좋은 경험이 될 것이다.

이 책을 통해 JBoss 애플리케이션 서버 상의 개발에 대해 좀 더 깊게 이해하고, 이를 활용하여 좀 더 높은 수준의 애플리케이션을 만들 수 있으면 하는 바람이다. 마지막으로 든든한 후원자로서 항상 웃음을 주는 나의 사랑하는 아내 은영, 그리고 민준, 민석에게 큰 고마움을 전한다.

옮긴이 소개

최지웅

1998년부터 자바와 인연을 맺고 2000년 한국 썬 교육센터의 엔터프라이즈 자바 강사로 3년간 자바 강의, 엔터프라이즈 환경의 애플리케이션 프레임워크 개발, 성능 진단 컨설팅 등을 수행했다.

이후 BEA 시스템즈의 시니어 엔지니어로 5년간 국내 엔터프라이즈 기업의 자바EE, ALM(Application Lifecycle Management), 개발 방법론, 저수준(네트워크, EAI엔진) 프레임워크, SOA에 대한 다수의 컨설팅을 진행했다.

BEA 시스템즈가 오라클로 인수된 후 오픈소스 진영에 합류하기 위해 한국 레드햇으로 이직하여 5년간 JBoss 미들웨어, 클라우드 관련 글로벌 컨설턴트로 근무했다.

현재는 오픈소스와 관련된 구루(Guru)로 구성된 ㈜오픈소스 컨설팅이라는 회사를 설립하여 컨설팅 코치로 일하고 있으며, 국내 삼성전자, LG전자, 현대중공업, 정부기관 등의 오픈소스 활성화에 기여하고 있다.

목차

목차
  • 1장 JBoss AS 7 시작하기
  • 자바EE와 JBoss AS 7 개요
    • 자바EE 6
      • JSF 2.0
      • EJB 3.1
      • JPA 2.0
      • CDI
      • 자바 서블릿 API 3.0
      • JAX-RS와 JAX-WS
      • JAX-WS
      • JAXB 2.2
  • JBoss AS 7의 새로운 기능
  • 서버와 클라이언트 컴포넌트 설치
    • 자바SE 설치
      • 설치 완료 후 테스트
      • JBoss AS 7 설치
      • JBoss AS 구동
      • CLI를 통한 서버 접속
      • JBoss 중지
      • JBoss 재시작
    • 이클립스 설치 환경
      • JBoss 툴 설치
    • 다른 개발 환경들
    • 메이븐 설치
      • 설치 테스트
  • 요약

  • 2장 JBoss AS 7의 새로운 기능
  • AS 7 핵심 개념
  • AS 7 파일 시스템
  • 애플리케이션 서버 관리
    • 웹 인터페이스를 통한 JBoss AS 7 관리
  • 웹 콘솔 실행
  • JBoss AS 7 애플리케이션 배포
    • 개선된 이클립스 배포 옵션
    • 웹 콘솔을 통한 배포 관리
  • CLI를 통한 애플리케이션 배포
    • 도메인으로 애플리케이션 배포하기
  • 요약

  • 3장 자바EE 6 EJB 시작하기
  • EJB 3.1의 새로운 기능
  • 싱글톤 EJB 개발
    • 프로젝트 모듈 설정
    • EJB 애플리케이션 코딩
    • 빈 동시성 제어
      • 빈 관리 기반 동시성 사용
    • 세션 빈 만들기
    • 무상태 세션 빈 추가
    • 상태 유지 세션 빈 추가
  • EJB 애플리케이션 배포
  • 원격 EJB 클라이언트 생성
    • 클라이언트 프로젝트 모듈 설정
    • EJB 클라이언트 코딩
      • EJB 클라이언트 설정 추가
    • 클라이언트 애플리케이션 실행
      • 사용자 인증 추가
    • EJB 타이머 서비스 사용
      • 프로그램 기반의 타이머 생성
      • 타이머 이벤트 스케줄링
    • EJB에 비동기 메소드 추가
      • Fire-and-forget 비동기 호출 사용
      • Future 객체를 클라이언트로 반환
  • 요약

  • 4장 CDI
  • CDI 소개
    • 이름 빈
    • CDI 범위
    • JBoss AS CDI 구현
    • 티켓 예약 시스템 재검토
      • 필요한 의존성 추가
    • 빈 코딩하기
      • 뷰 만들기
      • 애플리케이션 실행 준비
      • 애플리케이션에 스케줄러 연동
    • EJB와 JSF 관리 빈은 더 이상 쓸모가 없나?
  • 요약

  • 5장 CDI를 통한 퍼시스턴스 결합
  • 표준을 만난 데이터 퍼시스턴스
    • JPA를 통한 작업
  • 애플리케이션에 퍼시스턴스 추가
    • 데이터베이스 구성
    • JBoss AS 7에 JDBC 드라이버 설치
      • CLI를 사용한 새로운 데이터 소스 생성
  • 메이븐 프로젝트 생성
    • 메이븐 설정 추가
    • 엔티티 만들기
    • 자바 빈 유효성 추가
  • 퍼시스턴스 설정
    • 생산자 클래스 추가
    • 애플리케이션 쿼리 코딩
    • 애플리케이션에 서비스 추가
    • 사용자 요청을 처리하는 컨트롤러 추가
    • JSF 뷰 코딩
    • 애플리케이션 실행
  • 요약

  • 6장 애플리케이션 테스팅
  • 단위 테스팅 및 통합 테스팅
    • 테스팅을 위한 도구
  • 아퀼리언 시작하기
    • 아퀼리언 테스트 작성
  • pom.xml 파일 설정
  • 첫 번째 아퀼리언 테스트 작성
  • 아퀼리언 TicketTest 실행
  • 관리 컨테이너를 통한 아퀼리언 TicketTest 실행
  • 아퀼리언 테스트 개선
  • 부가적인 정보
  • 요약

  • 7장 JBoss JMS 프로바이더를 통한 애플리케이션 개발
  • JMS 소개
  • JMS 빌딩 블록
    • JBoss 메시징 서브 시스템
    • 연결 팩토리 생성 및 사용
    • JMS 목적지 사용
    • 애플리케이션에 메시지 드리븐 빈(MDB) 추가
      • MDB 만들기
      • JMS 프로바이더 추가
      • 애플리케이션 컴파일 및 배포
      • JMS 연결 최적화
      • 셀렉터를 활용한 메시지 수신 지정
    • 외부 시스템을 통합하는 JMS 사용
    • 호넷큐와 액티브엠큐 통합 예제
      • 액티브엠큐 리소스 어댑터 설치
      • 액티브엠큐 메시지 소비
  • 요약

  • 8장 웹 서비스 애플리케이션 개발
  • SOAP 기반 웹 서비스 개발
    • SOAP 웹 서비스 구축 전략
    • JBoss SOAP 웹 서비스 스택
    • JAX WS 아키텍처 둘러보기
    • JBoss AS 7을 이용한 SOAP 웹 서비스 코딩
      • POJO 웹 서비스 개발
      • 콘솔을 통한 웹 서비스 점검
      • 단순 웹 서비스 테스트
      • EJB3 무상태 세션 빈(SLSB) 웹 서비스
      • 웹 서비스 소비자 개발
      • 예제 컴파일
  • REST 기반의 웹 서비스 개발
    • REST 리소스 접근
    • JBoss REST 웹 서비스
      • RESTEasy 활성화
      • 티켓 예제에 REST 추가
      • REST 서비스 호출
      • 티켓 예제 컴파일
  • SOAP과 REST 서비스 간 선택
  • 요약

  • 9장 애플리케이션 서버 관리
  • CLI
    • CLI 시작하기
      • 원격 호스트 연결
      • GUI 모드 CLI 사용
    • CLI 명령어 생성
      • 리소스 위치 확인
      • 리소스 상의 작업 수행
    • CLI를 사용한 애플리케이션 배포
      • 애플리케이션의 JBoss AS 7 도메인 배포
      • 모든 서버 그룹으로 배포
      • 단일 서버 그룹으로 배포
    • CLI 스크립트 생성
      • 애플리케이션을 복수의 JBoss AS 7 노드에 배포
      • 도메인 내의 서버 재시작
      • 데이터소스를 모듈로 등록
      • JMS 리소스 추가
  • 강력한 CLI 스크립트를 생성하는 개선된 언어
    • CLI 실행을 랩핑하는 스크립팅 언어
  • 애플리케이션 서버를 관리하는 API
    • 기본 관리 API를 통한 관리 모델 설명 읽기
      • Detyped API를 사용한 자원 시계 생성
  • 요약

  • 10장 JBoss AS 7 애플리케이션 클러스터링
  • 클러스터링 기본
  • JBoss AS 7 클러스터링
    • 단독 노드 클러스터 시작
    • 도메인 모드 클러스터 시작
      • 도메인 컨트롤러 설정
      • 호스트 설정
    • 클러스터된 애플리케이션 배포
    • EJB 클러스터링
      • HA 상태 세션 빈 생성
  • 웹 애플리케이션 클러스터링
    • 웹 애플리케이션 부하 분산
      • mod_cluster 설치
      • 웹 애플리케이션 클러스터링
  • 요약

  • 11장 JBoss AS 7 애플리케이션 보안
  • 자바 보안 API
    • JBoss AS 7 보안 서브 시스템
    • 로그인 모듈 설정
    • 티켓 웹 애플리케이션에 로그인 모듈 사용
    • FORM 기반 보안 변경
    • 데이터베이스 로그인 모듈 생성
      • 패스워드 암호화
      • 데이터베이스 로그인 모듈을 애플리케이션에 사용
    • EJB 보안
      • 웹 서비스 보안
  • 전송 계층 보안
    • JBoss AS SSL 활성화
      • 인증서 관리 도구
      • 자체 서명된 인증서를 통한 HTTP 통신 보안
      • CA에 의해 서명된 인증서를 통한 HTTPS 통신
      • EJB 통신 보안
      • 서버와 클라이언트 인증서 생성
      • SSL 보안 영역 생성
      • SSL 보안 영역 생성
  • 요약

  • 부록 JBoss Forge를 사용한 쾌속 개발
  • Forge 설치
  • Forge 시작하기
  • JBoss Forge를 사용한 자바EE 6 애플리케이션 생성
    • 애플리케이션 빌드 및 배포
  • forge-demo 애플리케이션
  • 도서 오류 신고

    도서 오류 신고

    에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

    오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

    (예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

    정오표

    정오표

    2015.1.5

    [p11 : 아래에서 10행]

    Java API for web services
    -> Java API for RESTful Web Services