Microservice와 Monolith 선택 가이드

 

우선 이 글을 읽기전에 이전에 작성했던 글을 먼저 읽어 보길 바랍니다.

  • 마이크로 서비스에 대해서 생각해보기

프로젝트를 시작할 때 기술 스택에 대해서 고민을 합니다. 아키텍처 관점에서는 크게 두 가지가 있습니다. 일반적으로 “마이크로서비스” 또는 “모놀리식” 둘 중 하나를 선택을 합니다.

위 두가지 중에 어떤 아키텍처를 선택해야 할까요? 본 글에서는 모놀리식 아키텍처와 마이크로서비스 아키텍처를 선택하는 방법에 대해서 언급하려고 합니다.

모놀리식 아키텍처와 마이크로 서비스 아키텍처 선택하기

두 가지 접근 방식은 고유한 장/단점을 지니고 있습니다. 백엔드 아키텍처를 선택할 때 선택의 자유가 있다는 얘기입니다. 그러나 우리는 선택을 해야 하고, 방향을 결정 할 때, 도움이 되는 몇 가지 질문을 생각해보세요.

익숙한 분야의 비즈니스인지?

고객의 니즈와 업무 도메인을 알고 있는 상황에서 일할때에는 명확한 설계가 용이합니다. 하지만 새로운 비즈니스에서는 달라집니다. 비즈니스가 익숙치 않기 때문에 고려해야 할 요소의 양이 많기 때문입니다.

따라서 마이크로 서비스 아키텍처를 사용하는 것은 비즈니스를 완전히 이해하는 경우에 적합합니다. 그렇지 않으면 모놀리식 방식으로 진행하는 것이 좋습니다.

Team은 준비되어 있는지?

팀원들이 마이크로 서비스를 구현하는 방법을 모두 숙지하고 있는지 확인을 해야 합니다. 아니면 모놀리식의 단순성내에서 작업하는 것을 더 선호하는지에 대해서도 확인해야 합니다. 과거 프로젝트를 수행시 고객사의 팀원들은 마이크로 서비스보다 모놀리식 방식으로 개발 하는 것을 더 선호했습니다. Lerning Curve 기간이 끝난후에는 괜찮아졌지만, 이에 대해 시간을 할애하거나 팀원들이 새로운 기술을 받을 수 있는 준비가 되었는지를 고려해야 합니다. 이 질문에 대해 답을 할 수 있으면 마이크로 서비스를 선택하세요.

인프라 환경은 준비되어 있는지?

마이크로 서비스는 개발에서 배포에 이르기까지 클라우드 기반 인프라를 사용하는 것이 유리합니다. 당신이 속한 곳에서 클라우드 환경을 이용할 수 있는지 확인해보세요.

비즈니스의 위험을 평가했나요?

대부분의 기업은 마이크로 서비스가 자신들의 비즈니스에 적합하다고 생각합니다. 하지만, 그들이 만든 애플리케이션이 비즈니스적으로 기대한 만큼 성장하거나 확장되지 않을 가능성이 존재합니다. 비즈니스가 계속 성장하고 확장될 수 있다라는 확신이 들면 마이크로 서비스를 선택하시길 바랍니다.

모놀리식은 언제 선택하나요?

  • 팀이 최초 만들어졌을때
  • 비즈니스 PoC를 진행 할 때
  • 마이크로 서비스에 대한 경험이 없는 경우

마이크로 서비스는 언제 선택하나요?

  • 독립적으로 빠른 배포가 필요할 때
  • 비즈니스를 확장하거나 팀을 확장해야 할 때
  • 매우 효율적인 플랫폼을 구축해야 할 때
  • Waterfall과 같은 방식이 아니라 Agile방식으로 서비스를 진화시켜야 할 때
  • 프로젝트 기간이 촉박하지 않을 때

결론

마이크로 서비스와 모놀리식을 현 시장에서 비교하자면 전자가 Hot하다는 것은 부정할 수 없습니다. 대부분의 의사결정권자들은 자신의 애플리케이션이 마이크로 서비스 아키텍처를 기반으로 한다고 말하고 싶어합니다. 그러나 마이크로 서비스에만 집중하고 비즈니스 도메인과 역량을 고려하지 않는다는 것은 위험하고 위의 질문들을 기반으로 마이크로 서비스가 줄 수 있는 실제 가치를 측정해야 합니다.

가장 현명한 접근 방식은 모놀리식으로 접근하여 새로운 애플리케이션을 개발하고 운영을 하면서 “성능 모니터링”, “비즈니스 확장성”등과 같은 백데이터를 근거로 마이크로 서비스의 정당성을 확보한 경우에 이동하는 것입니다. (물론, 모놀리식으로 개발을 하더라도 Package단위로는 서비스가 분리되는 것이 좋겠지요. 미래를 위해…)

기존 비즈니스의 경우, 비즈니스가 익숙한 상황이고 티밍이 되어있고 비즈니스가 확장되고 있다면, 마이크로 서비스를 고려할 수 있습니다. 그러나 스타트업이나 새로 시작하는 회사에서는 마이크로서비스를 채택하면 성공에 부정적인 영향을 미칠 가능성이 높습니다.

위에 언급한 내용을 보시고 잘 판단하셔서 아키텍처를 선정 하시길 바랍니다.

잠깐, 글이 유익했나요?

Buy Me A Coffee