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

류슬기·2021년 4월 15일
0

MSA

목록 보기
1/3
post-thumbnail

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

마이크로서비스 아키텍처

backend, frontend 나눠서 개발

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

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

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

그래프구조

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

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

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

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

Pub-Sub구조

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

  • 웹 컨테이너 : web(html) + container(컴포넌트의 집합)
  • 배포 : 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로 데이터 응답과 요청이 잘 적용되었던 것


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

profile
FE Developer🌱

1개의 댓글

comment-user-thumbnail
2021년 11월 29일

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

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

답글 달기