본문 바로가기

스프링

[Spring Boot -2]스프링 부트 톰캣은 어디서 실행될까?

반응형

이전 글인 스프링 부트 장점과 그 이유에 대해 간략히 설명하고

더 자세한 내용을 하나씩 풀어보려고 한다.

 

https://yuni-spring.tistory.com/39

 

스프링 부트 장점과 그 이유

과거 2년간 개발했던 기억을 되짚어보면 레거시 프로젝트는 정말 설정이 복잡하고 피곤했다. 대부분의 프로젝트는 스프링 부트의 기반으로 개발을 하게 되었고 초기 설정을 팀원이 작업해 주거

yuni-spring.tistory.com


 

우선 톰캣이라는 녀석에 대해 간략히 알아보자

아파치에서 만든 톰캣 고양이 녀석이 하나 있는데 이렇게 생겼다.

 

뭔가 무섭게 생김ㅋㅋ

 

톰캣은 WAS( Web Application Server)라고 말한다.

java를 이용하여 데이터를 동적으로 제어할 때, 상호작용이 일어날 때 사용된다.

 

spring boot, java 사용하는데 was는 그냥 같이 따라온다고 생각할 수 있는데

web server랑 was 가 헷갈릴 수도 있지 않을까 해서 적어본다.

 

web server 형태 예시 :https://openai.com/

 

OpenAI

Introducing Sora: Creating video from text

openai.com

 

그냥 정적인 내용만 있고 로그인 버튼도 들어가보면 도메인 자체가 다르다.

오직 정보 전달용도, html, css, javascript.. 만 있다.

 

웹서버는 대표적으로 아파치, 엔진엑스 등이 있다.

이 녀석들은 동적 요청이 왔을 때 처리할 수 없으니 해당 요청을 was로 넘기는 역할까지 2가지 역할을 한다.

 


 

이제 톰캣이 어떤 고양이인지 알았으니 스프링 부트에 내장되는 원리에 대해 알아보자

 

build.gradle

implementation 'org.springframework.boot:spring-boot-starter-web'

이전 글에서도 이 코드만 넣어주고 빌드를 하면 내장 톰캣을 만들 수 있다고 했는데

그때부터 아래 어노테이션을 사용할 수 있고 이 어노테이션 아래에 run 메서드를 통해

스프링 컨테이너와 was가 생성된다.

@SpringBootApplication

 

그 이후 더 자세히 알려면 오버라이드를 하면서 알아봐야 하는데 어떤 클래스가 담당하는지만 작성하려고 한다.

 

  1. EmbeddedWebServerFactory: 내장 톰캣과 같은 내장 웹 서버의 인터페이스, 스프링 부트는 이걸로 내장 웹 서버의 구현체를 선택하고 설정한다.
  2. TomcatWebServer: 내장 톰캣을 시작하고 구성하는 클래스, 이 클래스는 EmbeddedWebServerFactory 인터페이스를 구현하여 내장 톰캣을 제어한다.
  3. ServletWebServerFactoryAutoConfiguration: 내부적으로 내장 웹 서버 팩토리를 설정하고 내장 톰캣을 사용하도록 구성한다.

고맙다 GPT야!

 


 

다음엔 설정 간소화, 자동화에 대한 대표적 예시들에 대해 살펴보려고 한다.

 

해당 글을 작성하다가 참고한 블로그이다.

https://story.pxd.co.kr/1647

 

웹서버와 WAS(Web Application Server)

들어가며 웹서버와 WAS의 종류들 최근 네트워크에 관련하여 소소하게 책을 읽으며 스터디하는 시간을 가졌는데 그중 관련이 좀 있을법한 주제를 가지고 이번 블로그 포스팅하려고 합니다. 네트

story.pxd.co.kr

 

 

반응형