Table of Contents

원본 URL#

http://java.dzone.com/articles/mark-thomas-apache-tomcat-7

번역내용#

  • DZone: Tomcat 7 은 아직 완료되지 않은 Servlet 3.0스펙을 사용하고자 한다. Tomcat은 Java Servlet 3.0 스펙의 어떤 장점을 가지는가.?
  • Mark Thomas: Servlet 3 은 Tomcat 사용자에게 많은 이점을 제공한다. 특별한 순서를 정하지 않고 보면
    1. 비동기(확장성, 비동기 요청/응답) 형태의 프로그래밍 방식의 이점은 이미지 Tomcat 6.0사용자가 사용하고 있다. Servlet 3의 비동기 지원은 컨테이너간의 이식성을 제공하도록 표준 인터페이스를 제공한다.
    2. 향상된 세션 제어 기능을 제공한다. 특히 사용자 세션을 추적하기 위한 SSL 세션 ID를 사용하는 기능은 추가적인 보안을 제공한다.
    3. Servlet 3 API 전역에 사용된 제네릭은 좀더 깔끔한 코드를 작성하는 만큼 실행시점보다 컴파일 시점에 에러를 좀더 잘 잡아준다.
    4. 파일 업로드는 추가 라이브러리가 필요한 웹 애플리케이션의 파일 업로드 기능을 사용하도록 해줄것이다.

  • DZone: Servlet 3.0의 일부로 Tomcat 7에 적용될 계획인 동적 설정에 대해 알려달라.
  • Mark: Tomcat 7에서 계획된 동적 설정에 대한 많은 게획들이 있다. 라이브러리에 내장된 web.xml 조각을 통해 웹 애플리케이션 설정을 완성하도록 한다. 예를 들어, Apache Struts를 사용하는 개발자는 자신의 웹 애플리케이션의 web.xml 파일에 더 이상 Struts설정을 추가할 필요가 없다. Struts JAR파일내 내장된 web.xml파일 설정을 Tomcat 이 필요하다면 자동으로 로드할 것이다. 추가로 웹애플리케이션이 요구하는 서블릿, 필터, 리스너를 정의하고 설정하는 대안으로 애노테이션이 제공된다. Servlet API는 웹 애플리케이션이 시작할때 서블릿과 필터를 추가할 수 있도록 확장되었다. Tomcat 7은 웹 애플리케이션 개발자에게 좀더 유연성을 제공하기 위해 애플리케이션이 작동하는 동안 이 API에 접근할 수 있도록 옵션을 제공할 것이다.

  • DZone: Tomcat 7 에 계획된 보안관련 개선 사항은 무엇이 있나.?
  • Mark: 앞서 언급된 SSL 세션 추적기능에 추가로, Tomcat은 관리자 및 호스트 관리자 애플리케이션의 보안 수준만큼 향상되도록 session fixation 공격에 대응할 것이다. 실제 다음과 같은 개선점을 포함한다.
    1. 스크립트에 기반한 접속, 웹에 기반한 접속에 대한 서로 다른 권한을 가진다. JXM 프록시와 상새 페이지는 좀더 나은 접근 제어 기능을 제공한다.
    2. 멱등하지 않은(non-idempotent) 요청을 위해 POST를 사용함, (non-idempotent에 대해서는 http://uniksy1106.tistory.com/160 참고)
    3. Requiring a nonce to be provided with all non-idempotent requests to prevent CSRF attacks. The nonce is randomly generated and changes with each request.

  • DZone: Tomcat이 내장된 애플리케이션을 좀더 쉽게 만들기 위해 어떻게 변경되나.?
  • Mark: Tomcat 은 언제나 내장 가능했지만 내장시키기 위한 코드가 다소 길고 복잡했다. Tomcat 7은 최소한의 JAR파일을 사용하는 배포형태로 Tomcat을 내장시키기 위한 매우 간단한 기법을 제공하는 새로운 API를 포함한다. Tomcat 7에서 8줄 정도면 설정 후 애플리케이션에 내장할 수 있다. 그 API는 추가적인 웹 애플리케이션이나 서블릿을 추가하는 간단한 기법도 제공한다. 고급설정이 필요한 경우, 예전처럼 전체 Tomcat API 도 계속 사용가능하다.

  • DZone: Tomcat 7에서 나에게 추가적으로 언급할 만한 새로운 기능이 있는가?
  • Mark: 다른 몇가지 새로운 기능을 포함한다.
    1. 별칭(Alias) 지원. 파일 시스템의 외부 컨텐츠나 웹 애플리케이션내 WAR파일을 사용하기 위한 기법을 제공한다. 일반적인 사용법은 공유 이미지나 자바스크립트 디렉터리를 여러개의 웹 애플리케이션에서 공유하여 사용하도록 하는 것이다.
    2. 로깅 개선. 개별 쓰레드에 대해 디스크에 로그를 쓰는 비동기 파일 핸들러를 포함한다. 그래서 요청을 처리하는 쓰레드는 디스크에 로그 파일을 작성할때 딜레이에 의한 영향을 받지 않는다. 그리고 관리자가 작업하기 쉽도록 파일파일을 두줄보다는 한줄로 작성하는 로그 포맷터를 제공한다.
    3. 몇가지 스펙에 따른 옵션들. 쿠키 처리처럼 스펙을 엄격히 준수하면 웹 애플리케이션에 몇가지 문제를 야기할 수 있다. Tomcat 7 시스템 관리자로 하여금 서블릿, 쿠키, HTTP 처리를 엄격하게 처리하도록 하는 추가적인 옵션을 포함할 것이다. 기본적으로 대부분의 애플리케이션은 잘 작동하는 보안이 적용된 환경을 제공할 것이지만 관리자는 애플리케이션이 정해진 데로 작동하도록 명시된 기능이 작동하도록 좀더 엄격하게 또는 덜 엄격하게 제어할 수 있다.
    4. 메모리 릭 오류에 대한 추가적인 개선. Tomcat은 웹 애플리케이션이 리로드될 때 발생하는 메모리 릭이 오랜기간동안 지속되어 왔다. 과거에는 Tomcat 버그로 인해 일부 발생하는 동안, 실제 관련 버그는 오랜 기간동안 조금씩 수정되어 왔다. 오늘날 리로드에 의한 메모리 릭은 웹 애플리케이션, 웹 애플리케이션이 사용하는 라이브러리 또는 JVM의 버그로 인해 발생한다. Tomcat 메모리 릭에 대해서는 http://java.dzone.com/articles/memory-leak-protection-tomcat 를 참고한다.

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-7) was last changed on 04-Feb-2010 10:28 by DongGukLee