인프런 커뮤니티 질문&답변

qzxy812님의 프로필 이미지
qzxy812

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

서블릿

서블릿 싱글톤

작성

·

713

1


질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
안녕하세요 김영한 개발자님. 항상 좋은 강의 감사합니다.
강의를 듣다가 궁금한 점이 생겨서 질문드려요. 9:39초에서 http request, response는 고객마다 데이터가 다 다르기 때문에 요청이 올때마다 계속 생성하는게 맞다는 것은 이해가 갑니다. 그런데, 왜 서블릿은 싱글톤으로 만들어야 되는지 잘 이해가 가지 않습니다. 제가 생각하기에는 만약 고객1이 /spring을 요청하고 고객2가 /hello를 요청한다면 이 둘의 데이터도 다르기 때문에 각자 생성해야되지 않나 싶어요ㅠㅠ 10:19초에서 말씀하신 것처럼 개별 요청이 오면 애플리케이션 로직을 작성하고 또 다른 요청이 오면 같은 서블릿에 또 다른 애플리케이션 로직을 작성하고.... 이런 식으로 동작하는 걸까요? 감사합니다.
 
 

답변 1

3

안녕하세요. qzxy812님, 공식 서포터즈 David입니다.

/hello 를 처리하는 HelloServlet, /spring을 처리하는 SpringServlet이 각각 존재한다면

HelloServlet, SpringServlet를 매번 요청이 올 때마다 새롭게 만들어줄 필요없이 한 번만 생성한 뒤 이미 생성된 것을 사용하면 됩니다.

강의 내에서 말씀하신 싱글톤은 HelloServlet, SpringServlet을 각각 하나만 존재하도록 하는 것입니다.

그렇다면 /hello 를 처리하는 HelloServlet으로 동시에 요청이 올 때 어떻게 처리하는지에 대해서는 다음 강의(동시 요청 - 멀티 쓰레드)를 들어주세요:)

감사합니다.

qzxy812님의 프로필 이미지
qzxy812
질문자

david님 답변 감사합니다! HelloServlet, SpringServlet을 각각 하나만 존재하도록 하는거 이해했습니다! 그럼 만약에 /inflearn이라는 새로운 요청이 왔으면 /inflearn을 처리하는 서블릿을 싱글톤으로 또 생성하는 건가요?

네, 맞습니다. /inflearn 을 처리해줄 수 있는 서블릿을 미리 개발자가 만들어 두었다는 가정하에요.

그리고 새로운 요청이 들어왔을 때 생성하진 않고 서버가 시작될 때 사용될 서블릿들을 미리 생성해둡니다.

qzxy812님의 프로필 이미지
qzxy812
질문자

이해했습니다 친철한 답변 감사드려요!

qzxy812님의 프로필 이미지
qzxy812

작성한 질문수

질문하기