서블릿 컨테이너 초기화1 강의 관련 질문입니다~
90
37 asked
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
여기에 질문 내용을 남겨주세요.
스프링부트 톰캣 내부에 서블릿 컨테이너도 있고 스프링 컨테이너도 같이 존재하는 건가요?
그래서,
API 호출이 오면 서블릿 컨테이너 내부의 DispatcherServlet이 스프링 컨테이너로 연결시켜서 컨트롤러 빈으로 매핑하도록 한다고 보면 될까요?
Answer 1
0
안녕하세요, 인프런 AI 인턴입니다. ajdsasld님, 질문 주신 내용에 대해 답변 드리겠습니다.
스프링 부트는 기본적으로 내장 톰캣 서버를 활용하여 웹 애플리케이션을 구동하며, 여기에는 서블릿 컨테이너와 스프링 컨테이너가 함께 존재합니다.
- 서블릿 컨테이너: 요청이 들어올 때 이를 처리하는 기본적이고 저수준의 요청/응답 기능을 제공하고, 서블릿 생명주기를 관리합니다.
- 스프링 컨테이너: 주로 애플리케이션의 비즈니스 로직을 담당하는 빈(Bean) 객체들을 관리하며, 이 빈 객체들을 생성, 관리하고 주입을 담당합니다.
스프링 부트가 내장 톰캣을 사용하는 경우 다음과 같은 흐름으로 요청을 처리합니다:
- 클라이언트 요청 수신: 내장 톰캣의 서블릿 컨테이너가 외부로부터 HTTP 요청을 받습니다.
- DispatcherServlet 역할:
- 이 요청은 톰캣 내의 서블릿 컨테이너에 의해
DispatcherServlet으로 전달됩니다.
DispatcherServlet은 스프링 프레임워크의 핵심으로 작동하며, 요청을 적절한 컨트롤러로 매핑합니다.
- 이 요청은 톰캣 내의 서블릿 컨테이너에 의해
- 스프링 컨테이너와 연동:
DispatcherServlet은 스프링 컨테이너와 밀접하게 연동되어 있으며, 해당 컨테이너에서 관리하는 빈 객체들(예: 컨트롤러)을 찾아 요청을 처리합니다.
- 응답 처리 및 반환:
- 컨트롤러에서 비즈니스 로직을 수행한 후, 이에 대한 결과를
DispatcherServlet이 받아와서 클라이언트에게 응답합니다.
- 컨트롤러에서 비즈니스 로직을 수행한 후, 이에 대한 결과를
이러한 작동 방식은 스프링의 강력한 의존 주입(Dependency Injection) 기능과 빈 관리 기능을 통해 간단하고 직관적으로 웹 요청을 관리할 수 있게 해줍니다.
더 많은 내용과 변동 사항에 대해 이해를 돕기 위해 아래 링크들을 참고하시면 도움이 될 것입니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
보안이 엄격한 데이터
0
71
1
MyProperties 자체를 클라이언트 코드에서 사용
1
42
1
http://localhost:8080/actuator/prometheus
0
84
3
jar 추가에대한 질문드려도될까요?
0
62
1
build.gradle bom link 변경
0
63
2
@Counted 초기화
0
47
1
@Validated를 적용해도 빈 검증이 안되는 경우에 대한 조치 공유..
0
99
2
springboot에서 actuator없이 micrometer를 사용할수 있나요?
0
67
1
@Configuration 질문드립니다.
0
84
2
[공유] 터미널 말고 IDE 에서 jar 실행하기
0
96
1
localhost:8080/hello-servlet 404오류
0
123
2
내장톰캣2 서블릿 톰켓 실행이 안됩니다
1
152
2
최대 Tomcat 스레드 수를 확인하는 지표
0
159
1
mac m2에서 startup.sh 실행후 아무 반응이 없습니다.
0
94
2
내장 톰캣 실행 오류 관련 질문드립니다.
0
156
1
스프링 발전 과정들도 자세히 알아둬야하나요??
1
126
1
스프링부트 ioc 컨테이너 갯수
0
89
1
404 페이지
0
133
3
actuator 호출시 타임스탬프 질문
0
90
1
순수 라이브러리 사용하기 2 - memory-v1
0
124
1
외부설정 @ConfigurationProperties의 내부 클래스에서 static을 사용하는 이유를 알고 싶습니다.
0
102
1
Thread Config Max 패널 설정 변경 질문
0
123
1
스프링 액츄에이터 shutdown 엔드포인트 활성화가 안됩니다.
0
103
1
테스트 실행시 동일 오류 3가지 발생
0
180
1

