본문 바로가기

개발 스터디

마이크로서비스 아키텍처(MSA) - #3 마이크로 서비스 아키텍처 IPC IPC(Inter Process Communication)는 프로세스 간 통신이란 프로세스들 사이에 서로 데이터를 주고받는 행위 또는 그에 대한 방법이나 경로를 뜻하는 용어로, 애플리케이션이 여러개의 서비스로 구성되는 마이크로서비스 아키텍처에서 필수적이다. 보통은 JSON 기반의 REST가 많이 사용되지만(MSA가 아닌 일반적인 상황에서) 여러가지 옵션을 고려해서 잘 선택해야 한다. IPC는 다음과 같이 분류될 수 있다. 일대일/ 일대다 여부 일대일 : 각 클라이언트 요청은 정확히 한 서비스가 처리 일대다 : 각 클라이언트 요청을 여러 서비스가 협동하여 처리 동기/ 비동기 여부 동기 : 클라이언트는 서비스가 제시간에 응답하는 것을 가정하고 대기 도중 블로킹할 수 있음. 비동기 : 클라이언트가 블로킹하지 .. 더보기
마이크로서비스 아키텍처(MSA) - #2 마이크로 서비스를 어떻게 분해할 것인가? 마이크로서비스 아키텍처의 핵심은 Y축 분해 즉 기능 분해이다. 그러면 대규모의 단일 애플리케이션을 어떻게 여러 서비스로 구성할 수 있을까? 그리고 마이크로 서비스 아키텍처는 소프트웨어 아키텍처랑 어떤 연관이 있을까? 소프트웨어 아키텍처는 컴포넌트와 그들 간의 의존관계로 엮인 수준의 구조물이며 아키텍처에 따라 소프트웨어의 품질 속성 지표가 결정된다. 예전에는 확장성, 신뢰성, 보안 등의 아키텍처의 목표였지만, 이제는 신속하고 안전하게 소프트웨어를 배포하고 전달하는 것이 중요하다. 마이크로서비스 아키텍처는 그 중 관리성, 테스트성, 배포성이 높은 애플리케이션을 구축하는 데 장점을 가진 아키텍처 스타일이라고 할 수 있다. 마이크로 서비스 아키텍처는 애플리케이션을 느슨하게 결합된 여러 서비스로 구성하는 아키텍처.. 더보기
마이크로서비스 아키텍처(MSA) - #1 모놀리식 아키텍처와 마이크로서비스 아키텍처 모놀리식 아키텍처 기존의 애플리케이션들은 논리적으로 모듈화된 아키텍처라도, 애플리케이션 자체가 WAR 파일 하나로 패키징 된다든지, 시스템을 하나의 실행/ 배포 가능한 컴포넌트로 구성한 모놀리식 아키텍처를 따르는 경우가 많았다. 비교적 규모가 작은 애플리케이션일 때는 모놀리식 아키텍쳐는 다음과 같은 장점을 가질 수 있다. - 개발이 간단. - 통합 테스트가 용이. - 배포가 쉬움. - 애플리케이션을 쉽게 변경 가능. 그러나 애플리케이션 규모가 커지고, 요즘과 같이 비즈니스 요구사항이 빠르게 변하는 상황에서 모놀리식 아키텍처는 한계점을 가진다. 1. 코드베이스가 복잡해짐 : 시간이 지날 수록, 애플리케이션 규모가 커지면 특정 개발자가 모든 코드를 다 이해하기가 힘들어지고, 대규모 개발 조직이 단일 코드베이.. 더보기
마이크로 서비스 아키텍처(MSA) - #시작 그동안 공부했던 것을 혼자 노션으로만 정리했었는데, 이제 블로그에 정리해보려고 한다. 누가 이 글을 읽을지는 모르겠으나, 내가 이해한 바를 남에게 최대한 이해하기 쉽게 설명할 수 있도록 할 것이다. 이런 목적을 가지고 정리한다면 공부를 보다 꼼꼼히 하고 완벽하게 할 수 있을 것 같다. 스터디는 마이크로 서비스 패턴 책(http://www.yes24.com/Product/Goods/86542732)으로 진행할 것이며, 각 장의 내용을 이해하고 블로그에 핵심 내용을 정리해보려고 한다. 더보기