기술면접

SpringBoot 관련 기술 면접

2주녘 2024. 1. 25. 17:41
반응형
Q. WAS에 대해 간략하게 설명해보세요.
WAS(Web Application Server)는 웹 애플리케이션 서버를 의미하며,
클라이언트의 요청에 따라 동적인 웹 페이지를 생성하거나 비즈니스 로직을 처리하는 서버입니다.
주요 기능으로는 동적 컨텐츠 처리, 비즈니스 로직 실행, 웹 서버와의 연동, 세션 관리, 데이터베이스 연결,
보안 기능등을 제공합니다.

WAS의 예로는 Apache Tomcat, IBM WebSphere, Red Hat JBoss, Microsoft IIS 등이 있습니다.

 

 

Q. 서블릿에 대해 설명해보세요.
서블릿(Servlet)은 Java를 사용하여 웹 페이지를 동적으로 생성하는 서버 측 프로그램입니다.
주로 HTTP 요청을 처리하고 응답을 생성하는데 사용됩니다.
서블릿의 주요 특징은 생명주기 관리, HTTP 요청 처리, 스레드 기반 처리, 상태 비저장(Stateless)이 있고
작동방식은 웹 서버와 함께 작동하는 웹 컨테이너(예: Apache Tomcat, Jetty) 내에서 실행됩니다.

 

Q. Spring Boot란?
Spring은 자바 기반 웹 애플리케이션 개발을 돕는 프레임워크이고,
Spring Boot는 Spring을 더 쉽게 사용할 수 있게 하는 프레임워크

 

Q. IoC에 대해 설명해보세요.
IoC는 제어의 역전이라는 의미의 단어입니다.
객체의 생명주기 관리를 개발자가 아니라 IoC 컨테이너가 모두 맡아서 한다는 것이며,
실행의 제어권이 개발자에서 스프링 부트 프레임워크로 넘어갔다는 의미에서 제어의 역전이라고 부릅니다.
IoC 컨테이너가 관리하는 객체들은 모두 싱글톤 패턴으로 관리되며, bean 객체라고 부릅니다.

 

Q. DI에 대해 설명해주세요
DI는 의존성 주입이라는 의미의 단어입니다.
클래스가 자신이 사용할 객체를 직접 생성하지 않고, IoC 컨테이너가 관리하는 bean 객체를 가져와서 사용하는 것
Autowired라는 어노테이션을 통해 DI를 설정할 수 있으며, 해당 대상이 IoC 대상으로 등록되어 있지 않다면 가져올 수 없습니다.

 

Q. REST API에 대해 설명해주세요.
자원을 이름 등으로 구분하여 해당 자원에 대한 데이터를 주고받는 시스템을 REST API라고 합니다.
정보를 요청할 때에는 GET, 정보를 추가 할때는 POST, 정보를 삭제할 때에는 DELETE, 정보를 수정할 때에는 PUT이나 PATCH 매핑을 사용합니다.

 

 

Q. MVC 패턴에 대해 설명해주세요
MVC 패턴은 사용자 인터페이스로부터 비즈니스 로직을 분리해서 서로 간의 영향을 받지 않도록 하는 소프트웨어 디자인 패턴입니다.
DB 데이터를 가진 객체인 모델과, 화면을 처리하는 뷰와, 모델과 뷰를 연결하는 컨트롤러로 나눠집니다.

 

 

Q. AOP에 대해 설명해주세요
AOP는 관점 지향 프로그래밍이라는 의미의 단어입니다.
프로그램의 여러 지점에서 반복적으로 사용되는 코드를 분리해서 모듈화하는 것입니다.
핵심적인 코드와 부가적인 코드를 분리함으로써, 핵심 기능에 영향을 미치지 않으면서 부가적인 기능을 제공할 수 있습니다.

 

 

Q. 인터셉터와 필터, AOP의 차이에 대해 설명해주세요
필터
- 스프링에서 제공하는 기능이 아님
- WAS에서 동작
- 스프링 컨테이너의 가장 앞단에 있는 디스패쳐 서블릿에 요청이 도달하기 전과 후에 특정 작업을 수행하도록 함
- 스프링과 무관하게 전역적으로 처리하는 작업을 수행할 때

인터셉터
- 스프링 컨테이너에서 동작
- 스프링에서 제공하는 기능
- 디스패처 서블릿이 컨트롤러를 요청하기 전과 후에 특정 작업 수행

AOP
- 필터와 인터셉터는 주소로 대상을 구분해야 하는데 AOP는 주소 외에도 어노테이션이나 파라미터 등 다양한 방법으로 구분할 수 있어서 비즈니스 로직 단에서도 활용할 수 있음

 

 

Q. AJAX 통신에 대해 설명해주세요.
자바스크립트를 사용해서 비동기적으로 서버와 데이터를 주고받는 기술
필요한 부분만 화면을 갱신하기 때문에, 화면전환이 발생하지 않습니다.

 

 

Q. JSON에 대해 설명해주세요
JavaScript Object Notation
Key-Value 쌍의 데이터를 특정한 구조의 문자열로 표현해서, 데이터를 교환하는 형식
자바스크립트 객체의 형식을 기반으로 만들어진 것이기 때문에 JSON 형식을 쉽게 자바스크립트 객체로 변환할 수 있습니다.

 

 

Q. 템플릿 엔진이 어떤 것인지 설명해보세요.
지정된 템플릿 양식과 데이터가 합쳐져서 HTML 문서를 출력하는 소프트웨어입니다.

 

 

Q. CSR과 SSR의 차이에 대해 설명해주세요
SSR은 서버 측에서 렌더링을 처리하는 방식
서버에서 렌더링을 모두 마친 후 클라이언트에게 보내는 것입니다.

반대로 CSR은 클라이언트 측에서 렌더링을 처리하는 방식입니다.
사용자의 조작에 따라 특정 부분만 렌더링하는 비동기 통신이 CSR에 해당

 

 

Q. 디스패쳐 서블릿이란?
클라이언트가 어떤 요청을 했을 때 스프링 컨테이너의 제일 앞에서 요청을 먼저 받아서 적합한 컨트롤러에게 요청을 위임해주는 프론트 컨트롤러

 

 

Q. advice 어노테이션?
예외 처리를 담당하는 클래스에 붙이는 어노테이션을 말합니다.

 

반응형