Servlet

λ“±μž₯λ°°κ²½

Java λ₯Ό μ‚¬μš©ν•˜μ—¬ μ›Ή νŽ˜μ΄μ§€λ₯Ό λ™μ μœΌλ‘œ μƒμ„±ν•˜λŠ” μ„œλ²„μ˜ ν”„λ‘œκ·Έλž¨ (ν˜Ήμ€ κ·Έ 사양) 이며 μ„œλΈ”λ¦Ώ 이라고 λΆˆλ¦°λ‹€.

μžλ°” μ„œλΈ”λ¦Ώμ€ Java EE μ‚¬μ–‘μ˜ μΌλΆ€λΆ„μœΌλ‘œ 주둜 이 κΈ°λŠ₯듀을 μ΄μš©ν•˜μ—¬ μ›Ή μ‹œμŠ€ν…œμ΄ κ΅¬ν˜„λ˜κ³  μžˆλ‹€.

κ³Όκ±°μ—λŠ” C C++ 을 μ΄μš©ν•΄μ„œ 미듀웨어 μ œν’ˆμ„ λ§Œλ“€μ–΄μ„œ 판맀λ₯Ό ν•˜μ˜€λŠ”λ° ν•˜λ“œμ›¨μ–΄ ν˜Ήμ€ 운영체제 쒅속성 λ•Œλ¬Έμ— 어렀움이 λ§Žμ•˜λ‹€.
Java ν”Œλž«νΌμ˜ μ—¬λŸ¬ μž₯점듀 (이식성, 독립성 λ“±λ“±) 을 ν™œμš©ν•˜μ—¬ 곡톡 API 둜 μ œκ³΅ν•˜λ©΄ 기쑴의 어렀움을 μΆ©λΆ„νžˆ κ°œμ„ ν•΄ λ‚˜κ°ˆμˆ˜ μžˆμ—ˆκΈ° λ•Œλ¬Έμ— μ§€κΈˆμ˜ WAS (Web Application Server) 라고 λΆˆλ¦¬μš°λŠ” Java EE μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλ²„μ˜ μ‹œμž‘μ΄ λ˜μ—ˆλ‹€.

κ·Έλ ‡κ²Œ Java EE λŠ” λ§Žμ€ 관심을 λ°›μ•„, 기업듀은 WebLogic μ΄λ‚˜ WebSphere, Apache Tomcat λ“±κ³Ό 같은 WAS μ œν’ˆμ„ μ•žλ‹€νˆ¬μ–΄ μΆœμ‹œν•˜κ²Œ λ˜μ—ˆκ³  이후 λ“±μž₯ν•˜λŠ” JSP 도 λ§Žμ€ μ‚¬λž‘μ„ λ°›λŠ”λ‹€.

μ—­ν™œ

일반적인 μ›Ή μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ ν™˜κ²½μ˜ ν”„λ‘œκ·Έλž˜λ°μ—μ„œ λ„€νŠΈμ›Œν¬ 톡신을 미듀웨어 μ€‘μ—μ„œ λŒ€ν‘œμ μœΌλ‘œ Web Server 와 WAS (Web Application Server) μ‚¬μš©ν•˜μ—¬ ꡬ성을 ν•œλ‹€.

Web μ„œλ²„λŠ” 보톡 ν•˜λ“œμ›¨μ–΄ (물리적 μ„œλ²„) 와 μ†Œν”„νŠΈμ›¨μ–΄λ‘œ κ΅¬λΆ„λ˜λ©° 보톡 이 λ‘˜μ„ ν†΅μΉ­ν•˜μ—¬ Web μ„œλ²„ 라고 μ§€μΉ­ν•œλ‹€.
WAS μ„œλ²„λŠ” λŒ€λΆ€λΆ„μ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μˆ˜ν–‰ν•΄μ£ΌλŠ” 미듀웨어 (μ†Œν”„νŠΈμ›¨μ–΄ 엔진) 으둜써 동적인 컨텐츠 μˆ˜ν–‰ ν•˜λŠ” μ—­ν™œμ„ λ‹΄λ‹Ήν•œλ‹€.

JSP (Java Server Page)

기쑴의 HTMLμ—μ„œ JAVA μ½”λ“œμ˜ μ‚¬μš©μ΄ κ°€λŠ₯ν•œ JSP 와 같은 기술이 λ“±μž₯ ν•˜μ˜€κ³  μ΄λŠ” JAVA κΈ°μˆ μ„ λŒ€μ€‘ν™” μ‹œν‚€λŠ”λ°λ„ ν•œλͺ« ν•˜μ˜€λ‹€.

javax.servlet.http.HttpServlet 클래슀λ₯Ό 상속받은 Java μ†ŒμŠ€μ½”λ“œλ‘œ λ³€ν™˜ν•œ λ‹€μŒ 컴파일 λ˜μ–΄ μ‹€ν–‰ν•˜λ‹€.

ν•˜λ‚˜μ˜ JSP νŽ˜μ΄μ§€κ°€ Java 클래슀이기 λ•Œλ¬Έμ— λͺ¨λ“  Java Library 의 μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ‹€.

"JSP 의 Web Application Server 흐름도"

Servlet 의 μž₯단점

μž₯점

  • Thread 기반으둜 ν•˜κΈ° λ•Œλ¬Έμ— μ›Ή μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ μš΄μ˜μ— νš¨μœ¨μ μ΄λ‹€.
    • λ³‘λ ¬μ²˜λ¦¬
  • Java λ₯Ό 기반으둜 λŒ€λΆ€λΆ„μ˜ 이점을 κ°€μ Έμ˜¨λ‹€.
    • Java κΈ°λΆ„μ˜ ν’λΆ€ν•œ API μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ‹€.
    • 이기쒅 OS μž₯λΉ„μ˜ 이식성이 μš°μˆ˜ν•˜λ‹€.
  • 컨텐츠와 λΉ„μ§€λ‹ˆμŠ€ 둜직의 뢄리가 κ°€λŠ₯ν•˜λ‹€.

단점

  • μ„œλΈ”λ¦Ώμ€ μ™„μ „ν•œ μžλ°” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 이기 λ•Œλ¬Έμ— 좜λ ₯ κ°€λŠ₯ν•œ HTML λ¬Έμ„œλ₯Ό ν”„λ‘œκ·Έλž¨μ μœΌλ‘œ μ„œλΈ”λ¦Ώ μ½”λ“œ μ•ˆμ— μž‘μ„± ν•΄μ•Ό ν•œλ‹€.
  • 컨텐츠와 λΉ„μ§€λ‹ˆμŠ€ 둜직의 뢄리가 μ–΄λ ΅λ‹€.
  • μ„œλΉ„μŠ€ 이전에 컴파일 과정이 ν•„μš” 둜 ν•œλ‹€.

μœ„ 같은 이유 λ•Œλ¬Έμ— JSP 와 Servlet 을 μ„žμ–΄ μ‚¬μš©ν•˜μ—¬ μž₯단점을 보완할 수 μžˆλ‹€.

Servlet Container