 |
|
톰캣과 유닉스
이 튜토리얼의 목적은 톰캣과 관련된 모든 것을 알려주는 권위있는 가이드 역할을 하려는 게 아니라 독립적인 개발 혹은 테스트 서버 환경을 고려할 때 지식의 가장 기초가 되는 토대를 제공하여 독자들을 일깨우는 데 있다. 여러분이 그러한 밑바탕을 갖추고 있을 때에야 필요할 때 그 지식을 토대로 본격적으로 엔터프라이즈 환경까지 확장해 나갈 수 있을 것이다.
왜 톰캣인가?
왜 톰캣을 쓸까? 제이보스(JBoss), 제로니모(Geronimo), WebSphere Application Server Express 같은 것들을 써도 되는데 말이다.
톰캣 버전 6는 그 자체만으로는 별볼일 없는 경량화된 솔루션일 뿐이다. 제이보스, 제로니모, IBM WebSphere® Application Server Express에 들어있는 모든 자바 플랫폼 엔터프라이즈 에디션(자바 EE) 기능과 추가 패키지가 들어 있지는 않지만 메모리를 많이 필요로 하지 않으며 소규모 서버에서도 빠르게 동작한다. 게다가 무료로도 이용할 수 있다.
톰캣은 그저 기본적인 자바 애플리케이션 서버 기능만을 지원하는 JSP(JavaServer™ Pages)/서블릿(servlet) 컨테이너다. 확장성도 없고 자바 EE 버전 5에 부합하지도 않는다. 이것이 실제 서비스 환경에서 드물게 사용되는 이유다.
엔터프라이즈 환경에서 신규 서버 사용을 고려하고 있다면 가장 명확하게 찾을 수 있는 건 AIX와 솔라리스다. 사실 솔라리스는 엔터프라이즈 시장에서 가장 점유율이 높다. 다른 유닉스로는 FreeBSD와 맥 OS X이 있다.
유닉스와 윈도(Windows®)에 톰캣 설치
윈도 컴퓨터에서도 이 튜토리얼의 예제를 구동할 수 있다. 아파치 커뮤니티는 유닉스에 대해서만 수년에 걸쳐 작업물을 공급해 온 이후 윈도 플랫폼에 대해서도 개발하는 친절한 일을 해주었다. 하지만 어떤 통계 수치를 보느냐에 따라 다를 수 있겠지만 아파치 웹 서버와 그에 수반하는 제품들은 웹 서버 아키텍처 솔루션의 90% 이상에서 사용되고 있다. 너무 자세한 이야기까지 할 필요도 없이 유닉스는 윈도 서버(Windows Server®) 운영체제가 따라올 수 없는 순수한 다중 사용자 운영체제의 안정성, 보안, 단순성을 제공한다.
이 말은 윈도를 쓰기로 결정했다면 유닉스와 윈도에는 톰캣 설정에 약간의 차이점이 있어서 다음과 같이 알아둬야 할 점이 있음을 의미한다.
- 유닉스 서버에서 초기 설치 파일을 추출하는 데에는 아마도
bzcat, gunzip, tar(혹은 gtar)가 필요할 것이다.
- PATH 설정은 유닉스 서버에서 좀 더 드러나 있다. 윈도는 여전히 경로 지정 방식을 쓰지만 소프트웨어 설치 시 많은 부분이 감춰져 있거나 자동으로 처리된다.
- 유닉스에서 설정할 때에는 접근 권한에 대한 고려가 상대적으로 더 중요하다. 유닉스 서버의 보안 강점은 가장 큰 문제의 원인이기도 하다. 소프트웨어 초기 설치 시 기본 운영체제 파일 시스템(/var, /tmp 등)에 해당 소프트웨어를 써 넣으려면 적절한 권한이 필요하다. 게다가 다양한 내외부 소프트웨어 컴포넌트와 여러분의 유닉스 서버를 연결할 때에는 접근 권한에 대해 항상 잘 알고 고려해야 한다. 항상 ID, 그룹, 적절한 접근 권한에 대해 고려해야 한다.
- 윈도에서 설치 작업은 그래픽 사용자 인터페이스(GUI) 기반인 반면 유닉스는 전통적으로 명령줄 인터페이스(CLI)를 사용한다. 이런 상황은 인기 몰이를 하고 있는 맥 OS X 버전 10.5 레퍼드(Leopard)를 비롯하여 Gnome 등 여타 그래픽 환경을 통해 다소 변화하고 있긴 하다. 하지만 순수주의자들은 CLI를 장려할 것이다. 그 밖에도 CLI는 배우기는 데 그만이다.
- 윈도는 자동화된 배치 파일 처리에 .bat을, 실행 파일에 .exe 파일을 쓴다. 유닉스에서는 기본적으로는 실행 스크립트 등에 .sh나 .ksh 확장자를 사용한다. .sh나 .ksh 형식은 사용하는 셸이 어떤 것이냐에 따라 달라진다.
톰캣 버전
매 릴리스에 포함된 수많은 수정 사항, 변경, 새로운 기능, 옛날 작업을 수행하는 새로운 방식을 고려한다면 어떤 소프트웨어 버전을 쓸지 결정하는 건 때때로 어려운 일이다. 톰캣에서도 똑같은 문제에 봉착한다. 배치할 애플리케이션이 어떤 J2EE 명세에 맞게 코딩되었고 그에 맞는 관리 서버는 어떤 것인지 표 1을 자세히 살펴볼 것을 추천한다.
표 1. 톰캣 버전에 대한 JSP 명세
| JSP 명세 | 톰캣 버전 |
|---|
| 2.5/2.1 | 6.0.x |
|---|
| 2.4/2.0 | 5.5.x |
|---|
| 2.3/1.2 | 4.1.x |
|---|
| 2.2/1.1 | 3.3.x (archived) |
|---|
어떤 소프트웨어 버전을 쓸지 결정하는 그다지 기술적이지 않은 방법이 또 하나 있는데 최근 안정 버전을 고집하는 것이다. 보통 최근 보안 수정 사항과 기능 변경만 받는다.
|