• 빠르게 활용하는 JBoss 5

  • 노먼 리차드, 샘 그리피스 주니어 지음
  • 김명희, 김원일, 양재영, 신장섭, 이승룡, 이종현, 이동훈 옮김

  • 오픈소스 & 웹 시리즈 _ 033
  • ISBN: 9788992939812
  • 22,000원 | 2011년 07월 7일 발행 | 324쪽



JBoss와 관련해서 평범한 것은 없다. 1999년에 오픈소스 EJB 컨테이너 프로젝트로 시작한 JBoss는 현재 최대 시장 점유율로 기능과 품질 면에서 상용 자바 애플리케이션 서버와 경쟁하면서 완전한 Java EE 5 공인 애플리케이션 서버로 자리잡았다. 다이내믹한 아키텍처를 기반으로 JBoss는 단지 Java EE 서버로만 머물지 않는다. Java EE를 사용자가 원하는 대로 만들기 위해 서비스를 변경할 수도 있고, 심지어 Java EE를 완전히 없애버릴 수도 있다.

『빠르게 활용하는 JBoss 5』은 독특한 방식으로 JBoss로의 여행을 안내한다. 긴 설명보다는 실제 동작하는 코드(많은 코드)를 많이 볼 수 있으며, 사실 이 책은 중요한 JBoss의 기능을 차근차근 다뤄보는 실습서에 가깝다. 즉, 독자는 JBoss를 머릿속으로 배우는 게 아니라 실질적인 실습을 기반으로 배우게 된다. 여기엔 독자가 JBoss의 구석구석을 설정하는 과정이 포함돼 있다. 단순한 애플리케이션을 위한 기본 설정부터 경량화된 J2EE 설정 및 하이버네이트와 톰캣 등 JBoss에서 제공하는 모든 것을 포괄하는 설정까지 말이다.

또한 『빠르게 활용하는 JBoss 5』에서는 각 기능에 대한 팁을 제공하고 향상된 모니터링 기능을 제공하는 관리 콘솔을 소개하고, 어떻게 성능을 개선하는지 보여준다. 각 실습의 마지막에는 “이런 경우에는 …”이라는 부분이 있는데, 여기서는 추가적으로 질문을 던지고 이에 대한 답을 제시하거나 추가적인 정보가 필요할 때 참조할 만한 기사나 참고 자료를 알려준다.

JBoss는 정말 특별한 애플리케이션 서버이고, 독자는 이 책을 통해 특별한 방식으로 JBoss를 배우게 될 것이다.

 

추천사

LG CNS 솔루션사업본부장 김태극 전무

리눅스로부터 시작된 오픈소스 소프트웨어는 학계는 물론 공공기관, 중소기업 및 대기업에 이르기까지 빠르게 확산되고 있다. 품질 대비 저렴한 비용과 빠른 릴리스 사이클 등을 강점으로 하는 오픈소스 소프트웨어 중에서도 Java EE 애플리케이션 서버 분야는 이미 비 오픈소스 제품과의 차이를 느끼기 어려울 정도로 기술이 성숙된 분야로 평가되고 있다.

오픈소스 Java EE 애플리케이션 서버 중에서도 JBoss는 자타가 공인하는 가장 대표적인 제품으로서 지금도 그러하지만 앞으로도 더욱 널리 확산될 것으로 예측된다. 국내에서도 이미 유수의 기업에서 JBoss를 도입하여 TCO를 개선하고 있으나, 상대적으로 국내에는 전문가가 부족하고 개발자나 학생이 쉽게 접할 수 있는 한글로 된 관련 서적이 부족한 현실이다.

이 책은 JBoss를 처음 접하는 초보자도 쉽게 실습을 토대로 습득할 수 있게 구성돼 있고 핵심 기능을 중심으로 편집되어 분량이 많지 않다는 것이 가장 큰 장점이라 할 수 있다. 국내의 개발자들과 학생들이 이 책을 통해 더 쉽게 JBoss를 익히고 현장에서 잘 활용할 수 있게 되리라고 믿어 의심치 않는다.

 

한국레드햇 황인찬 전무

오픈소스를 어디에 어떻게 사용할 것인가를 논의하는 일은 이제는 무의미해졌다고 할 만큼 오픈소스에 의한 혁명이 진행되고 있다. 대표적인 오픈소스인 리눅스가 운영체제 및 가상화와 같은 인프라에 집중하고 있다면, JBoss는 자바 기반 소프트웨어 개발 및 운영에 필요한 미들웨어를 오픈소스 형태로 제공한다.

개발자나 운영자 또는 엔지니어로서 소프트웨어 소스 코드를 들여다 볼 수 있다는 것은 대단한 혜택이자 권리라고 할 수 있다. 개발자들은 해당 분야 전문가들이 작성해 놓은 코드를 분석하며 전문 지식을 빠르게 습득할 수 있으며, 운영자들은 시스템 장애 상황에서 블랙박스 같은 소스 내부를 추측하기 위한 수많은 테스트 과정 없이 소스 코드를 직접 분석하고 디버깅해서 장애 원인을 더욱 빠르고 정확하게 진단하는 것이 가능해진다.

JBoss는 J2EE 1.4, 1.5 인증을 받은 애플리케이션 서버로서 북미와 유럽에서는 이미 가장 많이 사용되는 애플리케이션 서버로 자리잡고 있으며, 이제는 전 세계적으로 상용 애플리케이션 서버를 대체하고자 기능과 품질 면에서 치열하게 경쟁하고 있다.

이 책은 JBoss 기반 시스템을 효율적으로 개발하고 운영하는 데 필요한 지식을 세밀하고 균형 있게 설명하고 있으며, 단계별 실습을 토대로 JBoss의 기능을 신속하게 이해할 수 있게 구성돼 있다. JBoss 서버의 설치 및 애플리케이션 배포, 보안 처리, 관리 및 모니터링, 성능 튜닝까지 JBoss를 사용하려는 아키텍트, 개발자, 운영자에게 반드시 필요한 모든 요소들을 설명하고 있다. 특히 JBoss를 현장감 있게 완전히 이해하고자 하는 모든 개발자에게는 필독을 권할 만한 책이다.

처음으로 J2EE 프로젝트를 JBoss로 이전하거나 시작하시나요? 『빠르게 활용하는 JBoss 5』는 J2EE 개발을 할 때 자주 접하는 함정과 복잡성을 피하고 과정을 단순화하는 방법을 알려드립니다. 이 책을 읽고 나면 JBoss가 어떻게 프로젝트 진행을 돕고 장애물과 좌절을 최소화하면서 실제 환경에 애플리케이션을 배포하는지 배우게 될 것입니다.

JBoss는 오픈소스 세계에서 가장 가치 있는 존재 중 하나로서 완전하며 공인된 J2EE 애플리케이션 서버입니다. JBoss는 극도로 높은 역량을 지닌 플랫폼으로서 환경설정을 거의 변경하지 않고도 완전한 J2EE 애플리케이션을 신속하게 개발하는 데 필요한 제반 사항을 모두 제공하며, 애플리케이션을 배포하기 위해 커스터마이징하고 구성하는 데 필요한 모든 사항을 일러줍니다.

『빠르게 활용하는 JBoss 5』는 실용적인 예제 중심으로 구성돼 있어 JBoss를 설치하는 것에서부터 실제 운영 환경에 배포하는 과정까지 여러분을 안내합니다. 이 책에서는 EJB나 JSP를 작성하는 방법은 다루지 않습니다. 이런 부분은 다른 책을 참고하세요. 대신 이 책에서는 실제 애플리케이션에서 이러한 컴포넌트들을 적재적소에 배치하고 구성하는 방법을 보여줍니다. 이 책에서는 다음과 같은 내용을 다룹니다.

  • JBoss의 설치, 구성, 모니터링
  • Ant를 이용한 WAR와 EAR 파일의 생성과 배포
  • XDoclet을 활용한 J2EE의 지루한 부분을 자동화
  • 현실세계의 상용 또는 오픈소스 데이터베이스와의 연동
  • 각종 로그인 모듈과 SSL을 포함한 보안 설정
  • Log4J를 활용한 서버와 애플리케이션의 중요 이벤트 로깅
  • 데이터베이스 스키마의 자동 생성과 EJB와 스키마 간의 지속적인 동기화
  • 이미 존재하는 데이터베이스 스키마와 오브젝트 간의 매핑
  • 완성된 제품 애플리케이션의 배포

『빠르게 활용하는 JBoss 5』는 J2EE 애플리케이션을 개발하는 모든 사람에게 완벽한 벗입니다. 이 책은 현실세계에서 엔터프라이즈 개발자로서 맞닥뜨리게 되는 가장 흔하고 도전적인 문제들을 헤쳐나가도록 안내해줄 것입니다.

노먼 리차드(Norman Richards)

노먼 리차드는 10년 이상 코드 자동 생성 기법을 활용해 소프트웨어를 개발해오고 있다. 그는 XDoclet의 열렬한 사용자이자 전도사다. 텍사스 오스틴에 살고 있다.

 

샘 그리피스 주니어(Norman Richards, Jr.)

샘 그리피스는 1987년부터 객체지향 프로그래밍을 해온 객체지향 설계/개발/교육자다. 오브젝트 C, C , 스몰토크, 오브젝트 파스칼, 오브젝트 포스(Forth), CLOS 및 기타 객체지향 시스템을 사용해오고 있다.

양재영

조지아 공대에서 컴퓨터 과학 석사 학위를 받은 후 1996년부터 LG CNS에서 데이터 웨어하우스, 비즈니스 인텔리전스, 오픈소스 소프트웨어 등에 대한 연구 개발 및 기술 지원 업무를 수행하고 있으며, 정보관리기술사 및 정보시스템수석감리원으로 활동하고 있다.

김명희

1995년부터 LG CNS의 기술연구부문 및 기술서비스부문에서 데이터 아키텍처 및 응용시스템 분석설계 분야의 기술지원 및 연구개발 업무를 담당하고 있다.

신장섭

1998년부터 LG CNS에서 WAS, EAI 등 미들웨어에 대한 SI 구축 및 해외 적용을 연구하고 있으며, 특히 교통분야에 대한 오픈소스 적용방안에 관심이 많으며 정보관리기술사 및 정보시스템수석감리원으로 활동하고 있다.

김원일

조지 워싱턴 대학교에서 통신 및 정보 시스템 석사 학위를 받았다. 2002년에 LG CNS에 입사해서 시스템 아키텍트로서 각종 프로젝트에 참여했으며, 2009년부터는 아키텍처의 컨설팅 업무를 수행하고 있다.

이승룡

1995년에 LG CNS에 입사해서 경찰청/대법원 프로젝트에서 애플리케이션 분석/설계/개발 업무를 수행했고, 이후 미들웨어 전문가로서 국민카드/외환은행 차세대 시스템 구축과 산업은행/LG CNS 전사 아키텍처 진단 등의 업무를 수행했다. 그리고 아키텍처 컨설턴트로서 EDS NewZealand TDY/한국스마트카드진단/일본최고재판소 진단/철도산업정보센터 ISP/글로비스 ISP 등의 프로젝트를 수행하였으며, 현재 BC카드 차세대 시스템 구축 프로젝트에서 아키텍처 총괄 업무를 담당하고 있다.

이종현

2000년부터 LG CNS에서 응용 및 S/W 아키텍트로 활동하며, 아키텍처 설계/구축 및 아키텍처 성능개선, 문제해결, 진단 활동을 수행했으며, 현재는 아키텍처컨설팅 업무를 담당하고 있다.

이동훈

2000년부터 LG CNS 기술 서비스 부분에서 S/W 아키텍트로서 국방 및 대법원 등의 다양한 대형 프로젝트를 수행했으며, 현재는 대형 금융 프로젝트에서 아키텍처 총괄 역할을 수행하고 있다.

 

옮긴이 글

2006년은 국내에서 공개SW 활성화 정책에 따라 공공 분야를 중심으로 주로 리눅스가 보급되던 시기였다. 이때 해외에서 오픈소스 WAS로는 JBoss가 가장 유명하다고 해서 원서를 하나 구입했는데, 실습 위주로 되어 있어 지루하지 않게 따라가다 보면 쉽게 익힐 수 있고 분량도 많지 않아서 참 괜찮은 책이라고 생각했다. 그게 바로 이 책이다.

최근 JBoss가 국내 프로젝트에도 다수 도입되면서, 이 책을 번역하면 많은 사람들이 좀 더 쉽게 JBoss에 입문할 수 있을 것으로 생각했고, 그래서 뜻있는 팀원들과 함께 작업하게 되었다. 그런데 원서는 JBoss4로 되어 있어 번역하면서 최신 버전인 JBoss5 기준으로 일일이 직접 테스트해보고 코드도 변경하느라 좀 고생스러웠다. 하지만 막상 책이 출판되니 모두 보람 있었던 일로 기억에 남는다.

이 책은 JBoss 설치부터 애플리케이션 운영을 위한 환경 구성 및 시스템 관리까지의 전 영역에 걸쳐 JBoss를 처음 접하는 시스템 관리자가 실습을 통해 쉽게 JBoss를 익혀나갈 수 있게 구성돼 있다.

또한, 이 책의 뒷부분에 수록돼 있는 부록은 원서에는 포함되지 않은 내용으로, 역자들이 국내에서 JBoss를 실제 프로젝트에 적용하면서 발생한 문제의 해결방법과 JBoss 관련 지식을 정리한 것이다. 이러한 프로젝트 적용 사례는 JBoss를 운영환경에 적용하려는 개발자와 시스템 관리자들에게 유용한 운영지식으로 활용될 것이다.

  • 1장 JBoss의 설치와 구동
    • 1.1. 서버 설치
      • 설치 방법
      • 방금 뭘 했지?
      • 이런 경우에는...
    • 1.2. JBoss 구동
      • 어떻게 해야 할까?
    • 1.3. 서버 검사(JMX 콘솔)
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 1.4. 서버 정지
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 1.5. 서버 구성 설정
      • 어떻게 해야 할까?
    • 1.6. 새로운 구성 생성
      • 어떻게 해야 할까?
      • 이런 경우에는...
    •  
  • 2장 Boss에 애플리케이션 배포하기
    • 2.1. Ant 설치
      • 어떻게 해야 할까?
    • 2.2. 애플리케이션 생성과 패키징
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
      • 이런 경우에는...
    • 2.3. 애플리케이션 실행
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 2.4. 배포된 애플리케이션 수정하기
      • 어떻게 해야 할까?
      • 이런 경우에는...
    • 2.5. 확장 배포
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 2.6. 관리 콘솔에서 애플리케이션 살펴보기
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 2.7. 애플리케이션 제거
      • 어떻게 해야 할까?
    •  
  • 3장 완전한 애플리케이션 만들기
    • 3.1. EJB 티어 만들기
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
      • 이런 경우에는...
    • 3.2. 웹 티어를 만들기 위한 XDoclet 사용
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 3.3. 사용자 정의하기
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 3.4. 애플리케이션 배포
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 3.5. 데이터베이스 살펴보기
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    •  
  • 4장 데이터베이스 연결
    • 4.1. MySQL 준비
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 4.2. JDBC 드라이버 추가
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
      • 이런 경우에는....
    • 4.3. 데이터소스 생성
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
      • 이런 경우에는...
    • 4.4. 애플리케이션에 데이터소스 연결하기
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 4.5. 커넥션 풀 모니터링
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    •  
  • 5장 보안 적용
    • 5.1. 보안 도메인 정의
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 5.2. 관계형 데이터베이스를 이용한 사용자 관리
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 5.3. 해쉬 비밀번호 사용
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 5.4. LDAP 서버를 이용한 사용자 관리
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 5.5. 로그인 모듈 조합하기
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 5.6. SSL 설정
      • 어떻게 해야 할까?
    •  
  • 6장 로깅
    • 6.1. log4j 설정
      • 방금 뭘 했지?
    • 6.2. 로깅 카테고리 추가
      • 어떻게 해야 할까?
    • 6.3. 로그 포맷 설정
      • 어떻게 해야 할까?
    • 6.4. 새 로그 파일 생성
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 6.5. 로그 파일 전환(rolling)
      • 어떻게 해야 할까?
    • 6.6. JMX 콘솔에서 로깅 조정하기
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 6.7. HTTP 액세스 로그
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 6.8. CMP를 대상으로 생성된 SQL 로깅
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
      • 이런 경우에는 …
    •  
  • 7장 영속성 설정
    • 7.1. 스키마 관리
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 7.2. 객체 매핑
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 7.3. 관계 매핑
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
      • 이런 경우에는 …
    • 7.4. 감사 데이터 추가
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 7.5. 주키 생성
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
      • 이런 경우에는 …
    •  
  • 8장 JBoss 관리와 모니터링
    • 8.1. 웹 콘솔 시작하기
      • 어떻게 해야 할까?
    • 8.2. 애플리케이션 모니터링하기
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 8.3. MBean 다루기
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 8.4. MBean 모니터링
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 8.5. 스냅샷 만들기
      • 어떻게 해야 할까?
    • 8.6. 모니터 생성하기
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 8.7. 이메일 경고 생성
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 8.8. 명령줄을 이용한 JBoss 관리
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    •  
  • 9장 JBoss 운영환경 구성하기
    • 9.1. 관리 콘솔 보안
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 9.2. JMX Invoker 보안
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 9.3. HTTP Invoker 제거
      • 어떻게 해야 할까?
    • 9.4. JMS 설정
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 9.5. 하이퍼소닉 삭제
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 9.6. 톰캣 커넥터의 설정
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
      • 이런 경우에는…
    • 9.7. 루트 웹 애플리케이션 설정
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    • 9.8. 클래스 다운로드 서비스 제거
      • 어떻게 해야 할까?
      • 방금 뭘 했지?
    •  
  • 부록A 이클립스에서 JBoss 애플리케이션 개발환경 설정하기
    • A.1. 이클립스 설치
    • A.2. JBoss Tools 설치
    • A.3. 웹 애플리케이션 배포
    • A.4. 테스트
    •  
  • 부록B JPA 예제 애플리케이션
    • B.1. MySQL 테이블 생성
    • B.2. 이클립스로 EntityExampleWeb 웹 애플리케이션 만들기
    • B.3. 테스트
    •  
  • 부록C 메시지-드리븐 빈 예제 애플리케이션
    • C.1. 행선지 만들기
    • C.2. 이클립스로 MessageDrivenBeanExample EJB 만들기
    • C.4. 테스트
    •  
  • 부록D 웹서비스 예제 애플리케이션
    • D.1. 이클립스로 WebServiceExampleWeb 웹 서비스 애플리케이션 만들기
    • D.2. 웹 서비스 올리기
    • D.3. 클라이언트 웹 애플리케이션 만들기
    • D.4. 테스트
    •  
  • 부록E UTF-8 인코딩
    • E.1. 테스트 애플리케이션 개발하기
    • E.2. GET
    • E.3. POST
    •  
  • 부록F 클래스 충돌 해결
    • F.1. 테스트 애플리케이션 작성
    • F.2. Tattletale
    • F.3. 클래스로딩 우선순위
    •  
  • 부록G 마이그레이션 사례
    • G.1. JBoss 설정
      • 설치 환경
      • JBoss 인스턴스 설정
      • 셸 스크립트 설정
      • 네트워크 포트 설정
      • JBoss 메시징 클러스터 설정
      • JBoss Web 설정
      • 웹 애플리케이션 세션 복제
      • JBoss jmx-console 보안 설정
      • JBoss web-console 보안 설정
      • HTTP 커넥션 스레드 최대값 설정
      • 오라클 JDBC 드라이버 설치
      • 예제 애플리케이션
    • G.2. 애플리케이션 마이그레이션
      • 오라클 데이터소스 설정
      • web.xml 설정 변경
      • jboss-web.xml 파일 설정
      • 애플리케이션 설정 파일 변경
      • Invoker Servlet 설정
      • WEB-INF/lib에 들어 있는 JAR 파일의 추가 및 삭제
      • WEB-INF/classes의 하위 디렉터리 삭제
      • 마이그레이션 시 발생한 에러 및 특이사항
    • G.3. 주요 기능의 개념 검증
      • 테스트 환경 구성
      • EJB3 기능 테스트
      • JMS 기능 테스트
      • 하이버네이트 기능 테스트
      • 분산 트랜잭션 기능 테스트
      • 세션 클러스터링 테스트
      • 실패극복 기능 테스트

예제코드 관련 GitHub 페이지

도서 소개자료

관련 글


엮인 글

엮인 글 주소: http://wikibook.co.kr/jboss-5/trackback/