Books 2013.08.14 20:41


웹 프로그래머를 위한 서블릿 컨테이너의 이해 - 최희탁


평소에 Tomcat이나 Jetty 같은 서블릿 컨테이너를 매일 개발에 사용하면서도 이들의 내부 구동 방식은 전혀 신경 쓰지 않았었다. 그래서인지 코딩을 하거나 디버깅을 하면서 현재 사용하고 있는 웹 프레임워크인 Struts나 Spring보다 좀 더 깊은 단계까지 들어가서 코드를 분석해야 할 경우 시작도 하기 전에 겁을 먹고 중단하기 일쑤였다. 이런 일들이 반복되면서 무의식 적으로 서블릿 컨테이너는 내가 건드려 볼 수 없는 수준의 것들이다라고 생각하고 여태껏 공부해 볼 생각을 전혀 하지 않았었다.

그러다가 우연히 홍대의 한 서점에서 톰캣 최종분석이라는 책을 접하게 되었다. 이 책은 Tomcat이 내부적으로 어떻게 동작하는지 분석하는 책이었는데, 이 책을 처음 훑어보고 든 생각은 서블릿 컨테이너도 사람이 만든 것이니 나도 충분히 분석할 수 있겠구나라는 것이었다. 그래서 이런 류의 책들이 좀 더 있는지 살펴보다가 발견한 책이 바로 이 책이다. 책의 두께도 그다지 두껍지 않았고 내용도 간결하게 설명이 되어있는 것 같아서, 톰캣 최종분석을 읽기 전에 배경지식을 쌓기위해 이 책을 읽게 되었다.

일단 이 책은 초보자가 볼만한 책은 아니다. 이 책을 제대로 이해하려면 JAVA를 이용한 네트워크 프로그래밍과 병렬 프로그래밍에 대해 어느 정도 지식이 있어야 한다. 또 평소에 서블릿 컨테이너를 사용해 본 경험이 어느정도 있어야 책의 내용이 좀 더 빨리 이해가 되고 머릿속에 와닿을 것이다.

이 책은 HTTP 프로토콜에 응답하는 간단한 웹서버 제작을 시작으로, 책 마지막 쯤에는 직접 간단한 서블릿 컨테이너를 제작한다. 처음에는 술술 잘 따라가다가도 점점 예제 코드가 길어지고, 성능 향상을 위해 병렬 프로그래밍적 요소들이 하나 둘씩 등장하면서 예제를 따라가기가 점점 힘들어 진다. 하지만 그럴 수록 평소에 접하지 못했던 고급 프로그래밍 스킬들과 네트워크 프로그래밍 관련 지식들을 익힐 수 있었기 때문에 고생한 만큼 보람이 있었다.

책을 읽다보면 중간중간 쓸데 없는 내용들도 좀 포함되어 있긴 하지만 그런 것들 외에도 건질만한 것들이 매우 많았기 때문에 상당히 유익했던 독서라고 생각한다. 특히나 이 책을 통해서 서블릿 컨테이너가 내부적으로 어떻게 동작하는 지 알게 되었고, 서블릿 컨테이너에 대한 막연한 두려움도 사라지게 되었다. 이제 서블릿 컨테이너의 동작원리를 어느정도 알게 되었으니 다음 번엔 톰캣 최종분석을 가지고 Tomcat의 내부 구조를 심도있게 공부해봐야겠다.

신고
Trackback 0 Comment 0