본문 바로가기

소프트웨어-이야기/프로그래밍 언어와 프레임워크

12월의 추천 서적: 마이크로서비스 아키텍처 구축 가이드

실무에서 고민했던 것들이 축약되어 쓰여있는 책이다. MSA 뿐만 아니라, 외부 시스템을 연동할 때 고민해야 하는 요소들이 포함되어 있다. 이 책을 통해 실무에서 사용했던 패턴들이 무엇이었는지 제대로 인지할 수 있어서 좋았다.

MSA 패턴을 경험해본 적이 없거나, 초기 적용 단계라면 이 책이 많이 유용할 것 같다. 애플리케이션 패턴의 장/단점들이 꼼꼼히 작성되어 있고, 예제 사례가 실무와 똑같은 경우도 있다. (낯익은 코드가 나타나서 흠칫했다.)

MSA 패턴 혹은 외부 시스템 연동이 많은 시스템을 운영하고 있는 개발자라면, 이미 아는 내용들일 것이다. 그런데 가볍게 리마인드 하면서 훑어보기 좋을 것 같다. (후루룩 읽으면 2주 이내에 읽을 수 있다.)

나의 경우에는 책의 이론/예제와 내가 경험했던 실무 사례를 비교해 보면서 읽어보니 재밌었다. 이 전에 경험했던 케이스는 어떤 단계였는지, 이후에 개선된 케이스는 어떤 단계였는지. 내가 다루고 있는 시스템에 이 예제를 적용할 수 없는 이유는 무엇인지 등등을 생각해 보니 재밌었다. 

책을 읽으면서, 내 경험과 비교하며 적어둔 글은 다음과 같다. 

책의 "7장. 서비스 개발하기" 챕터에는 로그인, 보상 트랜잭션, polling api 등의 개념이 나온다. 이 부분도 실무와 유사하고, 재밌는 부분이 많았다. 그래서 책을 읽으며 떠올랐던 사례를 정리해보고 싶었다. 그러나 포스팅을 3개나 작성하고 나니 체력이 고갈되어, 여기에 후루룩 정리해보고자 한다. 

  • 인증/인가
    • 최근에 정리했던 JWT 토큰을 사용한 인증시스템 사례 글에서는, access token으로만 로그인을 하는 사례를 정리해두었다.
    • 그런데 강제로 로그아웃을 하는 기능이 필수라면, refresh token과 글로벌 저장소가 필요하겠다는 생각이 명확하게 정리되었다.
      • access token 만료시간을 짧게 두고, refresh token으로 로그인을 유지시켜도 되는지 확인하는 로직이 필요하겠다는 생각이 들었다.
  • 이벤트를 사용한 트랜잭션 실행 패턴 (p.381)
    • polling API가 주기적으로 API를 호출하고, EDA 기반으로 데이터를 완성해가는 예제가 나온다.
    • 결제사에서 결제모듈을 띄울 때, 주기적으로 API를 호출해서, 데이터가 완성되었는지 체크하는 패턴이 생각났다. (참고)

이 패턴이 궁금하다면, 커머스 사이트 결제화면에서 카카오페이를 선택한 후, 개발자도구로 polling API가 호출되는 형태를 구경해보면 된다.

 

그리고 MSA으로 분할된 시스템을 붙이는 방법에 대한 현업 노하우가 잘 작성되어있다. 예를 들어, 도메인 서비스와 어드민 화면을 매핑하는 순서가 일치하지 않는다면, 현업 담당자와 조율하여 데이터를 노출시키는 순서를 조정하면 된다거나.. 이런 팁들이 적혀있다. 그런데 실제로 일을 하면서 이런 조정을 했던 경험이 있던지라, 실무 요약서 같아서 좋았다.