본문 바로가기
Tech Interview/Backend(Spring)

스프링 기술 면접 대비 - 스프링 기본

by ggyongi 2022. 1. 25.
반응형

기능을 익히고 외우는 것도 좋지만, 

그 기능이 왜 필요하고 기존에 비해 뭐가 좋은 지를 알아야 한다! 즉 이해가 우선!

 

 

Q) 스프링 컨테이너의 역할은 무엇인가요?
A) 스프링 빈 저장소에 빈 이름으로 빈 객체를 저장합니다. 
또한 설정 정보를 참고해서 의존 관계를 주입해줍니다. 

 

Q) 그러한 기능이 왜 필요하며, 어떤 장점이 있나요?

A) 기존에는 설정 정보 클래스에서 필요한 인스턴스들을 직접 생성하고, 직접 의존 관계를 주입해줬어야 했습니다. 스프링 컨테이너가 가진 기능을 사용하면, 예를 들어 컴포넌트 스캔 같은 어노테이션을 활용하면 객체 생성이나 의존 관계 주입 같은 일들이 자동으로 처리되게 할 수 있습니다. (물론 @Bean처럼 객체(빈)을 직접 등록할 수도 있음)

그리고 싱글턴으로 사용되어야 할 클래스 인스턴스들이 자동으로 싱글턴화되도록 해줍니다. 

(물론 스코프 설정으로 싱글턴이 되지 않도록 설정할 수도 있습니다.)

 


Q) 다음 어노테이션에 대해 설명하기
@Configuration
@Bean
@ComponentScan
@Component
@Autowired
A)
@Configuration : 클래스를 설정 정보로 사용, 싱글턴 객체 생성을 보장합니다.
@Bean : 해당 메서드를 사용하여 스프링 컨테이너에 빈을 직접 등록합니다.
@ComponentScan : 컴포넌트 스캔으로 빈을 자동 등록하게 됩니다.
@Component : 컴포넌트 스캔의 대상이 됩니다.
@Autowired : 의존 관계를 자동으로 주입합니다. 


Q) @Autowired를 사용할 시 중복 문제 해결법은 무엇이 있나요?
A) 세가지가 있습니다. 
첫번째로 필드 이름으로 추가매칭을 할 수 있습니다.
두번째로 @Qualifier로 추가 구분자를 만드는 방법이 있습니다.
세번째로 @Primary로 우선권을 부여하는 방법이 있습니다.


Q) 스프링 빈의 라이프사이클은 어떻게 되나요? 초기화 콜백과 소멸전 콜백 함수 사용 방법은 무엇이 있나요?
A) 스프링 빈의 라이프 사이클은 
스프링 컨테이너 생성 - 스프링 빈 생성 - 의존 관계 주입 - 초기화 콜백 - 사용 - 소멸전 콜백 - 종료입니다.
초기화 콜백으로는 @PostConstruct, 
소멸 전 콜백으로는 @PreDestroy를 사용할 수 있습니다.


Q) 빈 스코프 종류에는 무엇이 있나요?
A) 
싱글톤 스코프는 가장 기본적인 스코프이며 스프링 컨테이너 시작부터 종료까지 유지되는 가장 넓은 범위의 스코프입니다.
프로토타입 스코프는 컨테이너에게 빈을 요청할 때마다 매번 객체를 새로 생성해서 반환해주고, 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 짧은 범위의 스코프입니다. 
그 밖에 웹 관련 스코프도 다양하게 존재합니다.

 

비전공자 네카라 신입 취업 노하우

시행착오 끝에 얻어낸 취업 노하우가 모두 담긴 전자책!

kmong.com

댓글