원씽(One Thing) 법칙 : 낯선 개념들을 한꺼번에 다 적용시키려는 욕심을 버려야 한다.
MSA 프로젝트를 구성하기 위해 처음부터 쿠버네티스를 활용한 구성, 사가 패턴, API Gateway 등 다양한 개념들을 한 번에 적용시면서 프로젝트를 하려고 한다. 한 마디로 레벨에 맞지 않게 프로젝트 목표를 잡는 게 문제다.
제일 빠르게 MSA를 학습하는 방법은 ‘한 번에 딱 하나의 개념만 익히겠다’라는 방식으로 접근해야 한다. 그렇게 아주 간단한 프로젝트에서 하나씩 하나씩 살을 덧붙여간다는 느낌으로 학습을 해야 한다. 사실 이 공부 방법은 모든 기술을 학습할 때 다 통용되는 방법이다.
이 강의는 MSA에서의 수많은 개념을 하나씩 하나씩 다룸으로써, 비전공자도 충분히 따라올 수 있게 구성했다. 이 강의를 완강할 때쯤 되면 MSA에 있는 많은 개념들을 한꺼번에 적용시켜서 프로젝트를 구성할 수 있게 될 것이다.
플레이그라운드(Playground) 법칙 : 연습할 수 있는 환경을 만들어야 한다.
어떤 개념을 빠르게 습득하려면 그 개념을 자주 쓸 수 있는 환경을 만들어야 한다. 가장 좋은 방법 중 하나는 개인 프로젝트를 할 때 MSA 방식으로 구성해서 서비스를 개발하고 운영해보는 것이다. 아주 작은 규모의 프로젝트이더라도 MSA로 구성해서 서비스를 개발하고 배포해서 운영하는 경험을 해보면 MSA를 정말 빠르게 이해할 수 있게 된다.
스몰 스타트(Small Start) 법칙 : 최대한 작은 규모의 프로젝트에서 연습해야 한다.
많은 분들이 잘못 생각하고 있는 것 중 하나가 프로젝트는 규모가 커야된다고 생각하는 점이다. 내가 새로운 개념을 처음 학습할 때는 무조건 가장 심플한 구조의 프로젝트에서 적용을 시켜봐야 한다. 괜히 욕심부린답시고 복잡한 도메인에 구현해야 하는 API 개수도 많은 프로젝트에서 MSA를 적용시키려고 하면 막막하게만 느껴질 것이다.
따라서 정말 간단한 도메인이면서도 정말 딱 필요한 최소한의 API 개수로만 이루어진 프로젝트에서 MSA 개념을 하나씩 적용시켜보는 걸 추천한다. 이 강의도 최소한의 기능만 구현되어 있는 프로젝트에서 MSA 개념을 적용시키는 방식으로 진행할 예정이다.