마이크로서비스 아키텍처, 모놀리식 아키텍처

류슬기·2021년 4월 15일
0

MSA

목록 보기
1/3
post-thumbnail

스프링으로 하는 마이크로서비스 구축 책 참고

마이크로서비스 아키텍처

backend, frontend 나눠서 개발

  • 프로젝트의 기능들을 작고 독립적이며 느슨하게 결합 된 모듈로 분해
  • 2개 이상 서버와 DB를 사용하는 방식
  • 서버를 여러개 운영하기 때문에 모놀리식보다 유지비용이 많이 든다.
  • 취약한 보안
  • 개발환경 인프라 구성 : 클라우드 방식

클라우드 방식은 아마존, 구글 등 클라우드 서비스를 임대하여 개발 환경을 구축하는 방식

  • stateless
  • async
  • 개별적인 런타임 프로세스
    • Java -> Tomcat
    • JavaScript -> NPM

그래프구조

node-edge

node를 edge로 연결 하는데 그 가운데에 에지 서버가 존재

  • 에지 서버는 리버스 프록시로 동작
  • 동적 로드 밸런싱 기능을 제공하고자 검색 서비스와 통합

모든 요청이 담겨야 하는 공간이기 때문에 컨테이너가 있어야 한다.
SpringBoot 노드와 React노드 사이에 존재하는 에지 서버는 Tomcat
= RESTful 방식

자바에서 edge = path
React에서 edge = routing

Pub-Sub구조

개발된 각 컴포넌트는 WAR파일로 패키징해서 톰캣과 같은 웹 컨테이너에 배포된다.

  • 웹 컨테이너 : web(html) + container(컴포넌트의 집합)
  • 배포 : Pub-Sub구조
    • Pub-Sub구조 : 비동기 메시징 패러다임

Pub-Sub구조

Scale out

서버를 추가하는 방식(Scale을 Vector화 시키는 것)
마이크로서비스 아키텍처는 플랫폼API에 맞추어 작업하기 때문에 수평 스케일링이 가능

마이크로서비스 디자인 패턴

스프링부트, 스프링 클라우드, 쿠버네티스

모놀리식 아키텍처

Spring MVC

  • 1개의 서버와 DB를 사용하는 방식
    합쳐져 있기 때문에 개발이 용이하고 보안이 좋다.
    그래서 은행에서는 모놀리식 방법을 사용
  • 개발환경 인프라 구성 : 온프레미스 방식

    온프레미스는 인트라넷망을 활용하여 개발환경을 구축하는 방식

추가

Spring과 Jsp
servlet = Server + let
scriptlet = Script + let
let은 작은조각들
원래 server와 script는 한 몸인데 조각들로 이루어져 있기 때문에
따로 fetch, axios 없이 getAttribute로 데이터 응답과 요청이 잘 적용되었던 것

webapp
Spring MVC모델로 설계를 하면 view는 webapp이라는 폴더 아래에 저장하게 된다.
여기서 webapp은 web(html) + app(java) 을 말한다.

profile
FE Developer🌱

1개의 댓글

comment-user-thumbnail
2021년 11월 29일

오 신기한 내용들을 알게 되었네요

모놀로식 아키텍처이면 프론트엔드 서버, 백엔드 서버가 따로 존재하지 않는 구조로 알고 있는데,
jsp나 타임리프는 프론트, 백엔드 협업을 어떤식으로 진행하는지 궁금하네요

답글 달기