기술면접[Spring]

가온·2022년 10월 21일
0

Spring은 키워드 위주의 질문이 많고 그에 대한 예시를 숙지하는 것이 좋다.

1. Spring 기본 용어 및 특징

IoC (Inversion of Control)

컨트롤 제어권이 프레임워크에 있어서 필요에 따라 스프링이 코드를 호출

POJO (Plain Old Java Object)

기존에 존재하는 라이브러리를 지원

DI (Dependency Injection)

각각의 서비스들간 의존성이 존재할 경우 프레임워크가 서로 연결

AOP (Aspect-Oriented Programming)

공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리

싱글톤 패턴

  • 객체의 인스턴스가 1개만 생성되는 것을 보장하는 디자인 패턴
  • Stateless 설계
  • 스프링에서 스프링 컨테이너가 관리하는 객체인 Bean을 싱글톤 패턴으로 구현

스프링 컨테이너에 Bean 등록 방법

Component Scanning

  • @Comonent, @Controller, @Service 등의 @Component를 사용하는 방법

Bean 설정 파일에 직접 등록

  • @Configuration을 붙인 Class에 등록하고 싶은 Bean에 @Bean을 사용

스프링 컨테이너

  • 스프링 컨테이너는 스프링에서 자바 객체들을 관리하는 공간
  • 객체 관리 및 의존관계 연결
  • BeanFactory를 상속받은 ApplicationContext를 주로 활용

의존성 주입 방법

  • 생성자 주입 : 생성자에 의존성 주입이 필요한 필드 나열 (권고되는 방법)
  • 멤버 필드 주입 : 필드 선언부 위에 @Autowired 사용 (Deprecated)
  • Setter 메서드 주입 : setter 메서드에 @Autowired 사용
  • 각각의 장/단점 이해 필요

필터와 인터셉터 비교

  • 실행 시점이 다름 > 그에 따라서 처리할 수 있는 데이터가 다름
  • 필터는 Java가 지원, 인터셉터는 Spring이 지원

스프링 부트와 스프링의 차이점

  • 가벼운 프로젝트는 스프링 부트로 많이 하고
  • Embed Tomcat을 사용 (Tomcat 설치 / 버전 관리에서 자유로움)
  • Jar 파일을 이용한 배포 단순화
profile
코딩기딩기딩기딩

0개의 댓글