이전 글인 스프링 부트 장점과 그 이유에 대해 간략히 설명하고
더 자세한 내용을 하나씩 풀어보려고 한다.
https://yuni-spring.tistory.com/39
우선 톰캣이라는 녀석에 대해 간략히 알아보자
아파치에서 만든 톰캣 고양이 녀석이 하나 있는데 이렇게 생겼다.
뭔가 무섭게 생김ㅋㅋ
톰캣은 WAS( Web Application Server)라고 말한다.
java를 이용하여 데이터를 동적으로 제어할 때, 상호작용이 일어날 때 사용된다.
spring boot, java 사용하는데 was는 그냥 같이 따라온다고 생각할 수 있는데
web server랑 was 가 헷갈릴 수도 있지 않을까 해서 적어본다.
web server 형태 예시 :https://openai.com/
그냥 정적인 내용만 있고 로그인 버튼도 들어가보면 도메인 자체가 다르다.
오직 정보 전달용도, html, css, javascript.. 만 있다.
웹서버는 대표적으로 아파치, 엔진엑스 등이 있다.
이 녀석들은 동적 요청이 왔을 때 처리할 수 없으니 해당 요청을 was로 넘기는 역할까지 2가지 역할을 한다.
이제 톰캣이 어떤 고양이인지 알았으니 스프링 부트에 내장되는 원리에 대해 알아보자
build.gradle
implementation 'org.springframework.boot:spring-boot-starter-web'
이전 글에서도 이 코드만 넣어주고 빌드를 하면 내장 톰캣을 만들 수 있다고 했는데
그때부터 아래 어노테이션을 사용할 수 있고 이 어노테이션 아래에 run 메서드를 통해
스프링 컨테이너와 was가 생성된다.
@SpringBootApplication
그 이후 더 자세히 알려면 오버라이드를 하면서 알아봐야 하는데 어떤 클래스가 담당하는지만 작성하려고 한다.
- EmbeddedWebServerFactory: 내장 톰캣과 같은 내장 웹 서버의 인터페이스, 스프링 부트는 이걸로 내장 웹 서버의 구현체를 선택하고 설정한다.
- TomcatWebServer: 내장 톰캣을 시작하고 구성하는 클래스, 이 클래스는 EmbeddedWebServerFactory 인터페이스를 구현하여 내장 톰캣을 제어한다.
- ServletWebServerFactoryAutoConfiguration: 내부적으로 내장 웹 서버 팩토리를 설정하고 내장 톰캣을 사용하도록 구성한다.
고맙다 GPT야!
다음엔 설정 간소화, 자동화에 대한 대표적 예시들에 대해 살펴보려고 한다.
해당 글을 작성하다가 참고한 블로그이다.
'스프링' 카테고리의 다른 글
[Spring Boot -4] 스프링 부트가 개발자에게 직접적으로 주는 장점[2] servlet-context.xml (0) | 2024.04.05 |
---|---|
[Spring Boot -3]스프링 부트가 개발자에게 직접적으로 주는 장점[1] Web.xml (0) | 2024.03.27 |
[Spring Boot -1] 스프링 부트 장점과 그 이유 (2) | 2024.03.26 |
스프링 컨테이너의 종류 (0) | 2022.04.20 |
스프링의 특징 5 [Annotation] Java Configuration (0) | 2021.09.09 |