MSA
-
Monolith를 MSA로 전환을 계획할때 필요한 세가지Architecture 2020. 11. 21. 17:01
시스템을 오랫동안 운영하다보면 자연스럽게 모노리스가 됩니다. 얼마 안됐는데 코드가 이렇게 많아졌어? 라고 생각하신다면 비즈니스가 잘 성장하고 있다는 의미입니다. (자축하셔도 좋습니다.) 하지만 기쁜 마음도 잠시, 간단한 수정을 하더라도 어디에 Side Impact가 있을지 몰라 주저하는 마음이 든다면 이미 시스템에는 신호등에 빨간불이 들어왔다고 보셔야 합니다. 유지보수의 효율성이 떨어지고 있다는 이야기니까요. 자. 그럼 어떻게 해야 할까요? 특정 부분을 MSA로 분리할때가 온겁니다. 그럼 Monolith를 MSA로 전환을 계획할때 필요한 세가지를 알아보시죠. 1. 조직장으로 부터 꼭! 리소스 지원을 받아야 합니다. MSA 전환이나 서비스 분리는 리소스와 시간을 많이 요구하는 작업입니다. 디펜던시가 크던 ..
-
[MSA] 믿는 enum에 발등 찍힌다.Architecture 2020. 4. 7. 22:41
Enum is evil. Enum은 자바에서 상수(이하 코드)를 선언하는 아주 중요하고 전통있는 방법입니다. 저도 이 부분에 대해서는 이견이 없습니다. 하지만 MSA(마이크로 서비스 아키텍처) 환경의 시스템들 사이에서 Enum이 얼마나 큰 걸림돌로 작용하는지 이야기 하고자 합니다. 자바 베이스 시스템을 기준으로 기술하고 있습니다만, 상수에 대한 이슈는 언어와 프레임워크를 초월하는 것으로 이해하시면 좋겠습니다. REST API에서 코드를 전달할때. 자바 개발자들은 상수를 만들때 Enum 타입으로 만들어야 한다는 강박같은 것이 있습니다. 그런데 이런 강박이 시스템간 통신하는 API의 프로토콜에도 그대로 반영되어 나중에 회사의 개발 속도에 발목을 잡는 일이 발생합니다. MSA에서 API를 손쉽게 연동하기 위해..
-
[MSA] 딜레마 - 처음부터 분리해? 말어?Architecture 2020. 4. 1. 23:37
많은 개발자들이 관심을 가지고 있는 마이크로 서비스 아키텍처(MSA)에 대해서 많은 부분을 이야기를 하려고 한다. MSA는 대규모 시스템을 구축하고 확장하기 위해 할 수 있는 최선의 방법이라고 생각한다. (아직까지는..) 그래서 MSA 구조를 도입해서 운영하는 여러 유명한 회사들(쿠팡, 아마존, 넷플릭스등)이 있다. 하지만, MSA를 이미 도입해서 운영하는 관점에서 새로운 프로젝트를 기획하고 설계할때 맞딱뜨리는 질문이 있다. "이번에 착수하는 프로젝트를 위해서 처음부터 신규 시스템을 구축해야 할까? 아니면, 기존 시스템에 추가해서 만들고 나중에 분리할까?" 두가지 선택에 대한 장/단점을 통해서 좋은 방법이 무엇인지 알아보자. 1. 기존 시스템에 추가하고 나중에 분리하는 방식 장점 첫째, 스피드. 즉, 단..