static관련 질문드립니다.
간단하게 정리해봤는데 이해하는데 도움이 되었으면 합니다!Spring 컨테이너는 프록시 매커니즘을 통해 빈의 싱글톤 스코프를 보장한다.Spring은 CGLIB 바이트코드 조작 라이브러리를 사용하여 @Configuration이 붙은 클래스를 프록시 객체로 만들어, 스프링 컨테이너에 빈으로 등록한다.프록시 객체는 @Bean 메서드에 기존 빈을 반환하거나, 필요한 경우 새로 생성 후 반환하는 로직을 추가한다.이 동작은 인스턴스 레벨에서 이루어진다.Static 메서드는 클래스 레벨에서 동작하며, 특정 인스턴스와 무관하기 때문에 프록시 매커니즘이 적용되지 않는다.따라서 static 메서드는 싱글톤 스코프를 보장받지 못하며, 호출될 때마다 새 객체를 반환할 수 있다.Static 메서드는 싱글톤이 필요 없는 경우에만 사용을 고려해야 하며, 일반적으로는 피하는 것이 좋다.