본문 바로가기
  • 시 쓰는 개발자
1일 1개념정리 (24년 8월~12월)/Spring

1일1개 (77) - 톰고양이

by poetDeveloper 2024. 11. 10.

1일 1개념정리 24.08.09.금 ~ 

 

큰 결정에 큰 동기가 따르지 않을 때도 있다. 하지만 큰 결심이 따라야 이뤄낼 수 있다.

무조건 무조건 1일 1개의 개념 정리하기 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!


#77. Apache Tomcat

예전에 WS와 WAS에 대해서 정리하다가 살짝 나왔던 개념이다. 톰캣은 스프링을 하는 사람이라면 반드시 아는 단어인데, 왜냐면 스프링이 시작할 때 Tomcat Started ~~ 라고 뜨기 때문이다. 오늘은 Tomcat에 대해 간단히 알아보자.

 

사실 톰캣이 어떻게 요청 처리하고, 그 안의 구조 등을 좀 더 심오한 내용을 다루고싶은데 ... 시간 관계상 겉핥기만 하고 나중에 구체적으로 정리해보고자 한다.

 

Tomcat과 Apache

일단 나도 혼용했었는데, 아파치=WS , 톰캣=WAS로 알고 있던 것이 그냥 아파치 톰캣이 한몸인듯하다. 아파치=아파치서버, 톰캣=아파치 톰캣... 이렇게 ... 편의상 아파치와 톰캣으로 나눠 부르겠다.

 

톰캣은 WAS이다. 서블릿 컨테이너 역할을 하며 JAVA 기반으로 클라이언트의 요청을 처리하며 응답을 반환하는 역할을 한다. WS역할도 하긴 하지만, WAS에 집중되어 동적인 데이터를 제공한다.

 

아파치는 WS이다. HTML, 이미지 등 안바뀌는 정적 콘텐츠를 제공하는 역할을 한다. 홈페이지 들어갈 때 고정된 로고, 회사이름, 각종 이미지 등을 의미한다. 

 

동적 / 정적 서버 무슨차이 ??

앞서 이야기하긴 했지만, 조금 자세히 구분해보자.

 

1. 정적 서버 WS = 미리 준비된 파일을 그대로 제공하는 서버

ex. HTML, CSS, 이미지, JS 파일과 같은 변하지 않는 정적 콘텐츠

  • 요청받은 파일을 그대로 전송하기 때문에 처리 과정이 단순함
  • 그래서 빠르고 효율적이고, CPU나 메모리 자원을 적게 소모한다.
  • 단순 웹 페이지, 회사 소개 사이트, 블로그와 같은 변경이 거의 없는 콘텐츠에 적합

2. 동적 서버 WAS = 요청을 처리하면서 가공해 변경되는 콘텐츠를 생성하고 반환하는 서버

ex. 사용자 요청에 따라 실시간으로 생성되는 SNS, 전자상거래 사이트 등

  • 요청을 분석하고, 코드를 실행하거나 DB와 상호작용하며 적절한 결과를 생성
  • 복잡한 로직 처리, 실시간 연동이 필요하고 CPU와 메모리 자원이 더 많이 소모됨.
  • 로직 처리하느라 WS보다는 느릴 수 있음.

 

한마디로, 아파치WS는 안바뀌는 정적 콘텐츠, 톰캣WAS는 새로 생성해내는 동적 콘텐츠를 제공한다 !!!

반응형