![[기술 면접] 4. Spring Bean이 무엇인가요? 1 제목을 입력해주세요 복사본 7 001 1](https://i0.wp.com/allhoneytip.com/wp-content/uploads/2023/08/%EC%A0%9C%EB%AA%A9%EC%9D%84-%EC%9E%85%EB%A0%A5%ED%95%B4%EC%A3%BC%EC%84%B8%EC%9A%94__%EB%B3%B5%EC%82%AC%EB%B3%B8-7-001-1-optimized.png?resize=300%2C300&ssl=1)
저번 시간에 이어, 이번엔 Spring Bean에 대해 알아보도록 하겠습니다. Bean은 Spring Framework에서 관리되는 객체로 애플리케이션의 구성 요소입니다. 개발자가 생성하는 것이 아닌, 스프링 컨테이너가 생성하여 공급하는 객체를 의미하며 스프링 관련 질문으로 종종 등장하곤 합니다.
![[기술 면접] 4. Spring Bean이 무엇인가요? 2 Spring Bean이 무엇인가요?](https://i0.wp.com/allhoneytip.com/wp-content/uploads/2023/08/image-37-optimized.png?resize=1024%2C576&ssl=1)
Q: Spring Bean이 무엇인가요?
Spring Framework에서 관리되는 객체로, Spring Container가 생성하여 관리합니다. 의존성 주입(Dependency Injection)으로 관리되며 Application의 각 Layer에 데이터 혹은 기능을 공유하거나 제어할 수 있도록 도와줍니다.
Q: Bean Scope가 뭐에요?
Spring Bean은 기본적으로 싱글톤 스코프로 생성되기 때문에, 스프링 컨테이너의 시작과 함께 생성되어 스프링 컨테이너가 종료될 때 까지 유지됩니다. Scope는, 이러한 빈이 존재할 수 있는 범위를 뜻합니다.
Q: Spring Bean의 의존성 주입(DI, Dependency Injection) 방법은 어떤 것들이 있나요?
생성자로 주입하는 생성자 주입(Constructor Injection)과 메서드로 주입하는 세터 주입(Setter Injection), 그리고 필드에 직접 입력하는 필드 주입(Field Injection)이 있습니다.
Q: 그렇다면 Spring Bean의 단점은 무엇이 있을까요?
Runtime 시 Bean의 생성, 초기화, DI 등을 관리하기 위한 오버헤드가 발생하고 여러 Thread에서 동시에 접근하면 Thread-safe하지 않으므로 동기화문제가 발생할 수 있습니다.
마치며
오늘은 Spring Bean에 대한 질문들을 알아보았습니다. 대규모 플랫폼 기업 면접에서 Spring의 작동 원리와 구성 요소를 파악하고 있는지 판단하기 위해 종종 등자하는 질문들입니다.
다음 시간에는, DispatcherServlet에 대한 질문을 알아보겠습니다.
![[기술 면접] 4. Spring Bean이 무엇인가요? 3 Spring Bean](https://i0.wp.com/allhoneytip.com/wp-content/uploads/2023/08/image-38-optimized.png?resize=1024%2C322&ssl=1)
답글 남기기