옥스턴님의 면접 결과

40

총점

3

질문 수

0

좋아요

9

조회수

종합 평가

Spring의 핵심 개념들에 대한 이해도가 높으시고, 특히 CGLIB 프록시의 동작 원리를 구체적인 시나리오와 함께 명확하게 설명하실 수 있습니다. 초기 답변에서는 개념을 나열하는 수준에 그쳤으나, 후반부로 갈수록 원리와 메커니즘에 대한 깊은 이해를 보여주셨습니다. Spring의 빈 생성 전략을 더 체계적으로 학습하시려면 @Configuration의 proxyBeanMethods 옵션, @Lite 모드와 Full 모드의 차이점, 그리고 BeanFactory와 ApplicationContext의 빈 생성 시점 차이를 정리해보시기 바랍니다.

질문별 상세 분석

커뮤니티 공개
Q1A

스프링의 @Configuration 어노테이션의 역할에 대해 설명해주세요.

응답 내용

말 그대로 설정하는 역할을 합니다. 기본적으로는 Bean을 등록하는 메서드들을 선언할 수 있고, 사용자 정의 필터를 등록하거나 인터셉터를 등록할 수 있습니다. DB 연결을 위한 데이터소스를 빈으로 등록하는 설정도 보통 Configuration 안에서 이루어집니다.

AI 피드백

@Configuration의 핵심 역할인 Bean 등록과 설정 관리를 정확히 짚어주셨고, 필터, 인터셉터, 데이터소스 등 실무에서 자주 사용되는 구체적인 예시들도 잘 제시해주셨습니다. 여기서 한 단계 더 깊이 들어가면 @Configuration이 CGLIB 프록시를 통해 싱글톤을 보장하는 메커니즘이나, @Bean 메서드 간의 의존성 주입이 어떻게 처리되는지도 중요한 포인트입니다. 예를 들어 "@Bean 메서드끼리 서로 호출할 때도 프록시를 통해 같은 인스턴스를 반환한다"는 식으로 내부 동작 원리까지 설명할 수 있다면 더욱 깊이 있는 답변이 될 것입니다.

Q2C

@Configuration 클래스에서 @Bean 어노테이션이 붙은 메서드가 어떻게 스프링 컨테이너에 빈으로 등록되나요?

응답 내용

Return된 객체가 Bean으로 등록됩니다. 메서드명이 기본적으로 Bean id가 되고, 혹은 어노테이션 속성에 직접 명시할수 있습니다.

AI 피드백

@Bean 메서드의 반환 객체가 빈으로 등록되고 메서드명이 기본 빈 ID가 된다는 점을 정확히 짚으셨습니다. 다만 @Configuration의 핵심 특징인 CGLIB 프록시를 통한 싱글톤 보장 메커니즘이 빠져있어 아쉽습니다. 일반 @Component와 달리 @Configuration은 클래스를 프록시로 감싸서 같은 @Bean 메서드를 여러 번 호출해도 동일한 인스턴스를 반환하도록 보장합니다. 예를 들어 "DataSource를 반환하는 @Bean 메서드는 몇 번 호출되어도 같은 DataSource 인스턴스를 반환한다"는 식으로 설명할 수 있습니다.

Q3A

@Configuration 클래스가 CGLIB 프록시로 처리되는 이유는 무엇인가요?

응답 내용

싱글톤을 보장하기 위함입니다. 예를들어 A 메서드가 new 연산자를 이용하여 Bean을 반환하도록 되어 있는데 메서드 B, C에서 A를 직접 호출하여 의존성 주입이 일어난 경우 A 메서드는 2번 실행이 되어 싱글톤이 깨질 수 있습니다. 이 때 cglib 프록시가 개입하여 이미 셍성된 bean이 있는지 검사하고, 있으면 new를 중복으로 하지 않도록 하여 싱글톤을 보장하게 됩니다.

AI 피드백

CGLIB 프록시가 싱글톤을 보장한다는 핵심을 정확히 짚으셨고, @Bean 메서드 간 호출 시 중복 생성을 방지하는 구체적 시나리오까지 잘 설명해주셨습니다. 특히 "이미 생성된 bean이 있는지 검사하고 new를 중복으로 하지 않도록 한다"는 부분에서 CGLIB의 동작 메커니즘을 정확히 이해하고 계심을 보여주셨습니다. 한 단계 더 나아가서 @Configuration(proxyBeanMethods=false) 옵션이나 @Lite 모드와의 차이점도 학습해보시면 Spring의 빈 생성 전략을 더 깊이 이해하실 수 있을 것입니다.

커뮤니티 공유 안내

• 이 결과는 AI가 분석한 내용이며, 학습 목적으로 커뮤니티에 공유됩니다.

• 좋아요를 눌러 유용한 답변에 반응을 남겨보세요.

• 개인정보는 포함되지 않으며, 면접 연습 개선을 위한 참고 자료로 활용됩니다.