본문 바로가기
프로그래밍 공부/Interview

[Interview] Spring

by Luna_lua 2022. 2. 13.
반응형

프레임워크란?

소프트웨어의 설계와 구현을 재사용이 가능하게끔 일련의 협업화 된 형태로 클래스들을 제공


라이브러리

자주 사용되는 로직을 재사용하기 편하도록 정리한 코드들 집합

 

스프링프레임워크

자바플랫폼을 엔터프라이즈급의 프로그램으로 만들기 위해 사용하는 프레임워크

 

스프링과 스프링부트 차이

스프링부트는 톰캣을 포함하고 있기 때문에 매번 버전을 관리할 필요가 없다

xml을 설정하지 않아도 된다.

dependency의 버전을 맞춰주지 않아도 된다(starter가 관리)


Spring 동작방식 

1. DispatcherServlet

애플리케이션으로 들어오는 모든 Request를 받는 부분. Request를 실제로 처리할 Controller에게 전달하고 그 결과값을 받아서 View에 전달하여 적절한 응답을 생성할 수 있도록 흐름을 제어

2. HandlerMapping

Request URL에 따라 각각 어떤 Controller가 실제로 처리할 것인지 찾아주는 역할

3. Controller

Request를 직접 처리한 후 그 결과를 다시 DispatcherServelt에 돌려주는 역할

4. ModelAndView

Controller가 처리한 결과와 그 결과를 보여줄 View에 관한 정보를 담고 있는 객체

5. ViewResolver

View 관련 정보를 갖고 실제 View를 찾아주는 역할

6. View

Controller가 처리한 결과값을 보여줄 View를 생성


스프링프레임워크 특징 (DI, IOC, AOP)

POJO : 자바언어를 사용, 다만 상속과 구현을 없애고 어노테이션을 사용하여 의존도를 낮춤

DI : 객체를 개발자가 생성하지 않고, 클래스를 bean으로 등록 해 놓으면 프레임워크가 알아서 주입

IOC : 제어의 역행으로 제어 주체가 개발자가 아닌 프렘임워크가 모든 객체의 제어권을 가진다.

AOP : 각 코드마다 공통 관심사를 분리해서 모듈화하는 프로그래밍 기법, 객체 내에서도 공통 패턴을 가지고 있다면 코드를 분리하여 관리하는 기술

PSA : POJO 프로그래밍을 지원하기 위해 다양하게 구현되어있는 인터페이스를 같은 방식으로 사용하도록 중간에 인터페이스 어댑터 역할을 해주는 레이어를 추가하는 방법 -> servlet을 상속 받지 않고 @Controller를 사용

 

의존성

현재 객체가 다른 객체와 상호작용을 하고 있다면 현재 객체의 의존


JPA란?

JPA 지금까지 MyBatis와 같이 DB를 맞춰서 사용했다면 이제는 코드가 주체!

메소드로 디비를 관리

 

ORM

객체가 테이블이 되도록 매핑 시켜주는 것


Spring Container의 역할

스프링의 빈을 생성하고 관리. 이를 통해서 스프링의 주개념인 IOC 나 AOP에 대해서 관리하곤 한다


URI, URL, URN이란?

URI : 네트워크 상에 존재하는 자원을 구분하는 식별자(ID)

URL : 네트워크 상에 존재하는 자원의 위치

URN : 자원의 이름


WebServer와 Was차이

웹서버 : html문서와 같은 정적 컨텐츠를 제공해준다. (Apache)

Was : 웹서버와 웹컨테이너를 모두 가지고 있으면서 정적 컨텐츠 뿐만 아니라 동적 컨텐츠도 응답 가능 (Tomcat)

Was만 있어도 되지만 주로 Was는 DB 및 다양한 로직에 집중하기 때문에 웹서버를 같이두어 부하를 막는다.


Rest API란?

mapping으로 데이터 처리하는 방식을 판단하는데

uri에는 어떠한 정보인지 간략하게 명사로만 표현하고, http Method로 어떠한 동작을 하는지 판단

 

Http Method

Create : 생성(Post)

Read : 조회(Get)

Update : 수정(Put, Patch)

Delete : 삭제(Delete)


Vertual Machine과 Container의 차이

가상머신은 하나하나가 컴퓨터처럼 운영체제를 가지고 있으며 작동, 리소스 부하

컨테이너는 운영체제를 공유해서 리소스를 사용

 



영속성 컨텍스트
영속성 컨텍스트의 속성
영속성 컨텍스트의 특징
즉시로딩 지연로딩

+ 패턴디자인이란? 아는것들
+ 동기 비동기
+ 인터셉터란? 어디에 사용되는가?
+ 스프링 시큐어리티란?

<형상관리>
git이란?
git을 사용하는 이유
깃과 깃허브의 차이

반응형

'프로그래밍 공부 > Interview' 카테고리의 다른 글

[Interview] 분야 확인  (0) 2022.01.28
[Interview] DB  (0) 2022.01.28
[Interview] Network  (0) 2022.01.28
[Interview] JAVA  (0) 2022.01.28
[Interview] JS  (0) 2022.01.28