Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
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
Archives
Today
Total
관리 메뉴

JAN's History

톰켓이란? 본문

Web

톰켓이란?

JANNNNNN 2024. 4. 24. 15:10

웹서버는 흔히 아파치를 사용하는데요.

아파치와 톰켓에 대해서 한번 알아보도록 하겠습니다.

 

HTTP 서버

HTTP 서버는 URL(웹주소) 및 HTTP(프로토콜 주소)를 이해하는 소프트웨어입니다.

그리고 아파치 서버는 HTTP 요청을 처리하는 웹서버를 뜻합니다.

이는 정적타입 HTML, CSS, 이미지에 데이터만을 처리할 뿐, 데이터를 처리할 순 없기 때문에 톰캣이란 것이 등장합니다.

WAS (Web Application Server) 서버

WAS는 동적인 자료를 처리하는 서버입니다. 기존의 WEB서버는 정적인 데이터만 처리가 가능했기 때문에 요청이 지속적으로 들어오게 되면 HTML, 이미지를 계속 응답해줘야하는 낭비가 있었습니다. 이러한 단점을 커버하기 위해 나온것이 WAS입니다.

 

WAS는 Web Server + Servlet Container로 구성되어 있습니다. 요청에서 정적인 데이터만 필요하다면 웹서버에 요청해서 응답을 클라이언트에게 보내줍니다.

그러나 동적인 데이터가 필요하다면 서블릿 컨테이너에게 넘겨줘 실시간으로 필요한 파일을 생성합니다. 이는 필요한 정보를 그때그때 생성하기 때문에 리소스의 부하를 줄일 수 있다는 장점이 있습니다.

 

WAS의 예시로 Tomcat이 있고 Tomcat을 알아보기 전에 아파치 서버에 대해서도 알아봅시다!

아파치서버

요청한 파일을 응답해주는 정적인 서버입니다. 그렇기 때문에 JSP같은 자바 오브젝트를 읽을 수 없습니다.

단순히 아파치는 .html파일을 응답하고 웹브라우저에게 전달해주는 역할을 합니다.

톰켓

그래서 동적인 웹을 만들기 위한 톰켓이 등장했습니다. 톰켓은 JSP를 자바로 컴파일하고 컴파일이 된 데이터를 .html에 덮어 씌워서 아파치 서버에게 전달하는 일을 합니다. 즉, JSP와 Servlet을 구동하기 위한 서블릿 컨테이너 역할을 수행해 html로 돌려주는 역할을 수행합니다.

웹서버와 WAS의 구조

 

  • 사용자 (Client)가 HTTP Request를 던졌을 때 필요한 데이터가 정적데이터 라면 Web 서버(Apache) 에서는 바로 HTTP Response를 통해 정적 HTML을 반환하고 동적 데이터라면 이를 Web Container(Servlet Container) 로 보내 동적 데이터 처리를 한 뒤 Web 서버를 통해 사용자에게 반환한다.
  • 기본적으로 아파치와 톰캣의 기능은 나뉘어져 있지만, 톰캣 안의 컨테이너를 통해 일부 아파치 기능을 발휘하기 때문에 아파치톰캣 이라고 합쳐서 부른다.
  • 아파치만 쓰면 정적 웹페이지만 처리가 가능하다
  • 톰캣만 쓰면 정적 웹페이지 + 동적 웹페이지 처리가 모두 가능하지만, 아파치에서 필요한 기능을 가져올 수 없고, 과부하가 걸릴 가능성이 높다.
  • 따라서 아파치와 톰캣을 같이 사용하여 아파치는 정적 데이터 처리, 톰캣은 JSP, ASP, PHP 등 동적 데이터 처리를 분담한다.
  • 그리고 이러한 서블릿 컨테이너는 MVC 패턴에서 Controller에 주로 사용된다.