티스토리 뷰
Spring - MVC
Spring MVC 란 ?
- Spring MVC 란 현재 가장 많이 사용하는 개발 패턴중 하나인 MVC패턴에서 따온것이다.
- Spring Framework를 MVC 패턴 개발시 편리하게 개발 가능하도록 제공한다.
- 일반적으로 Model View Controller의 형태로 제공하며
- 최근에는 프론트와 백엔드의 서버분리 (스케일링이슈) 가 추세이다.
프론트와, 백엔드 왜 분리할까 ?
- 일반적으로 개발하는경우 모놀리틱 아키텍처를 따른다
- 백엔드와, 프론트가 하나의 서버에서 서비스 되는 것을 의미한다.
- 스프링 개발자라면 일반적으로 JSP 또는 타임리프 등 템플릿엔진을 사용한 모놀리틱 구성의 개발을 주로 해왔을것이다.
그렇다면 프론트서버와, 백엔드서버 대체 왜 분리하는것일까 ??
- 스케일링이슈
- 프론트서버와 백엔드 서버를 분리하는 이유중 하나는 스케일링이슈때문이다.
- 스케일링 이슈란 ?
- 프론트 서버와 백엔드 서버가 분리되어있다면, 프론트서버 요청이 많은경우 프론트서버만 증설, 백엔드 서버의 요청이 많은경우 백엔드서버만 증설하면된다.
- 하지만 모놀리틱 구성이라면? 프론트서버와 백엔드 서버의 요청을 하나의 서버에서 처리하기때문에 선택지가 없다.
-
프론트와 백엔드의 역할을 명확하게 구분하여 개발
- 프론트는 프론트가 담당할 역할 (View)
- 백엔드는 백엔드가 담당할 역할 (데이터처리, DB동기화 및 가공)
- 각 역할을 명확하게 구분하여 개발이 가능하다.
- 모놀리틱 구성의 경우 View에 서버단 로직이 들어가는 경우도 발생..(이런 소스보면 매우 화가난다..)
- 또한 프론트와 백엔드가 분리되어있기때문에 프론트서버에 장애가 나더라도 백엔드는 정상이며 그 반대의 경우에도 동일하다.
-
MSA 아키텍쳐에 적합하다
- MSA 아키텍쳐란 MicroServiceArchitecher
- 서비스 단위로 잘게 쪼개여 개발하는 것을 의미한다.
- 인사담당서비스, 결제관련서비스, 주문관련서비스 등등.. 이 서로 분리되어있다.
- 인사담당 서비스에서 장애가 발생하더라도 나머지 서비스들은 정상적으로 이용이 가능하다.
그렇다면 장점만 존재하는가 ?
- 정답은 NO
- 단점도 명확히 존재한다.
- 복잡도증가, CORS 이슈 발생 … 등등
- 서비스 규모에따라 규모대비 비용 증가 등 단점도 존재한다.
정리
- 이번 포스트에서는 스프링 MVC의 매우 간략한 소개 및 프론트와 백엔드 대체 왜 분리하는것인가에 대해 정리해보았다.
- 다음 포스트에는 스프링 MVC의 구성요소에 대해 살펴보자
'Spring' 카테고리의 다른 글
Spring - MVC 서블릿 (0) | 2019.07.04 |
---|---|
Spring - MVC 구성요소 (0) | 2019.06.28 |
Spring - PSA (0) | 2019.05.19 |
스프링 AOP - 2 (0) | 2019.05.12 |
스프링 AOP -1 (0) | 2019.05.04 |
댓글