본문 바로가기

좋아하는 것_매직IT/100.면접준비

SpringBoot 관련 백엔드 기술 면접 질문및 답변 깔끔 정리

반응형

벡엔드 기술면접에서는 아래 내용에 대해서 정리가 필요하다..
JAVA / SpringBoot / DB / Web / 자료구조

이중에서 SpringBoot에 대해서 정리해보자.

1) Spring 프레임워크의 특징및 사용하는 이유에 대해서 정리해보자.
Java기반의 웹어플리케이션을 프로그래밍할 수 있는 프레임워크를 우리는 Spring 프레임워크라고 부른다.
Spring 이전에 엔터프라이즈급 System 개발이 많이 복잡했는데, Spring 에서는 해당 복잡성을 해결하기 위해서  IOC,DI,AOP 를 사용함.
Spring의 주요 특징으로는 POJO 기반의 구성 및 의존성 주입(DI)을 통한 객체 간의 관계 구성이 있고..
AOP(Aspect - Oriented - Programming) 지원  및 관점 지향 프로그래밍과 편리한 MVC 구조 및 WAS의 종속적이지 않은 개발 환경 등이 있음.
또한 Java 객체와 라이브러리들을 관리해주며, SpringBoot에는 Was 서버(embeded tomcat)가 내장되어 있음

728x90


2) Spring Boot에 대해서 정리해보자.
Spring Boot 는 기존 Spring 프레임워크를  더 쉽게 이용할 수 있는 도구라고 볼 수 있음.
Spring 을 이용해서 개발을 할 경우 Setting 이 복잡한데, Spring Boot 는 매우간단하게 프로젝트를 설정할 수 있음.
개발자는 비즈니스 로직에 집중할 수 있도록 함.

3) Spring MVC에 대해서 정리해보자. 
Spring MVC 는 Model2 를 기반으로 하며, MVC에 대해서 정리해보자면요
MVC는 Model, View, Controller 구조를 말하며, 해당 구조는 사용자 인터페이스와 비즈니스 로직을 분리하여 개발하는 것을 말함.
참고로, MVC에서는 Model1과 Model2 가 있음.
MVC 에 대해서 좀더 자세히 알아보면요.

Model(모델)
데이터 처리를 담당하는 부분이며, Service 영역과 DAO영역으로 나누어지게 됨.
참고로, Model에서는 View 와 Controller 의 어떤 정보도 가지고 있어서는 안됨.

View(뷰)
뷰는 사용자 인터페이스를 담당하며 사용자에게 보이는 부분을 말함.
Model이 가지고 있는 정보를 저장해서는 안되며 Model, Controller의 구성 요소를 알아선 안됨.

Controller(컨트롤러)
컨트롤러에서는 View 에 받은 요청을 가공해서 Model(Service 영역)으로 전달함.
Model로부터 받은 결과를 View 로 넘겨주는 역할도 하고, 모든 요청 에러와 모델에러를 처리함.
Model과 View 의 정보를 알고 있어야함.

4) Spring IOC 에 대해서 정리해보자. 
IOC(Inversion of Control) 제어의 역전이라는 뜻이고,
프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것으로 코드의 최종 호출은 개발자가 제어하는 것이 아닌 프레임워크(Spring)의 내부에서 결정된 대로 이루어진다라는 것을 말함.

5)Spring DI에 대해서 정리해보자.
DI(Dependency Injection) 는 의존성 주입이라는 뜻이고, 
Spring에서 지원하는 IOC의 형태로 클래스 사이의 의존 관계를 빈(Bean) 설정 정보를 바탕으로 컨테이너가 자동으로 연결해준다.
DI 3가지 방법 : 생성자 삽입, Setter를 이용한 메서드 매개 변수 삽입, 필드 주입

6)Spring AOP 에 대해서 정리해보자.
AOP(Aspect Oriented Programming) 은 관점지향프로그래밍이라는 뜻이고,
핵심 비즈니스 로직과 공통로직을 분리해서 응집도가 높게 개발할 수 있도록 지원함.
공통으로 사용하는 기능들을 외부로 독립된 클래스로 분리하는 것을 말함.

7)Spring Bean에 대해서 정리해보자.
IOC 컨테이너 안에 들어있는 객체이고, 필요할때 IOC 컨테이너에서 가져와서 사용함.
보통 @Bean 어노테이션을 사용하거나 XML설정을 통해 일반 객체를 Bean으로 등록할 수 있음.

8)Spring 컨테이너에 대해서 정리해보자
Spring 컨테이너는 Spring에서 객체를 생성하고 조립하는 컨테이너로, 컨테이너를 통해 생성된 객체를 빈(Bean)이라 부름.

9)Spring Bean 의 Scope 에 대해서 정리해보자.
Bean Scope는 Bean 이 존재할 수 있는 범위를 뜻하고, 싱글톤, 프로토타입, request, session, application 등이 있다.

728x90


10) Spring에서 CORS 에러를 해결하기 위해서는 어떻게 해야할까?
Servlet Filter를 사용하여 커스텀한 CORS(Cross-Origine Resource Sharing) 설정을 한다.
WebMvcConfigurer 를 구현한 Configuration 클래스를 만들어서 addCorsMappings()를 재정의 한다.
Spring Security에서 CorsConfigurationSource를 Bean으로 등록하고 config에 추가한다.

11) Bean 객체에 대해서 정리해보자
 Java 에서의 POJO(Plain Old Java Object) 로 XML 설정파일을 통한 생성주기, 종속성 등의 메타데이터를 가지고 Spring 컨테이너에서 생성된 객체를 말함. 
컨테이너에서 생성되었다는 점을 제외하면, 일반 Java 객체와 같음.

오늘의 블로그는 여기까지고요, 
항상 믿고 봐주셔서 감사합니다. 

728x90
300x250