클라우드 네이티브 애플리케이션 디자인 패턴 - 애플리케이션의 배포와 운영을 고려한 7가지 설계 패턴
카순 인드라시리.스리스칸다라자 수호타얀 지음, 박수현 옮김 / 한빛미디어 / 2022년 6월
평점 :
장바구니담기


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

애플리케이션에 대한 설계 패턴에 대해 공부해볼 수 있는 책이다.

총 8장으로 구성된 이 책은 주로 클라우드 네이티브 애플리케이션에 대한 비즈니스 로직을 개발할 때 반드시 적용해야 하는 개발 패턴을 다룬다.

이러한 다양한 패턴들이 어떤 차이가 있고 장/단점은 무엇인지를 공부해볼 수 있다.

1. 클라우드 네이티브 애플리케이션이란?

퍼블릭, 프라이빗, 하이브리드, 멀티 클라우드와 같은 환경에서 실행할 수 있는 독립적인 비즈니스 기능 중심의 마이크로서비스들을 느슨하게 결합하여 크기 조절이 가능하고 탄력적이며 관리와 용이한 자동화 소프트웨어 애플리케이션을 만드는 것이라고 정의할 수 있는데, 이는 사람과, 기관에 따라 서로 다른 의미를 가진다.

본격적인 설계 패턴들에 대해 공부하기 전 클라우드 네이티브에 대한 개념과 특징, 요소와 애플리케이션을 만들 때 디자인 패턴의 중요성을 다룬다.

2. 통신 패턴

클라우드 네이티브 애플리케이션을 만들 때 주로 사용할 수 있는 통신 패턴을 다룬다.

통신 패턴은 마이크로서비스들 간에나 외부 시스템 혹은 애플리케이션 등과 같이 애플리케이션을 사용하는 다른 애플리케이션과의 통신 채널을 만들 때 사용한다.

동기, 비동기 통신의 기본적인 통신 패턴에 대한 동작방식과 함께 이 통신 패턴을 이루는 여러 패턴과 매체들을 상세하게 소개하며 이들이 어떠한 방식으로 서로 상호작용하는지 공부해볼 수 있다.

또한 통신 패턴을 설계하면서 고려해야 하는 사항들도 같이 정리해볼 수 있어 설계 과정에 놓칠 수 있는 부분들도 이 책을 통해서 다시 리마인드 해볼 수 있다.

3. 연결 및 조합 패턴

마이크로서비스들을 다른 마이크로서비스나 애플리케이션과 연결하는 다양한 패턴을 공부해볼 수 있다.

특히 서비스들을 연결하여 이 서비스들 간의 기능을 조합해서 우리가 만들고자 하는 비즈니스 기능을 제공할 수 있다.

특히 이 장에서는 그림을 통해 각 패턴들 간의 동작방식을 소개하여 이해하기 쉽도록 구성되어 있다.

또한 추후 서비스를 연결하여 비즈니스 기능을 클라이언트들에게 제공해야 할 때 고려해볼 수 있도록 한다.

마이크로서비스 혹은 다른 애플리케이션 간의 연결에 네트워크를 사용할 수 없는 상황 속에서 어떻게 탄력적으로 연결하는 지에 대한 기법에 대한 이해는 실 업무에서도 많은 도움이 될 것이라고 생각된다.

4. 데이터 관리 패턴

클라우드 네이티브 애플리케이션에서의 데이터와 데이터를 관리하는 방법에 대해 알아본다.

데이터 아키텍처가 무엇이고, 어떻게 데이터를 모아서 처리하고 저장하는 흐름을 공부해볼 수 있다.

또한 데이터의 구조와 크기 등을 여러 관점에서 살펴보는데, 이후에는 데이터 관리 시에 어떤 저장소를 사용할 수 있는지를 소개한다.

이후에는 실제로 여러가지 다양한 패턴을 소개하며, 데이터를 중앙집중화하고 분산처리, 데이터 조합, 캐싱, 관리, 성 최적화, 신뢰성, 보안 등의 요소를 다루어 데이터를 어떤 방식으로 설계할 수 있는지 점차 이해도를 높일 수 있다.

5. 이벤트 주도 아키텍처 패턴

동기와 다른 비동기로 동작하는 이벤트 주도 아키텍처를 낮은 결합도로 개발하여 확장도 쉽고 대규모 분산 처리를 할 수 있는 기본 구조인 이벤트 주도 아키텍처에 대한 개념을 시작으로 내용을 다룬다.

또한 이 장에서 가장 많이 등장하는 이벤트라는 용어를 예시로 소개하고 이벤트를 어떤 목적에서 다루는지도 정리해볼 수 있다.

이벤트와 관련된 내용에서 아마 가장 많이 들어본 개념인 이벤트를 소비자에게 전달하는 방식인 최대 한번 전달, 최소 한번 전달, 딱 한번 전달의 개념도 정리해볼 수 있다.

또한 메시지와 브로커의 역할과 여러 패턴들의 동작방식, 사용방법, 고려사항 등이 잘 정리되어 있다.

6. 스트림 프로세싱 패턴

스트림과 스트림 프로세싱이란 용어에 대한 이해를 시작으로 이 장을 다룬다.

이 장도 다른 장과 마찬가지로 어떤 패턴이 있고 각 패턴들의 동작방식을 그림으로 소개한다.

또한 상태, 무상태 클라우드 애플리케이션이 대규모 이벤트 스트림을 어떻게 처리할 수 있는지 다루고, 실제로 장애가 발생하였을 때, 메모리에 저장된 상태 정보를 어떻게 안정적으로 보호하고 신뢰성을 구현하는지도 공부해볼 수 있다.

7. API 관리 및 사용 패턴

API 관리에서 가장 많이 사용하는 패턴에 대해 공부해볼 수 있다.

API 관리 패턴에서는 가장 많이 알려진 API 게이트웨이 패턴을 시작으로 API 마이크로게이트웨이 패턴, 서비스 메시 사이드카 게이트웨이 패턴에 대한 동작방식, 구성요소, 사용방법, 고려사항 등을 다룬다.

또한 각 패턴별로 사용하면 좋은 경우와 그렇지 않은 경우를 표로 정리되어 있어서 실제 운영 환경에서 어떤 패턴을 적용해야 되는지도 이해해볼 수 있다.

API 사용 패턴에서는 프론트엔드를 위해 사용하는 몇가지 패턴을 소개한다.

이 패턴들에는 마이크로서비스와 직접 통신을 하는 패턴과 API 게이트웨이를 통해서 프론트엔드를 사용하는 패턴, 특정 프론트엔드 애플리케이션을 위해 사용할 수 있는 패턴을 다룬다.

이 내용에서도 패턴들의 동작방식, 구성요소, 사용방법, 고려사항 등을 다루고, 각 패턴별로 사용하면 좋은 경우와 그렇지 않은 경우도 표로 정리되어 있다.

8. 클라우드 네이티브 패턴 적용하기

마지막 장에서는 지금까지 다룬 패턴들을 실제 운영 환경에서 어떻게 활용할 수 있는지를 예시를 들어 설명한다.

각 장에서 공부한 패턴들을 조합하여 온라인 쇼핑몰을 만드는 과정을 하나하나 소개한다.

운영 환경에서 발생할 수 있는 여러 상황을 고려하여 하나의 시스템을 만들어 가는 과정에서 앞서 다룬 패턴들을 하나씩 적용하는 과정을 따라갈 수 있다.

이 책이 좋았던 부분은 각 패턴별이 어떤 방식으로 동작하고, 사용법과 이를 도입했을 때 고려해야 하는 사항들을 필수 내용으로 포함다는 점인데, 패턴별로 특정상황에서 적합한 패턴을 선택하는데 참고해볼 수 있을 것 같다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
혼자 공부하는 얄팍한 코딩 지식 - 비전공자도 1:1 과외하듯 배우는 IT 지식 입문서 혼자 공부하는 시리즈
고현민 지음 / 한빛미디어 / 2022년 5월
평점 :
장바구니담기


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


이번 도서 후기는 개발자 뿐만 아니라 IT 관련 업계에서 일하는 모든 분들이 읽어두면 도움이 될 IT 기초지식을 쌓을 수 있는 책이다.

나는 이 책이 출간되기 전 <얄팍한 코딩사전>이라는 유투브 채널을 구독하고 있어 여러 코딩 지식들을 영상을 통해 접하고 있었다.

재미있고 이해하기 쉽게 만들어두신 영상을 라디오 삼아 시청하였는데, 이미 알고 있는 내용들도 리마인드하면서 듣곤 하였다.

이 책도 어렵지 않고 쉽게 쓰여져 있어서 부담없이 읽을 수 있다.

특히나 이제 IT 업계에 입문한 분들에게는 어렵다고 느껴질 용어와 개념을 하나하나 쉽게 설명되어 있어서 어려움 없이 읽을 수 있다.

특히나 개념은 다양한 비유와 일러스터로 설명해주기 때문에 재밌게 읽을 수 있도록 구성되어 있다.

그리고 easy, medium, hard라는 세 가지 단계로 구성되어있어서 각 수준별로 공부해볼 수 있다.

특히 가장 마지막에 있는 부록인 <용어 노트>는 반드시 알고 있어야 하는 개념과 용어들이 따로 정리되어 있어서 어디서부터 어떻게 시작해야 할지 막막한 분들에게는 이 내용들만 알고 있어도 업무를 하는데에 어려움은 없을 것으로 보인다.

이 책으로 공부를 하면서 좀 더 알고 싶은 내용들은 구글링을 통해 따로 정리해보면 학습 능률이 더 높아지지 않을 까 싶다.

나의 경우 이 책을 완독하면서 내가 IT 업계에 막 입문할 때에 이러한 책이 있었다면 일을 하는데에 있어서 좀 더 쉽게 접근할 수 있었지 않았었을까 싶다.

업무를 하면서 동료와의 의사소통에서 어려움을 느끼는 분들이나 어떻게 공부를 시작해야할지 모르는 분들, IT에 대한 용어 사전이 필요한 분들 모두에게 도움이될 책이 아닌가 싶다.



댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
소프트웨어 아키텍처 The Hard Parts - 분산 아키텍처를 위한 모던 트레이드오프 분석
닐 포드.마크 리처즈.세막 데그하니 지음, 이일웅 옮김 / 한빛미디어 / 2022년 10월
평점 :
장바구니담기


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

마이크로서비스 아키텍처를 설계하기 위한 패턴과 분석 기법을 공부해볼 수 있는 책이다.

마이크로서비스 아키텍처라는 것이 무엇인지 많이 들어보았을 것이다.

실제로 MSA 전환 프로젝트를 참여하고 운영하면서 MSA의 장점을 몸소 느끼기도 하였다.

하지만 MSA 환경에서 서비스를 운영하다보면 예측하지 못했던 여러 상황들도 경험할 수 있기 때문에 안정적인 서비스를 운영하기 위한 경험과 노하우, 그리고 많은 지식이 필요하다.

이 책은 분산 아키텍처를 이해하는 개념과 함께 여러 서비스를 세분화하는 데 있어서 고려해야 하는 방법을 알려준다.

또한 분산된 아키텍처에서 데이터 처리 방법에 대해서 상세하게 공부해볼 수 있으며, 모놀리식 아키텍처를 분리하는 데 얼마나 많은 복잡도가 발생하는지에 대해 간접 경험을 해볼 수 있다.

뿐만 아니라 서비스를 분리하는 데 있어서 중요한 트랜잭션을 관리하고 서비스간 호출 플로우를 관리하는 패턴에 대해 공부해볼 수 있어 분산 아키텍처에서 중요시되는 고려 사항들을 한 눈에 정리해보고 실제 상황에서 배운 내용을 적용해볼 수 있도록 정리되어 있다.

아키텍처를 설계하는 것은 여러 요소를 고려해야 하고, 많은 경험을 통해서 좀 더 나은 아키텍처를 설계할 수 있다.

이 책은 아키텍처 설계과 MSA에 대한 이해가 없는 분들에게는 다소 어려운 내용이 많이 포함되어 있다.

하지만 아키텍처를 설계해본 경험이 있는 분들에게는 매우 유용한 책이다.

아키텍처를 설계할 때의 노하우와 지식, 경험을 얻을 수 있고, 뿐만 아니라 잘못된 설계가 추후 얼마나 많은 서비스에 영향을 미칠 수 있는 지에 대해 알 수 있다.

아키텍처를 설계하고 좀 더 견고한 서비스 운영을 위한 노하우를 얻고 싶은 분들에게 추천한다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
코딩 인터뷰를 위한 알고리즘 치트시트 - 리트코드LeetCode 문제를 풀면서 배우는 코딩 테스트
푸둥라이 지음, 이춘혁 옮김 / 제이펍 / 2022년 10월
평점 :
장바구니담기


이번 도서 후기는 여러 알고리즘 유형을 공부해볼 수 있는 책이다.

코딩테스트는 대부분 IT 회사에 입사하기 위한 필수 관문으로, 신입, 경력 개발자 모두 알고리즘 공부를 틈틈이 하는 것으로 알고 있다.

나도 현재 매일 한 문제씩 알고리즘 문제를 풀고 있다.

코딩테스트를 준비하기 위해 처음 알고리즘 공부를 했었을 때, 문제를 풀더라도 시간 복잡도를 줄이기 위해서 어떤 방법으로 접근해야 할지 알지 못했었다.

그 이후부터 지금까지 알고리즘 공부를 틈틈이 하고 있는데, 처음 시작했을 때에 비해서 개인적으로 평가하기에 문제를 풀기 전 어떻게 접근을 해야 하는지 눈에 보이기 시작했다.

시중에 출간된 여러 알고리즘 관련 책들이 많이 나와 있는데 필수 알고리즘 개념과 문제를 제공한다.

이 책도 알고리즘을 유형별로 공부해볼 수 있도록 구성되어 있다.

하지만 다른 책들과의 차이점은 대다수의 개발자들이 알고 있는 코딩테스트 사이트인 leetcode의 문제로 실습하면서 코딩테스트 시 자주 출제되는 유형의 개념과 접근법을 익힐 수 있도록 구성되어 있다.

또한 코딩테스트 뿐만 아니라 기술 면접 시 자주 물어보는 여러 질문들에 대해서도 다루기 때문에 코딩테스트와 기술 면접을 준비하는 분들에게는 도움이 될 책이다.

그간 여러 알고리즘 책으로 공부해보았는데, 이 책의 장점은 최신 유형의 문제를 많이 다룬다는 점이다.

또한 알고리즘 문제를 풀어가는 데에 있어서 주의해야할 점들에 대해서도 다루기 때문에 직접 문제를 풀어보면서 나의 풀이법에 결함이 있는지도 비교해볼 수 있다.

그리고 풀이 과정을 그림과 함께 상세하게 설명하기 때문에 이해가 되지 않을 만한 내용도 독자가 이해할 수 있도록 내용이 구성되어 있다.

이 책은 알고리즘을 처음 접하는 분들에게는 추천하기 어렵지만 알고리즘을 공부하고 있고, 최신 유형의 문제를 익히고 싶은 분들과 알고리즘의 접근법을 향상시키고 싶은 분들에게 추천한다.

그리고 나와 같이 leetcode에서 코딩테스트 문제를 풀고 있는 개발자에게도 도움이 되지 않을까 싶다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
헤드 퍼스트 디자인 패턴 - 14가지 GoF 필살 패턴! 유지 관리가 편리한 객체지향 소프트웨어를 만드는 법, 개정판
에릭 프리먼 외 지음, 서환수 옮김 / 한빛미디어 / 2022년 3월
평점 :
장바구니담기


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


이 책은 자바 개발자라면 한번쯤 들어보았을 디자인패턴에 관한 책이다.

오래 전부터 개발자 선배들이 겪었던 여러 시행착오를 특정 상황에서 발생하는 문제 패턴에 대한 해결방안을 모아두어 자바 개발자라면 반드시 읽어보아야 할 책으로 꼽힌다.

나도 신입 개발자 시절 디자인 패턴에 대해 들어보았고, 한번 읽어본 적이 있다.

그 당시에는 이 내용들이 많이 어렵게 느껴졌었는데, 개발 경력을 쌓아오고 있는 지금에서 다시 한번 읽어보니 당시 어렵게 느껴졌던 내용들이 이해하기 어렵지 않게 느껴졌다.

처음 읽었을 때도 지금도 느끼는 것이지만 디자인 패턴을 익혀두면 애플리케이션을 개발하는데 경험하는 여러 문제와 수정사항들을 줄여나갈 수 있다고 생각한다.

이 책은 하나하나의 패턴에 대해 발생할 수 있는 여러 상황을 해결하며 작동 원리를 이해하는 데에 도움을 주며, 핵심 패턴이 무엇이고 어떻게 적용해야 하는 지에 대해서 요점을 익힐 수 있다.

또한 공부한 패턴을 어떻게 활용할 수 있는 지에 대해서 생각해볼 수 있다는 점에서 실무에서 비슷한 상황에 패턴을 적용해보도록 도움을 준다.

그리고 많은 연습문제를 통해서 이 책에서 익힌 패턴들을 적용해볼 수 있다.

특히 이번 개정판은 실무에서 주로 쓰이는 자바 8~16 이상 버전에서 실행할 수 있도록 수정되었다고 하니 예제 코드를 실행하고 실습하는 데에 어려움은 없을 것이다.

이런 명서가 견고한 시스템을 만드는 데에 여러 개발자들에게 도움이 된다는 점에서 그간 나도 여러 상황에서 도움을 받았던 것 같다.

이 책을 조만간 다시 한번 더 읽고 공부해보려고 한다.

다시 읽고 공부할 때는 내용을 간단히 정리하고 모든 연습문제를 모두 풀어볼 계획이다.

그간 잊어버렸던 내용도 있었어서 이번에는 좀 더 깊이 있게 공부해보려고 한다.

아직 디자인 패턴에 대한 책을 읽어보지 못한 분들이나 깊이 있는 공부가 필요한 모든 개발자분들에게 추천한다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo