[도서 리뷰] 클라우드 네이티브 애플리케이션 디자인 패턴

Book Review

수 많은 애플리케이션들이 클라우드 분야로 쏟아져 들어오는 가운데 경험이 전무한 상태에서 개발하고자 하는 애플리케이션에 적합한 구조 등을 알지 못하여 시행착오를 겪는 경우가 많다.
용어나 개념도 확실히 정립되지 않은 부분도 많은지라 검색을 해서 해결하기 힘든 경우도 많다.

이 책을 통하여 클라우드 어플리케이션을 개발 시 유용하게 사용할 수 있는 7가지 설계 패턴들을 배울 수 있으며, 어떤 기술 스택을 사용하고, 어떤 구조를 사용할지에 대해 방향성을 잡을 수 있다.

‘클라우드 네이티브 아키텍쳐’란 비즈니스 기능별로 독립적인 마이크로서비스들이 느슨하게 결합된 소프트웨어 애플리케이션을 통칭하는 말이다.

클라우드 환경이 제공하는 민첩함, 신뢰성, 경제성, 확장성 등의 장점 덕분에 네이티브 애플리케이션 개발이 점점 더 각광을 받고 있으며, 최근 주목하는 부분은 애플리케이션의 배포 및 운영 측면이다.

이 책에서는 API와 데이터, 이벤트, 스트림 기반 패턴을 기반으로 최소의 비용과 시간, 노력으로 애플리케이션을 관리하고 유지보수 할 수 있는 방법들을 습득할 수 있다.

다음과 같은 8개의 장으로 나뉘는데 각 장을 통해 클라우드 네이티브에 어떤 식으로 접근해야할지에 대해 체계적으로 설명하고 있다.


1장. 클라우드 네이티브란?
클라우드 네이티브 애플리케이션(이하, 애플리케이션)의 주요 특성에 대해 설명하고 있으며, 디자인 패턴이 왜 중요한지 설명하고 있다.

2장. 통신 패턴
애플리케이션을 만들 때 주로 사용할 수 있는 통신 패턴과 구현 기술에 대해 설명하며, 동기/비동기 통신에 사용 되는 기본 패턴 등을 배울 수 있다.

3장. 연결 및 구성 패턴
마이크로 서비스들을 다른 마이크로서비스나 애플리케이션과 연결하는 여러 패턴들을 설명하고 있다. 서비스 구성 패턴을 이용하여 서비스들을 통합하고 비즈니스 기능을 만드는 방법을 배운다.

4장. 데이터 관리 패턴
애플리케이션의 데이터 관리 패턴을 설명하며, 어떤 데이터 스토어를 사용할지, 데이터 구성을 통해 애플리케이션의 확장성과 신뢰성, 성능 최적화를 지원할 수 있는 데이터 통합 방법을 배울 수 있다.

5장. 이벤트 기반 아키텍쳐 패턴
애플리케이션을 활용한 이벤트 기반 아키텍쳐를 만드는 디자인 패턴을 설명하고 있으며, 기본적인 이벤트 전달, 이벤트 소싱, 다양한 비동기 애플리케이션 간에 이벤트들을 어떻게 조율하는지 배울 수 있다.

6장. 스트림 처리 패턴
상태 (stateful), 무상태 (stateless) 애플리케이션 모든 곳에서 대규모 이벤트 스트림을 어떻게 처리할 수 있는지 설명하고 있으며, 실시간 애플리케이션에서 오류 발생 시 메모리에 저장된 상태 정보를 어떻게 보호하고 신뢰성을 구현하는지 배울 수 있다.

7장. API 관리 및 사용 패턴
API 관리에서 가장 많이 사용하는 패턴 몇 가지를 살펴보며, 웹 애플리케이션이나 모바일 애플리케이션, 데스크탑 애플리케이션과 같이 API를 사용하는 프론트앤드 애플리케이션에서 주로 사용하는 몇 가지 API 사용 패턴을 배울 수 있다.

8장. 실례로 살펴보는 클라우드 네이티브 패턴
서로 다른 목적으로 실제 구현된 애플리케이션들을 통해 다양한 패턴을 배울 수 있다.


최근들어 과거와 같이 모놀리틱한 서비스에서 탈피하여 마이크로 서비스를 구성하여 서비스를 운영하는 경우가 대세를 이룸에 따라 나도 새로 도입되는 기능이나, 기존 모놀리틱 서비스 중 떼어낼 수 있는 부분에 대해 마이크로 서비스로 전환을 하고 있다.

서비스 개발이나 운영 모든 측면이 기존의 그것과는 다르기에 시행착오를 많이 겪을 수밖에 없었고, 어찌어찌 돌아가기는 하나 ‘이게 맞나’ 싶은 부분 애매한 부분들도 많이 있었던 터라 이 책의 내용들이 더 소중하게 다가왔다.

좀 더 나은 클라우드 애플리케이션을 개발 할 수 있을 것 같아 마음도 가벼워졌다.

책의 목차를 보고 든 생각은 “내용이 아주 ‘빽빽’ 한것이 전체적으로 한 번 가볍게 훑어본 되 내가 필요한 부분만 찾아서 해답을 얻는 ‘바이블’의 역할도 톡톡히 해줄 것 같다.” 이다.

현재 진행중인 프로젝트에 책의 내용을 바로 적용해보고 있다.

[한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.]