Legday

아파치 톰캣(Apache Tomcat) 이란? 본문

Spring&Springboot/Spring(개인공부용)

아파치 톰캣(Apache Tomcat) 이란?

Legday 2022. 8. 24. 12:54

1) 아파치 톰캣 이란 ?

- 아파치(Apache)와 톰캣(Tomcat)을 합친 것을 말한다.

- 쉽게말해선 아파치 톰캣은 정적,동적 데이터를 교환하는 웹서버 어플리케이션이다

2) 아파치

- 아파치는 정적데이터를 다루는 서버이고

3) 톰캣

- 톰캣은 아파치가 다루지 못하는 동적데이터를 해석하여 아파치에게 넘겨주는 역할이다

4) 아파치와 톰캣의 차이점

- 쉽게 말하자면 아파치는 서버이고 톰캣은 동적데이터를 해석해주는 어플리케이션 같은것이다.

- 흔히 .txt .html 같은 정적인 데이터는 아파치에서 바로  client에 응답해줄수 있는 반면, 동적데이터를 client  에 응답해주면 브라우저가 java파일같은것을 해석하지 못하기에 톰캣이 동적데이터를 해석해 아파치  에게 주고 그 해석한 결과를 client에 전달하는 것이다. (톰캣은 서버가 아니다!)

5) 동작원리

- 아파치는 Target Folder라는 곳이 필요하다. 왜냐하면 서버란 결국 데이터들을 가지고 있다가 Request받으면 Response하는 역할이기 때문이다.

- 이때 webapp 이라는 폴더에 데이터들이 있고 , client가 ' ip주소:port번호/파일명 ' 이렇게 Request하면 아파치서버는 webapp에서 데이터를 찾아 [header],[body]구조(실제론 복잡,설명을 위해 간편하게)로  client에게 Response해준다.

- 이때 header에는 metadata(데이터의정보), body에는 data(실제데이터)를 넣어 응답한다.

- 그리고 서버에는 여러 클라이언트가 연결(stream)될 수 있는데 이때 Thread로 구성이 된다.

- 정적데이터는 아파치서버에서 바로 응답이 가능하지만 만약 동적데이터를 요청을 받아 client에 응답을 해준다면 브라우저에서 동적데이터를 인식하지 못하기에 오류가 생김

- 이 때, 톰캣(Tomcat)이 동적데이터를 해석하여 그 결과값을 아파치에게 전달. 그 전달값을 아파치가 client에 응답한다.

6)Tomcat의 기본생성파일

- Tomcat이 실행하면 기본생성파일 3개가 생성된다.(server.xml , context.xml, web.xml)

 1. server.xml => port번호를 설정한다.

 2. context.xml => DB연결

 3. web.xml => 필터기능

위에 3가지 기능들을 3개 파일의 나누어서 기능을 실행하는데

Spring은 ' application.properties ' 에 통틀어 작성하는 장점이 있다!