본문 바로가기

MSA4

모놀리식과 MSA 방식은 어떻게 다른가 들어가기 프로젝트를 진행할 때마다 항상 갖는 궁금증이 있었다. 다른 언어를 주로 사용하는 사람들끼리는 프로젝트를 어떻게 함께 진행할까? 전체 기능 중 일부만을 수정하기 위해 전체 기능을 담당하는 사람들이 이를 인지하고 대비하여야 하는 것인가? 수백 명의 백엔드 개발자들이 하나의 커다란 프로젝트로만 진행을 할 수밖에 없는 것인가? 이러한 것들을 해결하기 위한 방식이 바로 MSA인 것이다. MSA는 'Mircro Service Architecture'의 약자로 기준 별로 애플리케이션들이 분리되어 전체 서비스를 이루는 개발 방식이다. 그렇다면 MSA를 사용하기 전인 하나의 거대한 서비스를 가지는 것을 무엇이라 하는가? 바로 '모놀리식 아키텍처'라고 한다. 모놀리식 아키텍처란 용어는 MSA의 반대되는 개념으로 .. 2024. 2. 23.
카프카(Kafka)를 스프링부트와 함께 사용해보자! 들어가기 최근 모놀리식 아키텍처와 MSA( MircroService Architecture)에 대해 공부를 하였다. 모놀리식 아키텍처는 하나의 애플리케이션 안에 서비스의 모든 부분을 담아서 개발을 하는 것이고, MSA는 서비스의 기능별로 다른 서버를 두어 각각의 애플리케이션으로 개발하는 것이다. 이러한 MSA는 기능별로 독립된 서버이기에 서로의 의존성을 낮추고 나눠서 개발할 수 있으며, 단위테스트가 용이하다는 장점이 있다. 단점으로는 모놀리식 아키텍처보다 훨씬 복잡하다는 점이 있다. 그렇다면 MSA 방식으로 기능을 구현한 애플리케이션들 간에는 어떻게 소통이 이루어질 수 있을까? gateway를 통해 서로 간의 api를 호출하는 방식이 있고 메시지를 주고받아 소통을 하는 방식이 있다고 한다. 메시지 처리 .. 2023. 12. 14.
카프카(Kafka)는 어떻게 사용하는가? 들어가기 최근 모놀리식 아키텍처와 MSA( MircroService Architecture)에 대해 공부를 하였다. 모놀리식 아키텍처는 하나의 애플리케이션 안에 서비스의 모든 부분을 담아서 개발을 하는 것이고, MSA는 서비스의 기능별로 다른 서버를 두어 각각의 애플리케이션으로 개발하는 것이다. 이러한 MSA는 기능별로 독립된 서버이기에 서로의 의존성을 낮추고 나눠서 개발할 수 있으며, 단위테스트가 용이하다는 장점이 있다. 단점으로는 모놀리식 아키텍처보다 훨씬 복잡하다는 점이 있다. 그렇다면 MSA 방식으로 기능을 구현한 애플리케이션들 간에는 어떻게 소통이 이루어질 수 있을까? gateway를 통해 서로 간의 api를 호출하는 방식이 있고 메시지를 주고받아 소통을 하는 방식이 있다고 한다. 메시지 처리 .. 2023. 12. 9.
도커 스웜(Docker Swarm)을 통해 여러 서버를 운용해보자(로드 밸런싱, 도커 컴포즈, 스택 등) 들어가기 서버를 배포할 때 항상 나오는 용어가 있다. '로드 밸런싱'. 로드 밸런싱은 사용자의 요청으로 발생한 트래픽을 하나의 서버만이 아니라 여러 서버가 나눠서 받는 것을 말한다. 이러한 로드 밸런싱을 통해 하나의 서버로 트래픽이 몰려 과부하가 걸리는 것을 방지할 수 있다. 로드 밸런싱을 이루는 방법은 다양하게 있는데, 그중 오케스트레이션 도구를 사용하는 것이다. '오케스트레이션 도구'란 여러 개의 서비스를 연결하여 커다란 클러스터로 만들어 관리하는 것으로 배포, 관리, 확장, 네트워킹을 자동화할 수 있다. 여러 개의 서비스는 같은 서비스가 여러 개 일 수 있다는 말이고, 트래픽을 여러 서버가 나눠서 받는 로드 밸런싱을 구현할 수도 있다. 서버 내의 서비스가 포화상태면 서버를 병렬로 추가하여 쉽게 확장.. 2023. 12. 4.