ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Interview] Spring Tech Interview
    Interview 2021. 5. 27. 17:13

    1. IoC란?

    더보기

    사용자가 프로그램 제어 흐름을 결정하는 것이 아닌 외부에서 프로그램 제어 흐름을 결정하는 것입니다

     

    2. DI란? 그 종류는?

    더보기

    클래스 사이의 의존 관계를 빈 설정 정보를 바탕으로 컨테이너가 자동으로 연결하는 것입니다

    생성자 주입, 필드 주입,  Setter 주입이 있습니다

     

    3. Spring Bean이란?

    더보기

    스프링 컨테이너가 관리하는 객체를 말합니다

     

    4. Spring Bean의 생명 주기를 설명해 주세요

    더보기

    1. ApplicationContext로 컨테이너를 실행하면서 빈 설정 파일을 읽습니다.

     + 빈 설정은 Component Scan 또는 @Configuration 파일을 읽는 방식이 있습니다

    2. 객체가 생성되면서 컨테이너에 Spring Bean으로 등록됩니다

    3. 컨테이너는 의존관계를 주입합니다

    4. 초기화 콜백(@PreConstruct)을 실행합니다

    5. 실제 사용됩니다

    6. 소멸전 콜백(@PreDestroy)을 실행합니다

    7. 컨테이너가 종료됩니다

     

    5. Spring Bean의 스코프를 설명해 주세요

    더보기

    Spring Bean은 종류별로 스코프가 다릅니다

    1. Singleton Bean : 컨테이너에 하나만 존재하며 컨테이너의 생성부터 종료까지 유지됩니다

    2. Prototype Bean : 클라이언트가 요청할때마다 생성되고 초기화 콜백 이후로 컨테이너가 관리하지 않습니다

    그 외에도 웹 기능에 따라 생성되고 종료되는 request, session 등의 빈들이 있습니다

     

    6. Autowiring 기능에 대해 설명해주세요

    더보기

    @Autowire 어노테이션을 사용하면 컨테이너에서 해당 타입과 동일한 빈을 찾아 주입한다

     

    7. Spring Web MVC의 DispatcherServlet에 대해 설명해주세요

    더보기

    DispatcherServlet은 핸들러 매핑, 핸들러 어댑터 매핑 이후 해당 핸들러에서 받은 ModelAndView를 뷰로 넘기는 프론트 컨트롤러 역할을 합니다

     

    8. 프론트 컨트롤러 패턴이 무엇인가요?

    더보기

    비즈니스 로직은 컨트롤러에 위임하고 렌더링은 뷰에 위임하여 프론트 컨트롤러 자신은 핸들러 매핑의 책임만 가지는 패턴

     

    9. @Component, @Bean의 차이점은 무엇인가요?

    더보기

    둘다 의존성 주입에 사용되지만 Component는 클래스 레벨에, Bean은 메소드 레벨에 사용됩니다

    @Bean은 @Configuration 파일의 메소드 또는 외부 라이브러리를 등록할 때 사용됩니다

     

    10. JPA 사용의 이점은?

    더보기

    JPA의 JPQL은 database dialect를 지원하기 때문에 RDB vendor에 종속적이지 않습니다

    또한 비즈니스 로직이 DB가 아닌 객체를 중심으로 작성되기 때문에 생산성이 높아집니다

     

    11. N+1 문제는 무엇인가요?

    더보기

    엔티티의 연관관계가 즉시 로딩(EAGER)으로 설정되어 있는 경우 관련된 모든 엔티티를 조회하기 때문에 하나의 조회가 추가적으로 N개의 조회를 불러오는 문제를 말합니다. LAZY로 설정하면 문제가 해결된다

    'Interview' 카테고리의 다른 글

    [Interview] Java Tech Interview  (0) 2021.05.27
Designed by Tistory.