๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Spring/Boost Course Web

2.2 ์›น ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ค์ •

1) Tomcat ๋‹ค์šด๋ฐ›๊ธฐ ๋ฐ ์„ค์น˜ํ•˜๊ธฐ

Apache Tomcat์ด๋ž€?

์•„ํŒŒ์น˜ ํ†ฐ์บฃ(Apache Tomcat)์€ ์•„ํŒŒ์น˜ ์†Œํ”„ํŠธ์›จ์–ด ์žฌ๋‹จ(Apache Software Foundation, ASF)์—์„œ ๊ฐœ๋ฐœํ•œ ์„ธ๊ณ„์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” WAS(Web Application Server)์ž…๋‹ˆ๋‹ค.

์ปดํ“จํ„ฐ์— ์šด์˜์ฒด์ œ๋ฅผ ์„ค์น˜ํ•ด์•ผ๋งŒ ์ปดํ“จํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, ์ž๋ฐ”๋ฅผ ์ด์šฉํ•˜์—ฌ ์ž‘์„ฑ๋œ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ WAS๊ฐ€ ์žˆ์–ด์•ผ๋งŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” WAS๊ฐ€ ์•„ํŒŒ์น˜ ํ†ฐ์บฃ์ด๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„ํŒŒ์น˜ ํ†ฐ์บฃ์€ ์˜คํ”ˆ์†Œ์Šค ์†Œํ”„ํŠธ ์›จ์–ด๋กœ์จ ๋ˆ„๊ตฌ๋‚˜ ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ Tomcat์€ '์ˆ˜๊ณ ์–‘์ด'๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค. ํ†ฐ๊ณผ ์ œ๋ฆฌ์˜ ํ†ฐ์ด ์ƒ๊ฐ๋‚˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

 

Tomcat 8๋ฒ„์ „์€ JDK 7์ด์ƒ์—์„œ ๋™์ž‘ํ•˜๋ฉฐ Servlet Spec 3.1์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

Tomcat 9๋ฒ„์ „์€ JDK 8์ด์ƒ์—์„œ ๋™์ž‘ํ•˜๋ฉฐ Servlet Spec 4.0์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

 

๋‚˜๋Š” 64-bit Windows zip ์„ ์„ค์น˜.

 

Apach Tomcat ์‹คํ–‰

์•„ํŒŒ์น˜ ํ†ฐ์บฃ ์„ค์น˜ ํด๋” ์•„๋ž˜์— ์žˆ๋Š” binํด๋”๋ฅผ ๋ณด๋ฉด ํ™•์žฅ์ž๊ฐ€ bat์ธ ์œˆ๋„์šฐ์šฉ ๋ฐฐ์น˜ํŒŒ์ผ๊ณผ ํ™•์žฅ์ž๊ฐ€ sh์ธ ์‰˜์Šคํฌ๋ฆฝํŠธ(shell script)ํŒŒ์ผ์ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

์‰˜์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์€ linux๋‚˜ ๋งฅ ์šด์˜์ฒด์ œ์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

์œˆ๋„์šฐ ์‚ฌ์šฉ์ž๋ผ๋ฉด startup.batํŒŒ์ผ์„ ๋”๋ธ” ํด๋ฆญํ•˜์—ฌ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‹คํ–‰ํ•œ ํ›„ ์ฃผ์†Œ์ฐฝ์— http://localhost:8080 ๋‚˜ http://127.0.0.1:8080 ์œผ๋กœ ์ž…๋ ฅํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

localhost๋Š” ํ˜„์žฌ ์‚ฌ์šฉ์ค‘์ธ ์ปดํ“จํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋„๋ฉ”์ธ(domain)์ฃผ์†Œ์ด๊ณ  127.0.0.1์€ ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ ์ปดํ“จํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ip์ฃผ์†Œ์ž…๋‹ˆ๋‹ค.

์›น ๋ธŒ๋ผ์šฐ์ €๋กœ ํ˜„์žฌ ์ปดํ“จํ„ฐ์—์„œ 8080ํฌํŠธ๋กœ ๋™์ž‘ํ•˜๋Š” ์„œ๋ฒ„์— ์ ‘์†ํ•˜๋ผ๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.

Tomcat์ด ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ์›น ์‚ฌ์ดํŠธ๊ฐ€ ๋ณด์—ฌ์ง€๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

์•„ํŒŒ์น˜ ํ†ฐ์ผ“ ์„ค์น˜ ํด๋” ์•„๋ž˜์˜ binํด๋”์— ์žˆ๋Š” shutdown.batํŒŒ์ผ์ด๋‚˜ shutdown.shํŒŒ์ผ์„ ๋”๋ธ”ํด๋ฆญํ•˜์—ฌ ์‹คํ–‰ํ•˜๋ฉด ์•„ํŒŒ์น˜ ํ†ฐ์บฃ์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

ํ˜น์€, ์‹คํ–‰ ์ค‘์ธ ์ฐฝ์„ ๋‹ซ์•„๋„ ์•„ํŒŒ์น˜ ํ†ฐ์บฃ์€ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

์•„ํŒŒ์น˜ ํ†ฐ์ผ“์ด ์ข…๋ฃŒ ๋œ ํ›„ http://localhost:8080์œผ๋กœ ๋‹ค์‹œ ์ ‘์†ํ•ด๋ณด๋ฉด, ์•„๋ž˜์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์˜ค๋ฅ˜ ํ™”๋ฉด์ด ๋ณด์—ฌ์ง€๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



2) HelloWorld ์„œ๋ธ”๋ฆฟ ์ปดํŒŒ์ผ ๋ฐ ์‹คํ–‰ํ•˜๊ธฐ

์„œ๋ธ”๋ฆฟ์€ URL ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ

 

dynamic web project ์ƒ์„ฑ (Target runtime _ ํ†ฐ์บฃ8.5 ์ง€์ •)

ํ”„๋กœ์ ํŠธ ์šฐํด๋ฆญ, src ํด๋” ๋ฐ‘์— ํŒจํ‚ค์ง€๋ช…, ํด๋ž˜์Šค๋ช… ์ž…๋ ฅ. url mapping ๊ฐ€๋Šฅ, doGet ๋“ฑ ์„ ํƒ ๊ฐ€๋Šฅ

 

URL ์ฃผ์†Œ

http://localhost:8080/{ํ”„๋กœ์ ํŠธ์ด๋ฆ„}/{URL Mapping๊ฐ’}

http://localhost:8080/firstweb/HelloServlet

 

package examples;



import java.io.IOException;

import java.io.PrintWriter;



import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;





@WebServlet("/HelloServlet")

public class HelloServlet extends HttpServlet {

  private static final long serialVersionUID = 1L;

     



   public HelloServlet() {

       super();

   }

  

  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    response.setContentType("text/html;charset=UTF-8");

    PrintWriter out = response.getWriter();

    out.println("<h1>Hello World</h1>");

  }

}

(ํด๋ผ์ด์–ธํŠธ์—์„œ GET Method๋กœ ์„œ๋ธ”๋ฆฟ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” URL ์ด์šฉํ•ด ์š”์ฒญ -> WAS๊ฐ€ ์„œ๋ธ”๋ฆฟ ํŒŒ์ผ ๋‚ด doGet() ์‹คํ–‰ -> response ๊ฐ์ฒด์— Hello World ํ…์ŠคํŠธ๋ฅผ ๋„ฃ์Œ -> ํด๋ผ์ด์–ธํŠธ๋Š” ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„ ์ถœ๋ ฅ)

 

'Spring > Boost Course Web' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

2.5 Scope  (0) 2020.11.19
2.4 JSP  (0) 2020.11.19
2.3 Servlet  (0) 2020.11.19
2.1 Web๊ฐœ๋ฐœ์˜ ์ดํ•ด  (0) 2020.11.19
1.5 JDBC  (0) 2020.11.19
1.4 Maven  (0) 2020.11.19