서블릿 컨테이너의 이해

endofhope의 이미지

작년 이맘 때 문득 제가 프로그래밍을 시작한 지 십년이 넘었다는 것을 깨달았습니다. 그리고 그 짧지 않은 시간동안 과연 무엇을 했던가 되돌아 보았습니다.
그 동안 운이 좋게도 시스템 소프트웨어를 직접 구현하는 기회를 가졌는데 흔하지 않은 그 경험들을 그저 망각 속에 흘려보내기가 아쉽기도 하고 웹 프로그래밍을 하는 누군가에게 도움이 될 수 있겠다는 생각에 기록으로 남겨보기로 결심했습니다.
어떻게 보면 다른 일을 시작하기 전에 이전 일을 완전히 매듭짓지 못하면 일을 하면서도 계속 찜찜한 기분이 남듯 제겐 이 기록이 지금까지의 제 경험을 나름대로 정돈하며 매조지하는 의미가 있었다 하겠습니다.

이런 과정을 거쳐 이번에 "웹 프로그래머를 위한 서블릿 컨테이너의 이해" 라는 이름으로 서적을 출간하였습니다.
http://hanb.co.kr/ebook/look.html?isbn=9788979149685
DRM이 없는 PDF 형식인 관계로 전용 뷰어도 필요 없고 재생 기계 수에도 제한이 없습니다.
Java 웹 서비스의 시스템 소프트웨어인 서블릿 컨테이너에 대해 관심이 있는 분께 도움이 되었으면 합니다.

아래에 목차를 붙입니다.
Part 1 웹 서비스 기초

1장. 서블릿 컨테이너를 학습해야 하는 이유
01. 웹 애플리케이션 서버의 역할

2장. HTTP 프로토콜의 이해
01 .아파치 TCPMon
02. HTTP 프로토콜의 간략한 소개
03. 첫 번째 HTTP 메시지 분석 - 청크 인코딩
04. 두 번째 HTTP 메시지 분석 - Content-Length 지정
05. 매개변수를 이용한 GET 요청
06. 매개변수를 동반한 요청 - POST 방식 (x-www-form-urlencoded)
07. FORM은 POST 전용인가?
08. 서블릿 컨테이너의 매개변수 처리 - GET/POST 방식의 차이점
09. 바이너리 데이터 전송 - multipart/form-data
10. 더 생각해 볼 문제

3장. 서블릿의 이해
01. 서블릿이란 무엇인가
02. GenericServlet
03. HttpServlet
04. Apache Tomcat
05. 웹 애플리케이션 배치
06. 더 생각해 볼 문제

Part 2 서블릿 컨테이너

4장. HTTP 프로토콜 분석기
01. 메시지의 끝은 어디인가
02. HTTP GET 요청 처리기
03. 메시지 바디 처리 - Content-Length 인식
04. 매개변수의 처리 - 쿼리스트링과 x-www-form-urlencoded
05. 성능 개선 1 - 버퍼의 사용
06. 성능 개선 2 - 더 나은 I/O
07. 더 생각해 볼 문제

5장. 서블릿 관리자
01. 웹 애플리케이션
02. 인터페이스를 사용한 컴포넌트와 컨테이너의 분리
03. HTTP 요청이 서블릿에 가기까지
04. 서블릿 관리자
05. 더 생각해 볼 문제

6장. 병렬처리
01. Stop/suspend와 wait/notify 메서드
02. 스레드 풀의 구성 요소 - jetty 6.x의 경우
03. java.util.concurrent 패키지
04. ThreadPoolExecutor의 사용
05. 적정 병렬 진행 수
06. 더 생각해 볼 문제

7장. BIO와 NIO의 비교
01. 일반적인 프론트엔드 웹 서비스 구성
02. 직관적이고 개념적인 I/O
03. 좀 더 실제 물리적 전송과 근접한 I/O 방법
04. 프론트엔드 서버로서의 서블릿 컨테이너
05. NIO 기반의 HTTP 프로토콜 상태 기계 구현
06. 더 생각해 볼 문제

8장. 서버 프로그램으로서의 서블릿 컨테이너
01. 서블릿 컨테이너 분석하기
02. 부팅과정에서 벌어지는 일들
03. 생명주기 관리
04. 남은 이야기
05. 더 생각해 볼 문제

Part 3 남은 주제들

9장. Comet - HTTP 알림
01. 단순한 시도 - 폴링
02. 생각의 전환 - 스트림 방식
03. Neurasthenia - Comet 지원 서블릿 컨테이너
04. 두 개의 연결
05. 더 생각해 볼 문제

10장. 남은 이야기들

techneer의 이미지

아직 내용을 보진 않았지만, 구성은 탄탄한 것 같네요.

웹 기초부터 시작해서, 스레드나 I/O 같은 깊이있는 부분도 다루고요

comet 같은 최신 기술도 서술을 하셨네요.

대단한 내공이 있는 분으로 느껴지네요.

시간나면 읽어보겠습니다 ^^