NW-book-club / spring-boot-document

https://docs.spring.io/spring-boot/docs/2.6.10/reference/html/index.html
0 stars 0 forks source link

호기심 해결 #2

Open KKambi opened 1 year ago

KKambi commented 1 year ago

Embedded Tomcat vs Tomcat

스프링 부트는 프로젝트에 톰캣을 내장하여 JAR로 패키징한 뒤 이를 실행한다.


내장 톰캣이 없던 시절의 스프링


그럼 뭐가 다른데? - 외장 톰캣만 가능한 virtual host

image


virtual host - 어디서 많이 본 기능인데?

이는 서블릿 컨테이너로써 소스코드를 해석하고, 요청에 대해 동적인 로직을 실행하여, 정적인 결과를 반환하는 WAS의 역할에 벗어난다.


image


왜 우리는 외장톰캣을 사용해본 적이 없는가?

개발을 늦게 시작한 우리는 하나의 외장톰캣에 다수의 자바 어플리케이션을 올리는 걸 본 적이 거의 없다. (하금티는 있었던 듯)


게다가 다음과 같이 스프링 부트에서 기존 구성에서의 기능을 대체할 수 있다.

참고 블로그1 참고 블로그2

KKambi commented 1 year ago

서블릿 컨테이너

서블릿이란?

서블릿은 Server Application Let (서버 어플리케이션 한 조각)이라는 뜻으로, 동적 요청을 처리하는 코드

서블릿 컨테이너의 역할

  1. 서블릿의 라이프 사이클 관리
  2. 서블릿을 이용한 HTTP 요청 처리
    1. 클라이언트의 HTTP 요청 메세지를 해석해서, request 객체를 생성
    2. 요청을 처리할 적절한 서블릿을 선택 후, request 객체를 넘겨주어 처리를 위임
    3. 서블릿의 응답으로 response 객체를 만들고, 클라이언트에게 HTTP 응답한다.
  3. 멀티스레드 관리 (일반적으로 요청 하나에 스레드 하나 할당)


WAS는 원래 Web Server + Servlet Container 대신 효율적인 자원 관리를 위해 웹 서버를 분리하는 것

jjy0918 commented 1 year ago

log4j, logback, log4j2

slf4j

log4j

logback

https://logback.qos.ch/manual/

log4j보다 logback을 선호하는 이유

log4j2

image