Top

아파치 톰캣 7 따라잡기

  • 원서명Apache Tomcat 7 Essentials (ISBN 9781849516624)
  • 지은이타누즈 카르
  • 옮긴이우정은
  • ISBN : 9788960774759
  • 30,000원
  • 2013년 09월 30일 펴냄
  • 페이퍼백 | 330쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 오픈소스 프로그래밍

책 소개

소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/tomcat7)

[ 요약 ]

(2013년 9월 초판과 동일한 내용의 도서입니다.)
이 책은 톰캣 서버 관리자가 반드시 알아야 할 내용을 다룬다. 톰캣 7의 성능 튜닝, 다양한 설정 방법, 로깅, 모니터링, 마이그레이션 등 톰캣에 관한 모든 내용을 설명한다. 서버 관리자는 지금까지 자신이 알고 있던 지식을 시험해 볼 수 있는 동시에 새로운 지식도 쌓을 수 있을 것이다. 이 책에서는 톰캣 7을 다운로드하는 방법부터 설치하고 설정하는 방법 등 기초적인 내용도 자세히 설명하고 있어 톰캣을 처음 접하는 독자들도 도움을 얻을 수 있다.


[ 이 책에서 다루는 내용 ]

◆ 윈도우/리눅스 환경에 톰캣 7을 설치하는 과정과 설치 과정에서 발생한 문제 해결 방법
◆ 여러 애플리케이션을 배포하는 방법과 배포 과정에서 발생하는 문제 해결 방법
◆ 제품 환경의 모범 사례를 구현하는 방법과 일상의 작업량을 줄일 수 있는 트릭
◆ 아파치 같은 프론트엔드 웹 서버를 이용한 가용성 높은 아키텍처 구성(부하 배분과 클러스터링 설정) 방법
◆ 톰캣 성능 튜닝 전문가가 되기 위한 노하우
◆ 이전 버전의 톰캣을 톰캣 7으로 완벽하게 업그레이드
◆ 개발 환경/QA 환경/준비 환경/제품 환경의 톰캣 설정과 유지보수 팁
◆ 스레드 덤프 분석, JVM 모니터링, 데이터베이스와 OS 관련 문제, 톰캣 7 문제 진단 방법


[ 이 책의 대상 독자 ]

J2EE 관리자, 마이그레이션 관리자, 기술 아키텍트, 웹 호스팅 도메인 프로젝트 관리자, 아파치 톰캣 7에 관심이 있는 사람이라면 이 책에서 유용한 정보를 얻을 수 있다. 뿐만 아니라 톰캣 7을 설치, 설정, 관리해야 한다면 도움을 받을 수 있을 것이다.


[ 이 책의 구성 ]

이 책은 세 단계의 생명주기로 구성돼 있다. 첫 번째 단계에서는 톰캣 7을 다양한 OS에 설치와 설정, 그리고 JDBC, 포트, 배포 등의 다양한 설정을 다룬다.
두 번째 단계에서는 기업 애플리케이션 설정과 높은 가용성 아키텍처(클러스터링과 부하 배분)와 관련한 내용을 설명한다. 가장 핵심이 되는 세 번째 단계에서는 중요한 문제를 처리하는 방법, 성능을 튜닝하는 방법, 개발/QA/준비/제품 등 다양한 환경의 모범 사례를 살펴본다.

이 책을 통해 웹 기술 분야에서 톰캣 7을 더 폭넓게 활용할 수 있는 시야를 갖게 될 것이며, 아파치 톰캣 7을 이용해 톰캣 7의 성능을 최적화하는 기술도 습득할 수 있다.

1장, ‘톰캣 7 설치’에서는 아파치 톰캣의 역사와 톰캣 7에서 새로 추가된 기능을 설명한다. 톰캣 7을 윈도우, 리눅스 운영체제에 설치하는 방법을 단계별로 확인하며 설치 과정에서 흔히 발생하는 문제와 해결 방법도 살펴본다.

2장, ‘설정과 배포’에서는 오라클, MySQL, PostgreSQL 등의 다양한 데이터베이스의 데이터소스 설정방법을 포함해, 애플리케이션을 이용한 컨텍스트 경로 생성 등 다양한 톰캣 설정을 학습한다. 톰캣 관리자를 이용해 샘플 애플리케이션을 배포하는 방법 등 다양한 배포방법을 살펴보며, 배포와 관련해 발생하는 공통적인 문제를 해결 방법도 확인할 수 있다.

3장, ‘성능 튜닝’에서는 아파치 톰캣 7에 적용할 수 있는 다양한 성능향상 방법과 기법을 설명한다. 커넥터, JVM 성능 튜닝, OS 파라미터 최적화 등을 설정하는 방법을 단계별로 학습한다.

4장, ‘아파치 웹 서버와 톰캣 통합’에서는 아파치/IIS를 톰캣 7과 통합하는 방법과 mod_jk, mod_proxy 등의 다양한 컴포넌트를 통합하는 방법뿐 아니라 통합 과정에서 실제로 발생할 수 있는 문제와 해결 방법을 살펴본다.

5장, ‘톰캣 7 보안’에서는 카탈리나 정책, 시스템 수준 정책 등 톰캣 7의 다양한 정책과 기능을 설명한다. SSL 같은 보안을 활성화하는 방법과 장점, 설정을 변경하고 SSL을 구현함으로써 제품 환경에서 동작하는 톰캣 7을 안전하게 유지하는 업계의 모범 사례 등도 살펴본다.

6장, ‘톰캣 7 로깅’에서는 톰캣 7의 로그를 활성화하는 다양한 방법(log4j, JULI)을 살펴본다. 로그를 분석하는 모범 사례, 팁, 트릭 등도 설명한다.

7장, ‘톰캣 문제 해결’에서는 애플리케이션 관리자와 웹 관리자가 실제 환경에서 겪을 수 있는 다양한 문제, 다양한 기법, 그리고 여러 가지 에러와 해결책을 이용해 제품 환경에서 이들 문제를 회피하는 방법, 스레드 덤프를 분석하는 데 사용하는 스레드 덤프 분석 방법과 도구, 실제 문제를 해결하는 방법, 웹 서버 벤치마킹 등을 설명한다.

8장, ‘톰캣 7 모니터와 관리’에서는 톰캣 7을 모니터링하는 다양한 프로세스, 톰캣 관리자와 JConsole을 사용하는 컴포넌트, 다양한 모니터링 방법, 톰캣 7을 모니터링하는 방법, JConsole을 사용하는 방법 등을 설명한다.

9장, ‘톰캣 7 클러스터링’에서는 톰캣 7의 클러스터링과 구현 기법을 설명한다. 클러스터링 구조, 수평 클러스터와 수직 클러스터의 장점, 그리고 이들 클러스터를 톰캣 7에 구현하는 방법, 클러스터 검증 방법을 학습한다.

10장, ‘톰캣 업그레이드’에서는 톰캣 6을 톰캣 7으로 업그레이드하는 다양한 기법, 업그레이드 생명주기와 관련한 업그레이드 과정, 톰캣 7의 설정 업그레이드, 데이터소스 설정을 설명하며 업그레이드 과정에서 사용하는 다양한 ITIL 프로세스도 살펴본다.

11장, ‘아파치 톰캣 7 고급 설정’에서는 톰캣 7의 고급 설정과 최적화 파라미터를 설명한다. 특히 가상 환경, 개발/QA/준비/제품 환경의 기능, 서비스로 동작하는 톰캣, 특권이 없는 사용자로 톰캣 실행하는 방법 등의 핵심 내용이 들어있다.

저자/역자 소개

[ 지은이의 말 ]

이 책은 다양한 업계의 전문가가 미들웨어 인프라구조를 유지보수할 때 사용하는 팁, 트릭 등을 이용해 아파치 톰캣 7을 전문적으로 관리하고 문제를 해결하도록 돕는다. 특히 실용적인 해결책을 제시할 뿐만 아니라 왜 그런 솔루션을 사용하는지 자세히 설명한다는 것이 강점이다.

아파치 톰캣(또는 자카르타 톰캣이나 단순히 톰캣)은 아파치 소프트웨어 재단에서 개발한 오픈소스 서블릿 컨테이너다. 가장 최근의 안정 릴리스 버전의 아파치 톰캣 7에서는 서블릿 3와 JCP를 구현하며 JCP(Java Community Process)의 자바 서버 페이지 2 규격명세를 구현한다. 톰캣은 애플리케이션과 웹 서비스를 개발하고 배포하는 데 활용할 수 있는 부가 기능을 많이 제공한다.

『아파치 톰캣 7 따라잡기』는 톰캣을 설치하고, 설정하고, 유지보수하는 실용적인 방법을 알려준다. 이 책을 통해 여러 웹사이트를 호스트할 수 있는 미들웨어 아키텍처를 이해할 수 있으며, 미들웨어 지원 기능을 자신 있게 구현할 수 있게 된다. 마이그레이션 관련 문제 해결 능력뿐 아니라 일반적인 유지보수 문제 해결 방법을 배울 수 있다. 이전 버전에서 톰캣 7으로 업그레이드하는 방법을 다룬 유일한 책이다.

초급 수준의 내용부터 고급 수준의 내용이 모두 들어있다. 미들웨어, 웹 문제를 처리하는 데 필요한 개념을 이해할 수 있도록 이론과 실무를 고루 살펴볼 수 있게 구성했다.

[ 지은이 소개 ]

타누즈 카르 (Tanuj Khare)
6년 동안 IT 전문가로 활동했다. ITIL 프레임워크와 린 식스시그마(Lean Six Sigma) 같은 기법을 이용해 프로세스를 개선하는 과정에 참여했다. MCSA, ITIL 자격증이 있으며, 핵심 서버 제품 문제 해결 분야의 전문가다. 그는 또한 복잡한 문제를 해결한 경험이 많다. 제품 환경에서 발생한 문제를 빨리 해결해서 자신의 팀과 고객에게 큰 도움을 줬다.

톰캣, 웹로직, JBoss 서버 관리의 특정 분야 전문가(SME, Subject Matter Expertise)다. 소규모 팀을 구성해 규모가 큰 기업의 웹 호스팅 환경용 J2EE 관련 작업을 했으며, 빠른 업무 처리 시간으로 일정 내에 프로젝트를 마쳤다. 또한 문제 원인 분석, 문제 관리, 애플리케이션 마이그레이션, 웹 애플리케이션 서버 업그레이드 능력도 뛰어나다. 지금까지 100개 이상의 기업 애플리케이션을 마이그레이션했고, J2EE 웹 애플리케이션을 업그레이드했다. 1,000개가 넘는 미들웨어 인스턴스의 환경도 관리했다.

탁구와 새로운 기술을 배우는 것을 좋아하며, 춤도 잘 춘다. 이 책은 그의 첫 번째 작품이다.

[ 옮긴이의 말 ]

지금으로부터 약 14년 전인 1999년에 톰캣 3.0.x가 오픈소스로 출현한 이후 현재까지, 그리고 앞으로도 자신의 위치를 지킬 것으로 보인다. 끊임없는 버전 업데이트와 함께 더욱 훌륭한 서버로 진화하고 있다.

이 책은 서버 관리자라면 누구나 알아야할 내용을 설명한다. 서버 관리자라면 자신의 지식을 시험해 보면서 동시에 톰캣 7의 새로운 내용도 익힐 수 있는 좋은 기회다. 지금까지 알지 못했던 톰캣의 기능도 많이 접할 수 있을 것이다. 또한 톰캣 7을 다운로드하고, 설치하고, 설정하는 방법까지 자세히 설명하므로 톰캣 7을 처음 접하는 초보자라도 큰 어려움 없이 내용을 이해할 수 있다.
보통 톰캣과 SQL, PHP, JSP 등을 함께 사용하는 서버 관리자가 많을 것이다. 또한 시중에서도 이들을 함께 다루는 책을 찾아볼 수 있다. 이 책은 톰캣에만 초점을 맞췄으므로 톰캣에 대해 더 깊이 있게 살펴볼 수 있다.

책을 번역할 때는 언제나 ‘어떻게 하면 독자가 책을 읽기 쉬울까’를 고민하게 된다. 만족할 만한 결과물이 나올 때가 있는 반면 전혀 만족스럽지 못한 결과가 나올 때도 있다. 역자의 역량도 중요하겠지만 역자의 역량이라는 요소를 제외한다면 역시 원서의 질과 설명 방식이 번역서에 결정적인 영향을 미치게 된다. 이 책의 원서는 매우 쉽고 간결하게 톰캣 7을 설명한다. 따라서 매우 직관적으로 내용을 번역할 수 있었고, 결과적으로 번역서를 즐기는 독자들 역시 쉽고 정확하게 책이 전달하는 내용을 이해할 수 있을 것이다.


[ 옮긴이 소개 ]

우정은
인하대학교 컴퓨터공학과를 졸업하고 벨록스소프트(현 유비벨록스), LG전자, 썬 마이크로시스템즈를 거쳐 현재 오라클에 근무하고 있다.
주로 자바 가상머신, 임베디드기기에 탑재되는 자바 플랫폼과 관련된 일을 했다. 아이폰과 안드로이드 프로그램의 매력에 빠져들면서 번역 및 개발을 취미로 삼게 됐다. 2010년부터 아이폰, 안드로이드, 리눅스, 임베디드 분야의 책을 다수 번역했다.

목차

목차
  • 1장 톰캣 7 설치
    • 톰캣의 역사
      • 톰캣 지원 매트릭스
      • 아파치 톰캣 7의 기능과 개선사항
        • 웹 애플리케이션 메모리 누수 감지와 방지
        • 서블릿 3.0
        • 개선된 로깅
        • 별칭
    • 톰캣 7 설치
      • 톰캣 소프트웨어를 다운로드하는 방법
        • 바이너리 패키지
        • RPM/exe
        • 소스
      • 톰캣 7 설치 요구사항
        • 자바 설치
      • 아파치 톰캣 7 설치
        • 윈도우 환경에서 톰캣 7 설치
        • 리눅스 환경에서 톰캣 7 설치하기
      • 톰캣 서비스를 시작하고 종료하는 방법
        • 윈도우에서 서비스 제어하는 방법
        • 리눅스에서 서비스 제어하는 방법
        • 스타트업 스크립트
        • 셧다운 스크립트
      • 톰캣 상태 확인
    • 설치 과정에서 자주 발생하는 문제와 해결방법
      • 에러: 자바 바이너리 권한 거부
      • 에러: 톰캣에서 JAVA_HOME을 찾을 수 없다
      • 에러: 포트가 이미 사용 중이라는 에러가 로그로 출력됨
    • 요약
  • 2장 설정과 배포
    • 설정 파일과 사용법
    • 톰캣 7 설정하기
      • DataSource 설정
        • JDBC
        • JNDI
        • DataSource
    • 시중에서 흔히 볼 수 있는 데이터베이스의 데이터소스 비교
      • 톰캣 관리자 설정
        • 톰캣 관리자 활성화
      • 컨텍스트 경로
        • 컨텍스트 경로 활성화
    • 톰캣 7에 배포하기
      • 웹아카이브(WebArchive)의 구조
        • 아카이브 파일
    • 배포 유형
      • 톰캣 7에서 애플리케이션을 배포하는 방법
    • 톰캣의 배포, 설정 과정에서 흔히 발생하는 문제
    • 요약
  • 3장 성능 튜닝
    • 톰캣 7의 성능 튜닝
      • 왜 성능을 튜닝해야 하는가
    • 성능 튜닝 시작하기
    • 톰캣 컴포넌트 튜닝
      • 톰캣 7의 커넥터 종류
        • 자바 HTTP 커넥터
        • 자바 AJP 커넥터
        • APR (AJP/HTTP) 커넥터
      • 톰캣 7의 스레드 최적화
        • 공유 스레드 풀(공유된 실행자)
        • 전용 스레드 풀
        • 공유 스레드 풀과 전용 스레드 풀의 비교
        • maxThreads
        • maxKeepAlive
    • JVM 튜닝
      • 왜 톰캣의 JDK를 튜닝해야 하는가
        • JMAP(메모리 맵)
      • 톰캣 7의 힙 크기를 증가시키는 방법
        • 가비지 콜렉션
      • JVM 옵션
        • 표준 옵션
        • 비표준 옵션
        • GC 로그에 표시된 파라미터
        • SurvivorRatio
    • OS 튜닝
    • 요약
  • 4장 아파치 웹 서버와 톰캣 통합
    • 사용자 요청 흐름(웹/애플리케이션 수준)
    • 왜 아파치 HTTP 서버를 사용하는가
    • 아파치 HTTP 설치
      • 윈도우에서 아파치 HTTP 설치하기
        • 아파치 서비스를 확인하는 방법
      • 리눅스(비 DOS 환경)에 아파치 HTTP 설치하기
        • 아파치 포터블 런타임
    • 아파치 Jserv 프로토콜
      • mod_jk 설치하고 설정하기
        • mod_jk 설치
        • 아파치에서 mod_jk 설정하기
      • mod_proxy 설정
      • modjk와 modproxy 비교
    • 톰캣 7과 IIS 통합
      • 요구사항
      • 설치 과정
    • 통합 과정에서 일반적으로 발생하는 문제와 해결 방법
    • 요약
  • 5장 톰캣 7 보안
    • 톰캣 관리자
    • 톰캣 보안 권한
      • catalina.properties
      • catalina.policy
        • 시스템 코드 권한
        • 카탈리나 코드 권한(톰캣 코어 권한)
        • 웹 애플리케이션 권한
      • tomcat-users.xml
      • server.xml
    • 톰캣 관리자 활성화
      • 톰캣 관리자를 활성화하는 방법
    • 제품 환경에 맞는 톰캣 7 보안
      • 톰캣 설정
        • 커넥터 포트
        • 톰캣 애플리케이션 감량
        • 핫 배포 비활성화
      • 톰캣 이외의 설정
        • 별도의 사용자로 서비스
        • 방화벽
        • 비밀번호
    • 톰캣 7의 SSL 설정
      • SSL 인증서 종류
      • SSL 설치 과정
    • 요약
  • 6장 톰캣 7 로깅
    • 줄리
    • 로거, 어펜더, 레이아웃
    • 톰캣 7의 로깅 종류
      • 애플리케이션 로그
      • 서버 로그
      • 콘솔 로그
      • 액세스 로그
      • 호스트 관리자
    • 톰캣 7의 다양한 로그 수준
    • Log4j
      • Log4j의 다양한 로그 수준
        • Log4j 설정 방법
      • 로그 수준 매핑
    • 톰캣 7의 밸브
    • 로그 분석
      • 로그 분석에 유용한 명령어
    • 요약
  • 7장 톰캣 문제 해결
    • 웹 관리자가 공통적으로 겪는 문제 영역
    • 문제 해결 방법
      • 애플리케이션이 느려지는 문제
        • 톰캣 7에서 느림 문제를 해결하는 방법
        • 데이터베이스 수준에서 문제 해결
    • 톰캣 7에서 스레드 덤프 만드는 방법
      • Kill 명령어를 이용한 스레드 덤프
      • Jstack을 이용한 스레드 덤프
        • 톰캣 인스턴스의 스레드 덤프 분석 방법
      • 사무라이로 스레드 덤프 분석하기
      • 스레드 덤프 분석기를 이용해 스레드 덤프 분석하기
      • 에러와 해결책
        • JVM(메모리) 문제
        • 데이터베이스 관련 문제
    • 웹 서버 벤치마킹
      • 아파치벤치
      • 제이미터
    • 요약
  • 8장 톰캣 7 모니터와 관리
    • 다양한 모니터링 방법
    • 웹 애플리케이션, 데이터베이스 서버에 모니터링 설정
    • 톰캣 7의 톰캣 관리자
    • 톰캣 7 모니터링
      • 톰캣 7 서버 상태 요약
        • 톰캣 7 서버의 모든 상태
    • 톰캣 7의 JConsole 설정
      • 원격 JMX 활성화
      • JConsole 연결 방법
      • JConsole의 다양한 탭과 기능
        • 메모리 개요
        • 스레드 개요
        • 개요와 VM 요약
        • MBeans
    • 요약
  • 9장 톰캣 7 클러스터링
    • 클러스터란 무엇인가
      • 클러스터링의 장점
      • 클러스터링의 단점
    • 클러스터링 아키텍처
      • 수직 클러스터링
        • 수직 클러스터링의 장점
        • 수직 클러스터링의 단점
      • 수평 클러스터링
        • 수평 클러스터링의 장점
        • 수평 클러스터링의 단점
    • 아파치 톰캣 7의 수직 클러스터링
      • 톰캣 인스턴스 설치
      • 수직 클러스터 설정
        • 인스턴스 1 설정
        • 인스턴스2 설정
      • 아파치 웹 서버를 수직 클러스터로 설정
    • 아파치 톰캣 7의 수평 클러스터링
      • 톰캣 인스턴스 설치
      • 클러스터 설정
        • 인스턴스 1 설정
        • 인스턴스 2 설정
      • 아파치 웹 서버를 수평 클러스터로 설정
    • 클러스터된 인스턴스 테스트
    • 톰캣 클러스터링 모니터링
    • 요약
  • 10장 톰캣 업그레이드
    • 다양한 환경
      • 개발 환경
      • 품질 보증 환경
      • 준비 환경
      • 제품 환경
    • 업그레이드 생명 주기
    • 톰캣 6에서 톰캣 7으로 업그레이드
      • 톰캣 7의 요구사항
      • 업그레이드할 톰캣 7 설치
      • 톰캣 7 설정
        • JVM 설정
        • 데이터베이스 연결 설정
        • 애플리케이션 마이그레이션
        • 별칭 설정
    • ITIL 과정 구현
      • 가용성 관리
      • 용량 관리
      • 서비스 전이
    • 요약
  • 11장 톰캣 7의 고급 설정
    • 가상 호스팅
      • 이름 기반 가상 호스팅
      • IP 기반 가상 호스팅
    • 톰캣 7의 가상 호스팅
    • 호스트명 별칭
    • 하나의 톰캣 인스턴스로 여러 애플리케이션 호스팅
    • 다양한 톰캣 환경 ? 개발 환경/QA 환경/ 준비 환경/제품 환경
    • 캐시 튜닝
    • 톰캣 7 최적화
      • 특권이 없는 사용자로 톰캣 7 실행하기

도서 오류 신고

도서 오류 신고

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

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

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

정오표

[ p79 MySQL 데이터베이스 데이터소스 파라미터 정의 코드 전체 변경 ]
<Resource name="jdbc/tomcat7" auth="Container" type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/tomcat7"
username="tomcatuser" password="tomcat"
maxActive="100" maxIdle="30" maxWait="10000"/>