Team G.HARD :: cult of hard-corder

'tomcat'에 해당되는 글 1건

  1. 2007.02.02 자바 웹 어플리케이션은 어떤 구조를 가질까? - WAS편 - (2)
오랜동안 강의를 쉬었습니다. 바로 웹 프로그래밍에 들어가려고 했으나, 순서를 생각해보니 WAS를 설명해야되더군요. 솔직히 WAS를 설명하려고 하니 막막해서 일부러 강의를 피하고 있었습니다. 저가 아는 조그마한 지식으로 한번 풀어보겠습니다. (이미 다들 알고 계시리라 생각되지만.)
이번 강의는 네트워크(특히 http protocol)의 이해가 기반이 되어야 합니다.

WAS란?
Web Application Server의 줄임말입니다. Web Server의 대표적인 예인 apache(httpd)는 정적인 페이지(*html, *htm)를 보여준다면, WAS는 동적인 페이지를 보여준다고 생각하면 됩니다.

php로 프로그래밍하고 웹브라우저로 보여주기 위해서는 apache(Web Server)와 php 인터프리터, 그리고 Web Server와 php를 연결해주는 apache 모듈이 필요합니다.
간단히 보면, http://ghard.tistory.com/example1.php로 Web Server가 요청을 받으면 example1.php를 Client(Web Browser)에게 바로 보여주는 게 아니라, php로 example1.php를 실행한 다음 그 결과를 Client에게 보여주는 겁니다. 소위 웹 프로그래밍이란 위의 example1.php를 프로그래밍하는 것이겠지요.

블로그가 이렇게 프로그래밍된 거라면 이해하기 쉽겠네요. DB에서 데이터를 꺼내와서 화면에 뿌려주는 거라 생각하면 됩니다. 동적인 페이지라는 건 DB의 데이터는 가변적으로 변하기 때문에 데이터가 추가, 수정될 때마다 웹 페이지가 변경되는 겁니다.

그렇지만 php 자체가 Web Application Server는 아닙니다. (php 프로그래밍을 거의 안해봐서 잘은 모르지만... 혹시 틀렸다면 지적해주시기 바랍니다.) 독자적으로 Client에게서 Request를 받을 수 있는 Server가 아니지요. 단지 인터프리터로서 그 중간에서 apache 모듈이 php를 실행하는 겁니다.

그럼 WAS는 무엇인가? 독립적으로 Client에게서 Request를 받아, 지정된 비지니스 로직을 실행한 후 그 결과를 Client에게 보여주는 Server입니다.  대표적인 예로는 Tomcat(Java WAS), mongrel(Ruby On Rails WAS) 등이 있겠군요. 보통 URL 끝에 보면 jsp, do, asp 등으로 끝나면 WAS에서 해석해서 동적으로 결과를 보여준다고 생각하면 됩니다.

자, 우리의 목표는 자바 웹 어플리케이션이므로 당연히 Java WAS에 대해 알아봐야겠지요. Java의 정책이 그렇듯이, 항상 Interface를 sun에서 제정하고, 그 외 Vendor들이 그 Interface에 맞춰 구현해놓습니다. JDBC가 그 대표적인 예겠지요. Java WAS 역시 그렇습니다.
javax.serlvet package의 interface에 맞게 구현해놓은 몇몇 Java WAS가 있습니다. tomcat, resin, Weblogic 등이 각각의 vendor들이 제공하는 WAS입니다.

저는 그중에서 Open Source로 유명한 tomcat 5.5.x로 프로그래밍할 예정입니다. (소스가 공개되어 있으므로, 관심있으신 분들은 홈페이지에서 소스 다운 받아 분석해보시길. 자바에 대해서도 많은 공부가 됩니다^^)

WAS. 조금 이해가 되셨나요?
Posted by xHuro
teQnical/Java dev. l 2007. 2. 2. 22:56

댓글을 달아 주세요

  1. Favicon of http://hadesragon.tistory.com BlogIcon hadesragon  댓글주소  수정/삭제  댓글쓰기

    전혀 이해가 안가는뎁쇼.ㄲㄲㄲ
    CGI랑 비슷한건가 ㅋㅋ

    2007.02.06 00:54
    • Favicon of https://ghard.tistory.com BlogIcon xHuro  댓글주소  수정/삭제

      음... 일단 CGI랑 비슷하다고 생각하는 것도 좋을 듯.
      담번부터 예제를 해볼터이니...

      지금은 이런게 있구나 하고 지나가면 됨

      2007.02.06 13:00 신고

1 

카테고리

분류 전체보기 (32)
G.HARD bunker (4)
daily routine (18)
rumor says... (0)
teQnical (7)
projeKt (2)

달력

«   2021/12   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
tistory!get rss Tistory Tistory 가입하기!