애플리케이션의 성능, 사용 용이성, 민첩성을 자세히 비교해 수 있는 방법을 알려 드립니다.
항시 CEO는 IT 관리에 대해 단순한 의문을 품곤 합니다. 왜 고객들은 새로운 온라인 주문 시스템에 불만을 표하는 것일까? 신규 웹 서비스를 출시하는 데 8개월이나 걸리는 이유는 무엇인가? 내가 즐겨 사용하는 재무 보고 애플리케이션이 오늘 아침에 문제를 일으킨 원인은 무엇인가? 하지만 IT 관리 측면에서 '회사가 어떤 애플리케이션 서버 기술을 사용하고 있는가' 에 대해 의문을 던지는 CEO는 거의 찾아보기 힘듭니다. 이는 상당히 중요한 사안이라고 볼 수 있는데, 왜냐하면 개발팀이 사용하는 애플리케이션 서버와 기업의 애플리케이션 성능/민첩성 간에는 직접적인 연관성이 있기 때문입니다. 좀 더 구체적으로 설명하자면, 애플리케이션 서버에서 사용되는 웹 컨테이너 기술은 애플리케이션의 품질과 개발자의 생산성을 결정짓는 중요한 요소입니다. 결국 웹 컨테이너 기술을 올바로 도입한다면 개발팀의 업무 효율이 향상되고 고성능 애플리케이션을 신속하게 개발할 수 있는 효과가 있겠지만, 선택을 잘못 할 경우에는 이 자체가 애물단지로 전락할 공산이 커집니다. 따라서 여러분의 비즈니스에서 애플리케이션이 중추적 역할을 담당하고 있다면 애플리케이션 서버, 웹 컨테이너 기술은 물론, 이들이 개발팀에 어떠한 영향을 미치는지 세심하게 조사해봐야 합니다. 이에 본 기사에서는 현재 널리 애용되고 있는 오픈 소스 옵션인 GlassFish와 Tomcat를 비교해 보는 시간을 마련했습니다. 많은 차이점을 보이는 두 가지 인기 옵션GlassFish 커뮤니티가 제공하는 오픈 소스 애플리케이션 서버 GlassFish는 2005년 썬을 통해 선보인 이래로 개발자들 사이에서 큰 인기를 끌고 있습니다. GlassFish는 현재 두 가지 버전의 보급판(GlassFish v2와 새로 발표된 Glassfish v3 Prelude)이 시중에 나와 있으며, 그 중 GlassFish v2는 현재까지 다운로드 횟수가 약 9백만 카피에 달하며 2009년 한 해에만 이미 30만 개의 제품이 등록되었습니다. 여기에 신기능을 추가하고 기존 기능을 더욱 강화한 Glassfish v3 Prelude는 Java나 동적 언어(jRuby 등) 기반의 리치 인터넷 애플리케이션 개발에 더할 나위 없는 최고의 플랫폼으로 평가 받고 있습니다. GlassFish는 웹 컨테이너의 일종인 Java EE 컨테이너에 속해 있는 반면, Tomcat은 그 자체로 웹 컨테이너를 구성하고 있습니다. 그리고 이러한 두드러진 차이점은 GlassFish에 여러 이점을 가져다 줍니다.
Tomcat 애플리케이션 서버는 Apache 소프트웨어 재단에 의해 개발되었으며, Sun과 JServ 개발자들도 이 프로젝트에 참여한 바 있습니다(초기 코드 드롭을 썬에서 제공). 오픈 소스 러이선스가 적용된 Tomcat은 초기 서버측 Java 도입 단계에서 핵심적인 역할을 담당했으며, 대기업들 간에 오픈 소스 소프트웨어의 붐을 일으키는 데 기여하기도 했습니다. 일반적으로, Tomcat 상에서 구동되는 애플리케이션은 GlassFish에서도 그대로 사용이 가능하나, 두 제품 간에는 애플리케이션의 성능, 확장성, 사용성 및 개발자 생산성에 영향을 미칠 수 있는 중요한 차이점이 있습니다. 이러한 차이점을 이해하기 위해서는 먼저 웹 컨테이너 기술에 대해 살펴보는 것이 중요합니다. 애플리케이션 서버에 속하는 웹 컨테이너는 서블릿, JSP(JavaServer Pages), 기타 웹 티어 컴포넌트의 관리를 담당합니다. GlassFish는 웹 컨테이너의 일종인 Java EE 컨테이너에 속해 있는 반면, Tomcat은 그 자체로 웹 컨테이너를 구성하고 있습니다. 그리고 이러한 두드러진 차이점은 GlassFish에 여러 이점을 가져다 줍니다.
본격 비교: 웹 컨테이너와 관련한 또 다른 차이점앞서 언급한 일반적인 이점 외에도 GlassFish이 Tomcat에 비해 두드러지는 점은 바로 웹 컨테이너 기능입니다. 몇 가지 예를 들면 다음과 같습니다.
그 밖에도 썬은 광범위한 확장성 테스트를 통해 Tomcat의 NIO 커넥터와 Glassfish를 비교해 보았습니다. 이 테스트에는 컨테이너에서의 시간 소모를 최소화하기 위해 단순한 서블릿이 이용되었고, 사용자 증가와 관련하여 각종 컨테이너가 지원할 수 있는 능력(작업/초)이 측정되었습니다. 가령 16,000명의 사용자를 기준으로 했을 때, 벤치마크 결과는 다음과 같습니다.
올바른 제품 선택을 위해서는애플리케이션 서버는 개발팀은 물론이고 기업 운영의 많은 부분에까지 영향을 미치는 중요한 요소입니다. 따라서 애플리케이션 서버 선택은 그 중요도 면에서 고도의 전략적 비즈니스 의사결정을 내리는 것과 맞먹는다고 할 수 있습니다. 이에 우리 썬은 GlassFish가 차세대 애플리케이션을 개발하는 개발자들에게 있어 최상의 옵션이 될 것이라고 자신 있게 주장하는 바이지만, 동시에 다른 대안에 대해서도 신중하게 검토해볼 것을 권하고 싶습니다. GlassFish와 Tomcat에 대한 추가 정보 및 비교 자료를 원하시면 썬 백서를 참조하십시오. |
'개발관련 > 자바' 카테고리의 다른 글
[펌]템플릿 형태 JSP (0) | 2010.01.06 |
---|---|
[펌][JAVA] static키워드 바로알기 (0) | 2009.12.18 |
Java 5.x 이상에서 유용한 기능(generic) (0) | 2009.02.27 |
eclipse DB plugin - DBViewer (1) | 2009.02.27 |
[펌]Statement vs. PreparedStatement (0) | 2009.02.27 |