Tomcat & Spring

Jae Chan·2023년 9월 28일
0

TIL

목록 보기
8/10
post-thumbnail

입사 후 사내에서 자체적으로 개발한 웹 서버가 있었다. 어떤 구조인지 살펴보니 Spring 프레임워크 였던 것이다. 나는 Java 기반의 프레임워크는 Spring이 아니라 Spring Boot를 접했기에 조금 다른 부분이 있었다.

그리고 스프링하면 꼭 빠질 수 없는 친구인 톰캣에 대해 명확히 아는 바가 없기에 이번 기회에 확실히 짚어보려고 한다.


톰캣(Tomcat)은 뭐에요?

🤷‍♂️ : 그래서 톰캣이 뭔데요?

톰캣은 Apache Software Foundation에서 개발 및 유지보수하는 오픈 소스 웹 서버 및 서블릿 컨테이너이다.

몇가지 주요 기능으로는 다음과 같다.

  • 웹 서버 API 요청 처리
  • 서블릿 컨테이너 역할
  • JSP 처리
  • 높은 성능과 확장성 제공
  • 웹 호스팅 제공

💡 여기서 서블릿 컨테이너란?

Java 언어로 작성된 웹 애플리케이션의 구성 요소 중 하나로, 동적 웹 페이지를 생성하고 처리하는 Java 프로그램이다.


그럼 스프링(Spring)은 뭐야?

웹 개발하면 빠질 수 없는 친구다. Java의 영원한 친구이며 한국에서도 전자정부 표준 프레임워크로 선정되어 매우 친숙한 친구이다.

스프링은 Java 기반의 애플리케이션 개발을 위한 오픈 소스 프레임워크이다.
웹 개발에 도움되는 의존성 및 여러가지 편의 기능들을 제공하여 보다 용이한 개발이 가능하도록 도와주는 프레임워크이다.

두 친구의 관계

그럼 두 친구의 관계는 뭘까?

스프링 웹 애플리케이션 배포

스프링 웹 애플리케이션을 개발한 후 WAR(웹 애플리케이션 아카이브) 파일로 패키징하고 이를 톰캣에 배포할 수 있다.

DispatcherServlet

스프링 웹 애플리케이션은 주로 DispatcherServlet이라는 스프링의 서블릿을 사용하여 요청을 처리한다. DispatcherServlet은 애플리케이션 내의 컨트롤러와 다른 구성 요소들을 관리하고, HTTP 요청을 적절한 핸들러로 라우팅하여 처리한다.

스프링 빈 관리

톰캣은 스프링 애플리케이션의 컨텍스트(ApplicationContext)를 초기화하고 스프링 빈(bean)을 관리하는 역할을 한다. 스프링은 런타임 중에 빈을 생성하고 관리하며, 스프링의 종속성 주입(DI)을 사용하여 빈 간의 의존성을 해결한다.

트랜잭션 관리

스프링은 트랜잭션 관리를 위한 다양한 방식을 제공하며, 이를 통해 데이터베이스 트랜잭션 등을 쉽게 처리할 수 있다. 톰캣과 스프링을 함께 사용하면 트랜잭션 관리가 원활하게 이루어진다.

결과적으로 톰캣은 스프링으로 만들어진 웹 구성 요소들을 서블릿 컨테이너를 통해 배포한다고 볼 수 있다.

Spring → 실행 → Tomcat컨테이너 처리 → 배포

이러한 과정이라고 생각함.


💡 참고

0개의 댓글