Commits

Yong Choi committed 17d75bb

translating Servlets section in ch 13

Comments (0)

Files changed (1)

SimpleWebApps.rst

-Chapter 13: Simple Web Applications
-+++++++++++++++++++++++++++++++++++
+13장. 간단한 웹 애플리케이션
+++++++++++++++++++++++++++++
 
-One of the major benefits of using Jython is the ability to make
-use of Java platform capabilities programming in the Python
-programming language instead of Java. In the Java world today, the
-most widely used web development technique is the Java servlet. Now
-in JavaEE, there are techniques and frameworks used so that we can
-essentially code HTML or other markup languages as opposed to
-writing pure Java servlets. However, sometimes writing a pure Java
-servlet still has its advantages. We can use Jython to write
-servlets and this adds many more advantages above and beyond what
-Java has to offer because now we can make use of Python language
-features as well. Similarly, we can code web start applications
-using Jython instead of pure Java to make our lives easier. Coding
-these applications in pure Java has proven sometimes to be a
-difficult and sometimes grueling task. We can use some of the
-techniques available in Jython to make our lives easier. We can
-even code WSGI applications with Jython making use of the *modjy*
-integration in the Jython project.
+자이썬을 사용하는 주요한 이점은 자바 플랫폼의 능력을 자바가 아닌 파이썬 프로그래밍 언어로 프로그래밍할 수 있다는 점이다. 오늘날 자바 세계에서, 가장 널리 사용되는 웹 개발 기법은 자바 서블릿이다. JavaEE에서는, HTML이나 기타 마크업 언어를 작성하기 위하여 순수 자바 서블릿을 작성하기보다는 여러 기법과 프레임워크를 사용한다. 그러나, 때로는 순수 자바 서블릿을 작성하는 것이 여전히 강점을 갖기도 한다. 서블릿을 작성하기 위하여 자이썬을 사용할 수 있으며, 이는 파이썬 언어의 기능을 사용할 수 있기 때문에, 자바가 줄 수 있는 것에 비하여 더욱 많은 이점을 가져다준다. 마찬가지로, 순수 자바 대신에 웹 시작 애플리케이션을 자이썬을 사용하여 작성함으로써 삶을 보다 편안하게 할 수 있다. 이러한 애플리케이션을 순수 자바로 작성하는 것은 때로는 어렵고 grueling한 작업이다. 자이썬에서 사용가능한 몇 가지 기법을 활용하여 삶을 보다 편안하게 할 수 있다. 심지어는 자이썬 프로젝트에서 *modjy* 통합을 사용함으로써 WSGI 애플리케이션을 자이썬으로 작성할 수도 있다.
 
-In this chapter, we will cover three techniques for coding simple
-web applications using Jython: servlets, web start, and WSGI. We’ll
-get into details on using each of these different techniques here,
-but we will discuss deployment of such solutions in Chapter 17.
+이 장에서는 자이썬을 사용하여 간단한 웹 애플리케이션을 작성하는 세 가지 기법, 즉 서블릿, 웹 스타트, WSGI를 살펴볼 것이다. 이러한 기법들을 사용하는 방법을 깊이 살펴볼 것이지만, 각 솔루션의 배포에 대해서는 17장에서 다룰 것이다.
 
-Servlets
-========
+서블릿
+======
 
-Servlets are a Java platform technology for building web-based
-applications. They are a platform- and server-independent
-technology for serving content to the web. If you are unfamiliar
-with Java servlets, it would be worthwhile to learn more about
-them. An excellent resource is wikipedia
-(http://en.wikipedia.org/wiki/Java_Servlet); however, there are a
-number of other great places to find out more about Java servlets.
-Writing servlets in Jython is a very productive and easy way to
-make use of Jython within a web application. Java servlets are
-rarely written using straight Java anymore. Most Java developers
-make use of Java Server Pages (JSP), Java Server Faces (JSF), or
-some other framework so that they can use a markup language to work
-with web content as opposed to only working with Java code.
-However, in some cases it is still quite useful to use a pure Java
-servlet. For these cases we can make our lives easier by using
-Jython instead. There are also great use-cases for JSP; similarly,
-we can use Jython for implementing the logic in our JSP code. The
-latter technique allows us to apply a model-view-controller (MVC)
-paradigm to our programming model, where we separate our front-end
-markup from any implementation logic. Either technique is rather
-easy to implement, and you can even add this functionality to any
-existing Java web application without any trouble.
+서블릿은 자바 환경에서 웹 기반 애플리케이션을 구축하는 데에 쓰이는 기술이다. 컨텐츠를 웹에 올리기 위한 기술로서 플랫폼과 서버에 대하여 독립적인 것이 있다. 자바 서블릿에 대하여 잘 알지 못하고 있다면, 그것을 배우는데에 시간을 들일 가치가 있을 것이다. 위키피디아(http://en.wikipedia.org/wiki/Java_Servlet)를 포함하여 자바 서블릿에 대한 훌륭한 자료들이 있다.
+자이썬으로 서블릿을 작성하는 것은 웹 애플리케이션 내에서 자이썬을 사용하는 생산적이고도 쉬운 방법이다. 자바 서블릿은 더 이상 자바로 직접 작성되지는 않는 추세이다. 많은 자바 개발자들이 자바 코드만 사용하기 보다는, 자바 서버 페이지(JSP), 자바 서버 Faces(JSF), 또는 다른 프레임워크를 통하여 마크업 언어를 사용하여 웹 컨텐츠를 다루고 있다.
+그렇지만, 순수 자바 서블릿을 사용하는 것이 꽤 유용한 경우도 있다. 그러한 경우에 자이썬을 사용한다면 우리의 삶이 보다 편해질 것이다. JSP에 대한 훌륭한 용례들이 있으며, 그와 비슷하게, JSP 코드의 로직을 구현하는 데에 자이썬을 사용할 수 있다. 후자의 기술은, 앞단의 마크업을 구현 로직으로부터 분리하는 모델-뷰-컨트롤러(MVC) 패러다임을 우리의 프로그래밍 모델에 적용할 수 있도록 해준다. 각각의 기법은 구현이 쉬우며, 이러한 기능을 기존의 자바 웹 애플리케이션에 문제 없이 적용할 수도 있다.
 
-Another feature offered to us by Jython servlet usage is dynamic
-testing. Because Jython compiles at runtime, we can make code
-changes on the fly without recompiling and redeploying our web
-application. This can make it very easy to test web applications,
-because usually the most painful part of web application
-development is the wait time between deployment to the servlet
-container and testing.
+자이썬 서블릿을 사용함으로써 얻을 수 있는 다른 기능은 동적 테스팅이다. 자이썬은 실행시간에 컴파일되므로, 우리는 코드를 새로 컴파일하여 웹 애플리케이션에 다시 배포할 필요 없이 바로 변경할 수 있다. 이는 웹 애플리케이션의 테스트를 매우 편리하게 만들어주는데, 그 이유는 서블릿 컨테이너에 배포하고 테스트하기까지 기다려야하는 시간이 웹 애플리케이션 개발에 있어서 가장 고통스러운 부분이기 때문이다.
 
-Configuring Your Web Application for Jython Servlets
-----------------------------------------------------
+웹 애플리케이션에서 자이썬 서블릿 구성
+--------------------------------------
 
-Very little needs to be done in any web application to make it
-compatible for use with Jython servlets. Jython contains a built-in
-class named *PyServlet* that facilitates the creation of Java
-servlets using Jython source files. We can make use of PyServlet
-quite easily in our application by adding the necessary XML
-configuration into the application’s web.xml descriptor such that
-the *PyServlet* class gets loaded at runtime and any file that
-contains the *.py* suffix will be passed to it. Once this
-configuration has been added to a web application, and *jython.jar*
-has been added to the CLASSPATH then the web application is ready
-to use Jython servlets. See Listing 13-1.
+웹 애플리케이션을 자이썬 서블릿과 호환되도록 하는 데에는 아주 약간의 수고가 필요하다. 자이썬은 *PyServlet* 내장 클래스를 갖고 있는데, 이것은 자이썬 소스 파일로부터 자바 서블릿을 생성해준다. PyServlet을 사용하기 위해서는 애플리케이션의 web.xml 파일에 *PyServlet* 클래스가 실행시간에 *.py* 확장자가 붙은 파일을 적재하도록 설정하는 XML을 간단히 추가하면 된다. 이러한 구성을 애플리케이션에 일단 추가하고, *jython.jar*를 CLASSPATH에 추가하면 자이썬 서블릿을 사용할 준비가 된 것이다. 예제 13-1을 보자.
 
-*Listing 13-1. Making a Web Application Compatible with Jython*
+*예제 13-1. 웹 애플리케이션에서 자이썬을 사용할 수 있도록 구성*
 ::
     
     <servlet>
         <url-pattern>*.py</url-pattern>
     </servlet-mapping>
 
-Any servlet that is going to be used by a Java servlet container
-also needs to be added to the *web.xml* file as well, since this
-allows for the correct mapping of the servlet via the URL. For the
-purposes of this book, we will code a servlet named
-*NewJythonServlet* in the next section, so the following XML
-configuration will need to be added to the web.xml file. See
-Listing 13-2.
+이와 같이 자이썬 서블릿 컨테이너에 의하여 사용될 어떠한 서블릿이든지 *web.xml* 파일에 추가하여, URL을 통하여 서블릿을 대응시킨다. 이 책의 목적을 위하여, 우리는 다음 섹션에서 *NewJythonServlet*\ 라는 이름의 서블릿을 작성할 것이며, 따라서 다음과 같은 XML 구성을 web.xml 파일에 추가해야 한다. 예제 13-2를 보라.
 
-*Listing 13-2. Coding a Jython Servlet*
+*예제 13-2. 자이썬 서블릿 코딩*
 ::
     
     <servlet>
         <url-pattern>/NewJythonServlet</url-pattern>
     </servlet-mapping>
 
-Writing a Simple Servlet
-------------------------
+간단한 서블릿 작성
+------------------
 
-In order to write a servlet, we must have the
-*javax.servlet.http.HttpServlet* abstract Java class within our
-CLASSPATH so that it can be extended by our Jython servlet to help
-facilitate the code. This abstract class, along with the other
-servlet implementation classes, is part of the *servlet-api.jar*
-file. According to the abstract class, there are two methods that
-we should override in any Java servlet, those being *doGet* and
-*doPost*. The former performs the HTTP GET operation while the
-latter performs the HTTP POST operation for a servlet. Other
-commonly overridden methods include *doPut*, *doDelete*, and
-*getServletInfo*. The first performs the HTTP PUT operation, the
-second performs the HTTP DELETE operation, and the last provides a
-description for a servlet. In the following example, and in most
-use-cases, only the *doGet* and *doPost* are used.
+서블릿을 작성하려면, *javax.servlet.http.HttpServlet* 추상 자바 클래스를 CLASSPATH 내에 둠으로써 자이썬 서블릿이 그것을 확장하여 코드의 환경을 준비할 수 있도록 할 필요가 있다. 이 추상 클래스는, 다른 서블릿 구현 클래스와 함께 *servlet-api.jar* 파일에 속해 있다. 이 추상 클래스를 상속하는 어떠한 자바 서블릿이든지 반드시 구현해야하는 두 개의 메소드가 있는데, 그것은 바로 *doGet*\ 과 *doPost*\ 이다. 전자는 서블릿을 위해 HTTP GET 동작을, 후자는 HTTP POST 동작을 수행한다. 그외에 *doPut*, *doDelete* 및 *getServletInfo* 메소드도 구현하는 것이 일반적이다. *doPut* 메소드는 HTTP PUT 동작을 수행하며, *doDelete*\ 는 HTTP DELETE를, *getServletInfo*\ 는 서블릿에 대한 설명을 제공한다. 다음의 예제돠 같이 *doGet*\ 과 *doPost*\ 만 사용하는 경우도 많다.
 
-Let’s first show the code for an extremely simple Java servlet.
-This servlet contains no functionality other than printing its name
-along with its location in the web application to the screen.
-Following that code we will take a look at the same servlet coded
-in Jython for comparison (Listing 13-3).
+자, 매우 간단한 자바 서블릿 코드를 살펴보도록 하자.
+이 서블릿은 웹 애플리케이션에서의 자신의 위치와 이름을 화면에 출력하는 기능만을 가지고 있다.
+그 코드를 뒤따르는 것은 비교를 위하여 동일한 서블릿을 자이썬으로 작성한 것이다(예제 13-3).
 
-*Listing 13-3. NewJavaServlet.java*
+*예제 13-3. NewJavaServlet.java*
 ::
     
     import java.io.IOException;
         }
     }
 
-All commenting has been removed from the code in an attempt to make
-the code a bit shorter. Now, Listing 13-4 is the equivalent servlet
-code written in Jython.
+코드를 짧게 만들기 위하여 모든 주석은 제거하였다. 그러면, 예제 13-4에서 자이썬으로 작성한 동등한 서블릿을 살펴보도록 하자.
 
-*Listing 13-4.*
+*예제 13-4.*
 ::
     
     from javax.servlet.http import HttpServlet
         def getServletInfo(self):
             return "Short Description"
 
-Not only is the concise code an attractive feature, but also the
-easy development lifecycle for working with dynamic servlets. As
-stated previously, there is no need to redeploy each time you make
-a change because of the compile at runtime that Jython offers.
-Simply change the Jython servlet, save, and reload the webpage to
-see the update. If you begin to think about the possibilities
-you’ll realize that the code above is just a basic example, you can
-do anything in a Jython servlet that you can with Java and even
-most of what can be done using the Python language as well.
+간결한 코드도 그렇거니와, 동적인 서블릿을 가지고 작업하는 개발주기 또한 매력적이다. 앞서 기술한 바와 같이, 자이썬은 실행시간에 컴파일되므로 변경이 일어날 때마다 재배포할 필요가 없다.
+자이썬 서블릿을 수정하고, 저장하고, 웹페이지를 새로고침하기만 하면 변경사항의 확인이 가능하다. 가능성에 대하여 생각하기 시작했다면, 위에서 예로 든 것은 간단한 예제일 뿐이며, 자바로 할 수 있었던 것은 무엇이든 파이썬 언어를 사용하여 자이썬 서블릿으로 해낼 수 있다는 것을 깨닫게 될 것이다.
 
-To summarize the use of Jython servlets, you simply include
-*jython.jar* and *servlet-api.jar* in your CLASSPATH. Add necessary
-XML to the web.xml, and then finally code the servlet by extending
-the javax.servlet.http.HttpServlet abstract class.
+자이썬 서블릿에 대하여 요약하자면, 우선 *jython.jar*\ 와 *servlet-api.jar*\ 을 CLASSPATH에 둔다. 그리고 필요한 XML을 web.xml에 두고, 끝으로 javax.servlet.http.HttpServlet 추상 클래스를 확장하여 서블릿을 작성하면 된다.
 
 Using JSP with Jython
 ---------------------