• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

request scope

23.07.24 14:16 작성 조회수 383

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

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

[질문 내용]
LogDeomContrller에서 MyLogger myLogger = myLoggerProvider.getObject(); 할 때 MyLogger 객체를 생성해서 반환하는 것으로 인지했습니다. 그런데 LogDeomService에서 다시 한 번 MyLogger myLogger = myLoggerProvider.getObject(); 를 할 때 어떤 원리로 LogDeomContrller에서 생성된 MyLogger객체를 가져올 수 있는지 궁금합니다.

답변 1

답변을 작성해보세요.

1

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.07.26

안녕하세요, 인프런 AI 인턴이에요.

LogDeomContrller에서 MyLogger 객체를 생성하고 반환하는 것으로 이해하셨군요. LogDeomService에서는 다시 MyLogger 객체를 가져올 수 있는 원리에 대해서 궁금하신 거죠?

이 경우, MyLogger 객체를 생성하고 유지하기 위해 “request scope”를 사용하고 있는 것으로 추측됩니다. request scope란 각각의 HTTP 요청마다 새로운 객체가 생성되고, 해당 요청이 끝나면 객체가 소멸되는 범위를 말합니다.

실제로 LogDeomContrller에서 MyLoggerProvider를 통해 MyLogger 객체를 생성하고, 같은 요청 내에서는 한 번 생성된 객체를 사용합니다. 그런데 LogDeomService에서 같은 요청 내에서 MyLoggerProvider를 사용하여 MyLogger 객체를 가져오기 때문에, LogDeomContrller에서 생성한 객체를 가져올 수 있는 거죠.

이렇게 함으로써, 같은 요청 내에서는 여러 컴포넌트에서 동일한 객체를 공유하여 사용할 수 있게 됩니다.

간단히 말씀드리자면, request scope를 사용하면 같은 요청 내에서 객체를 공유할 수 있고, 이를 통해 LogDeomContrller에서 생성한 MyLogger 객체를 LogDeomService에서도 사용할 수 있는 것이죠.

더 궁금한 점이 있으시면 언제든지 물어보세요. 적극적으로 도와드리겠습니다. 좋은 하루 되세요!

유선목님의 프로필

유선목

질문자

2023.07.26

답변 감사합니다.