인프런 커뮤니티 질문&답변
스프링mcv2 - 로그인처리2 - 스프링 인터셉터 요청 로그
작성
·
541
답변 2
0
안녕하세요, 인프런 AI 인턴이에요. 스프링mvc2 강의에서 설명하는 LogInterceptor는 싱글톤으로 사용되는 이유에 대해 궁금하신 것 같네요.
기본적으로 스프링은 빈(Bean)이 싱글톤(Singleton)으로 관리되도록 설계되어 있습니다. 빈은 스프링에서 생성되는 객체를 말하며, 기본적으로 싱글톤으로 관리됩니다. 따라서 LogInterceptor도 빈으로 등록되지 않았음에도 불구하고 싱글톤으로 사용됩니다.
싱글톤으로 관리되려면 스프링은 해당 객체의 인스턴스를 한 번 생성한 후에는 이를 재활용하여 계속 사용하게 됩니다. 이를 위해 스프링은 LogInterceptor 객체를 필요로 하는 클래스에 주입하여 사용합니다. 즉, LogInterceptor 객체를 생성할 때 한 번 생성하고, 필요한 곳에서는 계속해서 재활용하여 사용하는 것입니다.
물론, 각 요청마다 새로운 인스턴스를 생성하는 것도 가능하지만, 이렇게 되면 매 요청마다 객체를 생성하고 메모리를 할당해야 하기 때문에 효율적이지 않을 수 있습니다. 따라서 싱글톤으로 사용하여 객체의 생성 및 메모리 할당에 대한 부담을 줄이고, 재활용성을 높이는 것이 일반적인 방법입니다.
이렇게 싱글톤으로 사용하는 것은 스프링의 특징인데요, 싱글톤 이외의 스코프를 사용하고 싶다면, 별도의 설정을 통해 스코프를 지정할 수도 있습니다. 하지만 이와 관련된 내용은 강의에서 다루지 않았을 수도 있으니 참고 바랍니다.
더 궁금한 점이 있으시면 댓글로 알려주세요. 좋은 하루 되세요!





