모의면접 질문

박상훈·2023년 3월 22일
0

면접준비

목록 보기
2/5

모의면접 질문

어려웠거나 대답하지 못했던 질문들

1. Spring Bean 의 생명주기, 스코프에 대해 아시는 대로 말씀해주세요

  • Bean : Beans는 애플리케이션의 핵심을 이루는 객체이며, Spring IoC(Inversion of Control) 컨테이너에 의해 인스턴스화, 관리, 생성된다.

  • Spring Bean 의 속성
    1) class(필수) : 정규화된 자바 클래스 이름
    2) id : bean의 고유 식별자
    3) scope : 객체의 범위(Sigleton, prototype)
    4) constructor-arg : 생성 시 생성자에 전달할 인수
    5) property : 생성 시 bean setter에 전달할 인수
    6) init method와 destory method
  • Bean은 기본적으로 SigleTon으로 생성하여 관리한다.
    -> 애플리케이션 구동시 JVM안에서 스프링이 bean마다 객체를 하나씩 생성하게되고, 우리는 스프링을 통해 bean을 제공받으면 주입받은 bean은 언제나 동일한 객체라는 가정하에 개발하게 된다.
ScopeDescription
singleton하나의 Bean정의에 대해서 Spring Ioc Container내에 단 하나의 객체만 존재한다.
prototype하나의 Bean정의에 대해서 다수의 객체가 존재할 수 있다.(모든 요청에서 새로운 객체를 생성하는 것을 의미한다),정상적인 방식으로 gc에 의해 bean이 제거된다.
request하나의 Bean정의에 대해서 하나의 HttpRequest의 생명주기 안에 단 하나의 객체만 존재한다

2. DI를 하는 방법들을 설명해주세요!

  • 1) 생성자 주입 : @Autowired를 붙힌 클래스 생성자에 의존성 주입이 필요한 객체를 DI해주는 방법
    2) 수정자 주입 : set메서드로 해당 객체의 의존성을 주입해주는 방법
    3) 일반 메서드 주입 : 잘 사용하진 않지만 일반 메서드로 해당 객체를 의존성 주입하는 방법

3. Spring boot를 사용하셨는데 그 이유가 궁금합니다.

  • Spring FrameWork : 자바를 애플리케이션 개발을 위한 오픈소스 프레임워크로써 Ioc,DI,AOP등 편리한 기능을 제공해준다.
  • Spring boot : 내장 톰켓을 따로 다운받을 필요없이 구동시킬 수 있다,dependency의 관리를 맡아준다(과거 스프링 프레임워크에서는 라이브러리의 버전이 맞지 않으면 문제가 생길 수 있었지만 boot stater가 이걸 관리해준다. )

4. API요청에 대한 응답 값의 오류 핸들링은 어떻게 하나요?

  • (아직 정확한 답변은 아니고 개인적인 생각임)
  • 요청에 대한 오류는 제가 봤을 때 두가지다 런타임오류나 아예 응답을 받지 못하는 오류
    따라서 일정 시간이 지나도 응답이 없을 때에 대한 타임아웃 오류 핸들링과 응답 값의 오류 핸들링이 필요하다.
profile
기록하는 습관

0개의 댓글