클라우드 네이티브 애플리케이션 디자인 패턴
학부 시절과 졸업 이후 제일 달라진 점은 개발도구를 비롯해서 대부분의 프로그램들을 최신버전으로 세팅해서 쓰지 않는 것 같습니다. 업데이트 노트를 보면서 써보고 싶은 기능도 있고, 가려운 점을 긁어주는 기능이 나왔지만 현재 쓰는 주요 라이브러리가 호환이 안되서 못 쓰는 경우가 많은 것 같습니다. 개발 중 라이브러리 뿐 아니라 정말 예기치 못한 곳에서 호환 문제가 생겨서 다시 다운그레이드를 몇 번 한 뒤로 최신버전이 릴리즈 되도 바로 못 올라가고 있는 것 같습니다.
개발론도 아무리 최신 기법이 나오고 새로운 방법이 나와도 레거시한 방법을 무시할 순 없습니다. 개념적으로 레거시한 방법에서 발전되고 변형되면서 나온 방법이거나 대척되는 개념으로 나온 것들이 많기 때문에 레거시를 이해하지 못한채로는 트렌드를 따라가는 것은 쉬운 방법은 아닙니다.
또 소프트웨어가 점점 커지고 복잡해지고 다야한 리소스를 보다 손쉽게 사용할 수 있게 되면서 나온 방법론도 많기 때문에 입문 단계에서는 맞지 않는 방법일 수도 있습니다. 제 입장에서 모놀로식 방법과 이 책에서 다루고 있는 클라우드 네이티브 방법론이 그렇습니다.
클라우드 네이티브 애플리케이션은 탄련적으로 결합된 작은 단위의 독립적인 서비스들의 모음입니다. 프라이빗, 퍼블릭 상관 없이 하이브리드 된 상태의 클라우드 환경에서 지속적인 CI/CD가 이뤄지고 확장성과 가용성이 높은 애플리케이션입니다. 그래서 마이크로서비스가 필수불가결하게 따라오게됩니다. 마이크로서비스는 과거 모놀로식 애플리케이션 처럼 모든 서비스가 거미줄처럼 끈끈하게 연결되어 한 곳의 보수를 위해선 전체적인 구조 개선 등이 필요해서 시간과 비용이 많이 소모되는 것과 달리 확장이나 수정이 필요한 서비스 단위로 컨트롤이 가능하고, 다른 서비스의 생존 유무 관계없이 정상 작동 가능합니다.
그래서 이 책은 과거 모놀로식 애플리케이션에서 클라우드 네이티브 애플리케이션으로 넘어가려고 하거나 처음부터 클라우드 네이브트 형태로 개발을 하려는 분들의 개발 여행의 가이드를 위한 책입니다.
과거 단일한 통신 프로토콜로 전체 프로그램이 돌아갔던과 달리 다양한 프로토콜과 언어, 패턴의 조합으로 애플리케이션이 구성되고 동작합니다. 이 책에서는 그 패턴들을 통신, API, 데이터 관리 등 분류별로 모아서 전체적 개념과 각 패턴의 특징들을 설명하고 있습니다. 입문자면 처음부터 끝까지 한 번 읽으면서 전체적인 감을 잡는 것을 추천하고, 이미 클라우드 네이티브를 도입하고 있다면 본인이 원하거나 관심있는 내용을 발췌식으로 레퍼런스 북 삼아 읽는 방법을 추천합니다.
물론 이 책 하나로 클라우드 네이티브를 이해할 수는 없습니다. 비지니스 로직을 어떻게 서빙할지 결정하는 서비스 단계의 이야기다보니 수 많은 컴퓨터 공학의 기본 지식을 요구합니다. 컨테이너, RPC, 오케스트레이션, 게이트웨이 등 입문자 분들은 용어 부터 낯설 수 있습니다. 이 책으로 용어들을 익히고 탑다운으로 공부 하면서 적용할 수도 있겠지만, 이 책을 제대로 즐기고 누리기 위해선 어느 정도의 학습을 하고 오셔야 합니다.
한빛미디어 2022 도서 서평단 "나는 리뷰어다"
의 일원으로 도서를 제공받아 작성한 리뷰입니다.