티스토리 뷰

Spring

Spring - MVC

엔꾸꾸 2019. 6. 10. 19:49

Spring - MVC

Spring MVC 란 ?

  • Spring MVC 란 현재 가장 많이 사용하는 개발 패턴중 하나인 MVC패턴에서 따온것이다.
  • Spring Framework를 MVC 패턴 개발시 편리하게 개발 가능하도록 제공한다.
  • 일반적으로 Model View Controller의 형태로 제공하며
  • 최근에는 프론트와 백엔드의 서버분리 (스케일링이슈) 가 추세이다.

프론트와, 백엔드 왜 분리할까 ?

  • 일반적으로 개발하는경우 모놀리틱 아키텍처를 따른다
  • 백엔드와, 프론트가 하나의 서버에서 서비스 되는 것을 의미한다.
  • 스프링 개발자라면 일반적으로 JSP 또는 타임리프 등 템플릿엔진을 사용한 모놀리틱 구성의 개발을 주로 해왔을것이다.

그렇다면 프론트서버와, 백엔드서버 대체 왜 분리하는것일까 ??

  1. 스케일링이슈
  • 프론트서버와 백엔드 서버를 분리하는 이유중 하나는 스케일링이슈때문이다.
  • 스케일링 이슈란 ?
    • 프론트 서버와 백엔드 서버가 분리되어있다면, 프론트서버 요청이 많은경우 프론트서버만 증설, 백엔드 서버의 요청이 많은경우 백엔드서버만 증설하면된다.
    • 하지만 모놀리틱 구성이라면? 프론트서버와 백엔드 서버의 요청을 하나의 서버에서 처리하기때문에 선택지가 없다.
  1. 프론트와 백엔드의 역할을 명확하게 구분하여 개발

    • 프론트는 프론트가 담당할 역할 (View)
    • 백엔드는 백엔드가 담당할 역할 (데이터처리, DB동기화 및 가공)
    • 각 역할을 명확하게 구분하여 개발이 가능하다.
    • 모놀리틱 구성의 경우 View에 서버단 로직이 들어가는 경우도 발생..(이런 소스보면 매우 화가난다..)
    • 또한 프론트와 백엔드가 분리되어있기때문에 프론트서버에 장애가 나더라도 백엔드는 정상이며 그 반대의 경우에도 동일하다.
  2. 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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함