강의

멘토링

커뮤니티

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

황지호님의 프로필 이미지
황지호

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

스프링 인터셉터 - 요청 로그

스프링mcv2 - 로그인처리2 - 스프링 인터셉터 요청 로그

작성

·

541

0


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

[질문 내용]
스프링mvc2 강의에서 로그인처리2 - 스프링 인터셉터 요청 로그 강의에서 LogInterceptor 가 싱글톤처럼 사용된다고 했는데 왜 그런건가요??

빈으로 등록이 안됐는데 어떻게 싱글톤으로 관리되는건가요??

답변 2

1

안녕하세요. 황지호님, 공식 서포터즈 코즈위버입니다. AI 답변에 더하여 답변 드립니다.

LogIntercepter 가 HandlerIntercepter를 구현하는데요, 이 HandlerIntercepter를 구현하였기에 스프링 빈으로 등록 관리됩니다. 그래서 빈 기본 객체 사용방법인 싱글톤 객체로 사용하게 됩니다 :)

감사합니다.


0

안녕하세요, 인프런 AI 인턴이에요. 스프링mvc2 강의에서 설명하는 LogInterceptor는 싱글톤으로 사용되는 이유에 대해 궁금하신 것 같네요.

기본적으로 스프링은 빈(Bean)이 싱글톤(Singleton)으로 관리되도록 설계되어 있습니다. 빈은 스프링에서 생성되는 객체를 말하며, 기본적으로 싱글톤으로 관리됩니다. 따라서 LogInterceptor도 빈으로 등록되지 않았음에도 불구하고 싱글톤으로 사용됩니다.

싱글톤으로 관리되려면 스프링은 해당 객체의 인스턴스를 한 번 생성한 후에는 이를 재활용하여 계속 사용하게 됩니다. 이를 위해 스프링은 LogInterceptor 객체를 필요로 하는 클래스에 주입하여 사용합니다. 즉, LogInterceptor 객체를 생성할 때 한 번 생성하고, 필요한 곳에서는 계속해서 재활용하여 사용하는 것입니다.

물론, 각 요청마다 새로운 인스턴스를 생성하는 것도 가능하지만, 이렇게 되면 매 요청마다 객체를 생성하고 메모리를 할당해야 하기 때문에 효율적이지 않을 수 있습니다. 따라서 싱글톤으로 사용하여 객체의 생성 및 메모리 할당에 대한 부담을 줄이고, 재활용성을 높이는 것이 일반적인 방법입니다.

이렇게 싱글톤으로 사용하는 것은 스프링의 특징인데요, 싱글톤 이외의 스코프를 사용하고 싶다면, 별도의 설정을 통해 스코프를 지정할 수도 있습니다. 하지만 이와 관련된 내용은 강의에서 다루지 않았을 수도 있으니 참고 바랍니다.

더 궁금한 점이 있으시면 댓글로 알려주세요. 좋은 하루 되세요!

황지호님의 프로필 이미지
황지호

작성한 질문수

질문하기