자바 마이크로서비스를 활용한 SRE - 기업에서 신뢰할 수 있는 마이크로서비스를 위한 패턴
조너선 슈나이더 지음, 정병열 옮김 / 한빛미디어 / 2022년 3월
평점 :
장바구니담기


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



이 책은 안정적인 자바 마이크로서비스를 구축하고 배포하는 방법에 대해 단계적으로 배울 수 있는 책이다.

서비스를 구축하면서 여러 시행착오를 거치게 된다.

이 과정에서 여러 경험을 쌓고, 이를 위한 대응 방법을 배우게 된다.

이 책은 저자가 넷플릭스에서 근무하면서 얻은 여러 경험을 토대로 내용을 소개한다.​


이 책은 총 7장으로 구성되어 있다.

첫번째 장에서는 이 책의 내용에 본격적으로 들어가기에 앞서 알아야할 여러 기본 용어들과 기본 개념을 소개한다.

두번째 장에서는 애플리케이션 메트릭에 관련한 주제로 메트릭과 관련된 개념과 설정, 사용방법 및 이를 통해 어떤 내용을 분석할 수 있는지 단계별로 알아본다.

세번째 장에서는 분산 추적과 기법, 로깅을 통해 마이크로서비스를 관찰하는 방법을 알아본다.

네번째 장에서는 메트릭 정보를 시각화하고 경고(알림)을 구축하는 방법을 배우는데, 대시보드를 통해 시스템의 안정성을 모니터링하여 서비스들이 어떤 방식으로 작동하는지 이해할 수 있다.

다섯번째 장에서는 클라우드의 개념과 플랫폼 종류 및 여러 패턴에 대해 배울 수 있는데, 이를 활용한 안정적인 배포 시나리오를 설계할 수 있도록 도와준다.

여섯번째 장에서는 소스 코드의 의존성을 관리하는 방법을 알아본다.

일곱번째 장에서는 MSA 환경에서 장애와 성능 저하를 관찰하고 대비하는 방법으로 로드밸런싱과 여러 전략 패턴을 통해 대비하는 방법을 알아본다.


이 책을 모두 읽어보니, 점점 대규모로 커지는 서비스들을 어떻게 안정적으로 운영할 수 있는지에 대해 생각해볼 수 있었다. 최근 진행한 프로젝트에서 안정적인 배포를 위해 블루그린 배포와 롤링 배포 방식을 적용하였었다.

내가 알고 있었던 배포 패턴들을 좀 더 깊이 있게 공부해볼 수 있어서 도움이 되었고, 잘 모르고 있던 여러 전략과 기법들을 단계적으로 공부해볼 수 있었다.

특히 실무에서 접해보거나 들어보았을 여러 용어들도 이 책에서 소개하기 때문에 어려움없이 공부해볼 수 있다.

안정적인 MSA로 구축된 애플리케이션을 구축하고 운영하는 방법을 알아가보고 싶은 분들에게 추천한다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
SQL 쿡북 - 모든 SQL 사용자를 위한 쿼리 완벽 가이드
앤서니 몰리나로.로버트 더그래프 지음, 송희정 옮김 / 한빛미디어 / 2022년 1월
평점 :
장바구니담기


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

이번 도서 후기는 여러 벤더에서 사용할 수 있는 SQL 쿼리에 대해 배울 수 있는 책이다.

리뷰 작성에 앞서 이 책에서 설명하는 벤더 버전 정보를 소개한다.

  • DB2 11.5
  • Oracle Database 19c
  • PostreSQL 12
  • SQL Server 2017
  • MySQL 8.0

이 책은 총 14챕터와 부록 A, B로 구성되어 있다.

각 챕터에서 다루는 주요 내용에 대해 케이스별로 쿼리문을 작성하는 방법 뿐만 아니라 실무에서도 사용할 수 있는 여러 스킬을 배울 수 있다.


이 책을 한마디로 표현하자면 SQL 사전이 아닐까 싶다.

한번에 모든 내용과 모든 벤터의 쿼리문을 작성하는 방법을 소화하기에는 범위가 많아서 어려울 수 있다.

하지만 실무에서 쿼리를 작성해야 할 때 참고한다면 데이터를 다루는데 있어서 굉장히 많은 도움을 받을 수 있다고 생각한다.

이 책의 내용을 모두 읽어본 나로서는 모든 벤터의 쿼리문 작성법을 이해하기 보다는 현재 사용하고 있는 벤더 혹은 공부해보고 싶은 벤더 기준으로 학습하는 방법도 추천한다.

그리고 여러번 반복 학습하는 것을 추천한다.

한번에 모두 이해하기에는 분량도 많고 아직 능숙하게 사용하지 못하는 케이스도 있을 것이다.

나도 이 책을 완독하고 나서 다시 처음부터 부족하다고 생각하는 챕터를 기준으로 실습과 내용 학습을 반복하고 있다.

나에게 가장 도움이 된 부분을 소개하자면 각 예시 케이스별로 벤터별 쿼리문을 작성하는 방법과 스킬을 배울 수 있는 부분이다.

플랫폼이 다양해지면서 개발자도 특정 벤더에서만 쿼리문을 작성해야 하는 것이 아닌 여러 벤더에서 쿼리문을 작성해야 할 때가 있다.

특히나 아직 접해보지 못한 벤더로 쿼리문을 작성해야 할 때, 특정 케이스에서 쿼리문 작성이 어려울 때 참고한다면 많은 도움을 받을 수 있을 것이다.

한빛미디어 <나는 리뷰어> 활동을 통해서 만나본 책이지만, 리뷰어 활동이 아니었어도 이 책을 구매했을 것이다.

그만큼 소장 가치가 있고, 공부하면 도움이 될 책이다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
Node.js 프로젝트 투입 일주일 전 - Node.js의 다양한 모듈을 활용한 웹 서버 개발 실전 노하우
고승원 지음 / 비제이퍼블릭 / 2021년 12월
평점 :
장바구니담기


이 책은 크게 6가지 구성으로 나뉘어져 있다고 보면 된다.

첫번째는 node.js가 무엇인가에 대한 설명을 시작으로 node.js의 특징과 함께 node package manager인 npm에 관한 설명으로 이루어져 있다.

이 부분에서는 node.js의 특징인 논블로킹, 싱글 스레드, 이벤트 루프를 3가지 상황의 라면 전문점의 프로세스를 비유하여 설명하기 때문에 좀 더 이해하기 쉬웠다.

개인적으로 이 챕터의 개념은 필히 알고 넘어가야 한다고 생각한다.

이 챕터에서 소개되는 여러 용어와 개념은 node.js 뿐만 아니라 다른 부분에서도 사용되기 때문에 용어와 개념 정리를 겸하면 나중에도 도움이되지 않을까 싶다.

# 용어 정리

▶ 블로킹

함수를 호출하고 나면 함수가 완전히 종료될 때까지 다른 작업을 진행하지 못하고 기다려야 한다.

즉, 호출된 함수가 작업을 마칠 때까지 제어권을 돌려주지 않고 함수가 종료될 때까지 대기하는 방식을 말한다.

▶ 논블로킹

함수를 호출한 후 호출된 함수가 실행되는 중에도 다른 작업을 동시에 진행할 수 있다.

즉, 함수를 호출하면 호출된 함수에게 바로 제어권을 넘겨주어 다른 작업을 바로 진행할 수 있도록 해주는 방식을 말한다.

▶ 싱글 스레드

스레드 하나를 사용하는 것으로, 동시에 하나의 작업만을 처리할 수 있다는 것을 말한다.

▶ 멀티 스레드

여러 개의 스레드를 이용해서 동시에 여러 작업을 진행할 수 있는 프로그래밍 방식을 말한다.

동시에 여러 작업을 실행할 수 있어서 성능 면에서는 좋을 수 있지만 많은 자원을 필요로 하거나 자원이 제대로 사용되지 않는 비효율이 발생할 수도 있다.

동시에 여러 개의 작업을 처리하면 좋을 수도 있고, 아닐 수도 있다.

즉, 작업이 무엇인가에 따라서 장점 혹은 단점이 될 수 있다.

▶ node.js의 싱글 스레드

node.js는 싱글 스레드를 사용하지만, 싱글 스레드의 단점을 극복하기 위해 논블로킹을 사용하여 파일 쓰기, 네트워크를 통한 데이터베이스 처리 등의 작업을 하는 동안 컴퓨터가 쉬지 않고 다른 작업을 바로 실행시킬 수 있게 하여 적은 자원으로도 큰 효율을 낼 수 있도록 구성되어 있다.

즉, 자바스크립트를 실행하는 부분에 대해서만 싱글 스레드로 구성되고, 논블로킹 I/O와 이벤트 루프를 통해서 동시에 여러 작업을 할 수 있도록 해준다.

▶ 이벤트 루프

콜 스택과 콜백 큐의 상태를 체크하고, 콜 스택이 빈 상태가 되면 콜백 큐의 첫번째 콜백을 콜 스택으로 이동시키는데, 이러한 작업이 반복적으로 일어나고, 이런 반복적인 행동을 틱이라고 한다.

두번째는 node.js를 개발하기 위한 환경을 구성하는 방법에 대해서 설명한다.

Visual Studio Code를 기준으로 설명하지만, 다양한 IDE에서도 사용할 수 있어 사용자에게 특화된 IDE를 사용하는 것을 추천한다.

세번째는 자바스크립트의 기초 개념을 다룬다.

아직 자바스크립트를 사용하지 못한 분이나 개념이 완벽하지 않은 분들은 필히 이 부분을 한번 꼭 공부하고 넘어가길 추천한다.

나의 경우에는 이 챕터를 아주 꼼꼼히 공부하였다.

기초 개념을 리마인드할 수 있어서 좋았고, 잘 몰랐던 부분은 개념을 명확히 할 수 있었다.

특히 정리하면서 공부하면 추후에 개발 시 많은 도움이 될 것이라고 생각한다.

네번째는 node.js의 내장 모듈과 객체, json-server의 설치부터 실행까지의 전반적인 내용을 다룬다.

특히 node.js의 내장 모듈과 객체를 알고 있으면, 개발 시 필요한 부분에 사용할 수 있다.

express.js는 node.js에서 많이 사용되는 내용이니 실습을 겸하면서 함께 따라가는 것을 추천한다.

다섯번째는 RDBMS인 MySQL과 NoSQL은 MongoDB의 설치부터 사용하는 방법을 순서대로 설명한다.

아직 MySQL과 MongoDB를 사용해보지 않은 분들에게는 설치부터 직접 따라해볼 수 있고, 이들의 차이 뿐만 아니라 여러가지 개발 용어도 익힐 수 있다.

그리고 직접 데이터를 조회하고, 등록/수정/삭제 과정에서 소개되는 함수들은 꼭 알아두어 실무에서도 CRUD를 필요로하는 데에 적용해보면 좋을 듯 하다.

여섯번째는 애플리케이션 운영을 위한 여러가지 기법과 미니 프로젝트를 따라 해볼 수 있다.

특히나 애플리케이션을 운영할 때 로그나 메일, 작업 스케줄러 등의 사용법에 대해 설명하는데 이런 기능이 실제로 어떻게 사용되고 필요로 하는지에 대해 이해할 수 있고, 실무에서 응용할 수 있도록 이루어져 있다.

미니 프로젝트는 전체 내용을 기반으로 제품 판매 웹앱을 구현할 수 있는데, 따라해보면 이 책의 모든 내용을 이해하는 데에 도움이 될 것이다.

책 제목처럼 일주일 내에 node.js 서버 개발에 꼭 필요한 부분을 공부해볼 수 있도록 구성되어있다.

실무에서 어떻게 사용되는지에 대해서도 설명되어 있기 때문에 아직 node.js 개발 경험이 없는 분들에게도 도움이 될 것이다.

특히나 가장 좋았던 부분은 딱딱한 설명이 아닌 마치 온라인 강의를 듣는 것과 같이 친절하고 재미있는 구성으로 책을 읽으며 공부하는 내내 지루하지 않았다.

그리고 실습도 겸할 수 있어서 눈으로만 익히는 것이 아닌 직접 코드를 작성해볼 수 있도록 되어 있어 도움이 되었다.

혹시나 갑작스럽게 node.js로 개발을 하게 되었거나 나와 같이 node.js를 공부해보고자 하는 입문자들에게 이 책을 추천한다.


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
알면 더 쉬운 도커 쿠버네티스 - 클라우드 서비스를 위한 개발 환경 만들기
곽영호.황승준 지음 / 비제이퍼블릭 / 2020년 8월
평점 :
장바구니담기


이번 도서는 챕터별 내용 정리를 하면서 읽었다.

특히나 이번주부터 도커 설치부터 설정, 그리고 이미지를 만들어 푸시하고 서비스를 올리는 작업을 하게 되었는데, 책 내용이 많은 도움이 되었다.

이 책은 총 5개의 챕터로 구성되어 있다.

첫번째 챕터에서는 도커와 쿠버네티스에 알아보기에 앞서 인프라가 변화된 과정과 함께 이 변화를 통해 소프트웨어 아키텍처의 변화를 살펴본다.

이후에는 이런 변화를 통해 도커라는 컨테이너 기반의 가상화 도구가 사용되기 시작하면서 도커의 장점에 대해서 다룬다.

이 챕터 속 내용은 이미 알고 있는 분들도 있을 수 있지만 이런 환경이 도입된 과정을 머릿 속에 한번 더 그려볼 수 있어서 가볍게 읽어 보면 좋을 듯하다.

두번째 챕터는 도커에 관한 내용을 다룬다.

도커를 도입함에 있어서의 장점과 도커를 설치하는 과정을 살펴볼 수 있다.

그리고 도커를 사용함에 있어서 알아야 하는 개념과 용어, 설정법을 실습으로 겸해볼 수 있어서 도커를 처음 사용해보는 분들에게는 더욱 도움이 될 것이다.

나에게 가장 도움이 되었던 부분은 도커 레지트스리를 통해 배포하는 부분과 네트워크에 관한 설명을 다룬 부분이 었는데, 이번 업무 처리를 함에 있어서 많은 도움이 되었고, 좀 더 능숙하게 다룰 수 있게 되었다.

세번째 챕터는 쿠버네티스에 관한 내용을 다룬다.

도커의 단점을 보완한 쿠버네티스가 왜 사용되게 되었는지에 대한 설명으로 시작한다.

이 챕터에서도 도커와 같이 쿠버네티스에 관한 개념을 시작으로 설치 과정을 다룬다.

쿠버네티스를 사용하기 위한 구성요소를 설명하는 부분은 필히 알아야 한다.

yaml 파일로 모든 구성요소를 관리하기 때문에 각 구성요소에 대한 개념과 어떻게 yaml 파일에 기술해야 하는 지에 대해서는 정리해두는 것을 추천한다.

추후 쿠버네티스를 사용할 때, 공식 매뉴얼을 통해서도 익힐 수 있지만 이 내용을 미리 정리해두고 이해한다면 좀 더 능숙하게 사용할 수 있다고 생각하기 때문이다.

네번째 챕터에서는 쿠버네티스를 실무에 적용하는 과정을 설명한다.

이 챕터는 도커와 쿠버네티스를 처음 접하거나 아직 개념의 이해가 완전히 되지 않은 분들에게는 조금 어려울 수 있다. 하지만 실무에서 사용하기 전 미리 알아두고, 운영 과정에서 고려해야 하는 사항들을 다루기 때문에 이 부분도 읽는 것을 추천한다.

이런 저자의 경험들을 통해 간접적으로나마 우리가 경험할 수 있는 부분들이 많고, 운영 과정에 접할 수 있는 여러 상황들을 대처하기 위한 빠른 판단을 할 수 있는 기준이 될 수 있기 때문이다.

다섯번째 챕터는 대표 클라우드 서비스에서의 쿠버네티스 서비스의 내용을 다룬다.

쿠버네티스 패키지 매니저인 헬름에 대한 구성요소와 설치법, 저자가 추천하는 모니터링 서비스에 대해 소개한다.

그리고 우리가 잘 알고 있는 대표 클라우드 서비스인 AWS, Google Cloud Platform, Microsoft Azure의 설정방법과 사용법을 그림을 통해 설명하기 때문에 이 클라우드 서비스를 아직 사용해보지 못한 분들에게는 무료 사용 기간 내에 실습을 겸해 보면 도움이 될 것이다.

마지막으로는 프라이빗, 하이브리드 클라우드의 단점을 보완한 멀티 클라우드에서 쿠버네티스 클러스터를 운영하는 랜처에 대해 소개하는데, 이 부분도 대표 클라우드 서비스에서 설정하는 방법을 그림을 통해 설명한다.

이 책은 개념을 자세하게 다루진 않지만 실무에서 능숙하게 사용할 수 있도록 알려준다.

그렇기 때문에 만약 도커와 쿠버네티스을 처음 접해본 분들이거나 아직 개념이 모호하다면 어려울 수 있어 먼저 개념을 다지고 이 책을 읽는 것을 추천한다.

하지만 실무에서 실제로 운영 중인 분들에게는 도움이될 내용들이 많다.

나 또한 이 책이 이번 업무 처리에 많은 도움이 되었다.

도커와 쿠버네티스를 좀 더 알고 싶은 분들에게 추천한다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
DNS 실전 교과서 - 기초가 탄탄해지는
와타나베 유이 외 지음, 이민성 옮김 / 제이펍 / 2021년 11월
평점 :
장바구니담기


이번 도서 후기는 DNS에 대해 기초부터 배워가고 싶은 분들을 위해 도움이 될 책이다.

모든 사람은 다른 사람과 구별된 "이름"을 가진다.

인터넷을 통해 접속하는 사이트도 이를 구분하는 "도메인명"을 가진다.

도메인명은 셀 수 없이 많은 사이트들의 IP주소와 매핑하여 우리가 접속하고 싶은 사이트로 정확히 이동하게 해준다.

즉, DNS는 IP주소와 도메인명을 관리해주어 요청자에게 도메인명과 매핑된 IP주소를 찾아주는 역할을 한다.


이 책은 이런 DNS가 하는 모든 일에 대해 기초/실전/응용편의 세 가지로 분류하여 설명한다.

기초편은 DNS를 모르는 분들이라면 반드시 읽어보아야 한다.

기초편을 이해해야 실전, 응용편의 내용도 이해할 수 있기 때문이다.

기초편에서는 DNS가 왜 만들어지게 되었는 지에 대한 배경 설명을 시작으로 도메인명을 일원화하여 관리해주는 레지스트리와 도메인명을 등록자로부터 신청을 중개해주는 레지스트라가 DNS에서 어떤 역할을 하는 지에 대해 설명하고, DNS의 이름 풀이 과정과 DNS의 구성 요소인 스티브 리졸버, 풀 리졸버, 권한이 있는 서버의 역할과 작동 방식에 대해 다룬다.

이전에 내가 접해본 업무 중에 도메인명을 DNS 서버에 등록해야 하는 업무가 있었다.

그때 당시의 업무 처리 흐름을 이 챕터에서 설명하는 내용을 대입해보면서 읽으니 개인적으로 좀 더 쉽게 이해했던 것 같다.

나와 같은 경험이 없더라도 그림으로 이해하기 쉽게 설명해주고 있으니 이해하는 데에 어려움이 없을 것이다.


실전편에서는 DNS를 작동시키기 위해 필요한 지식과 도메인명을 설계하는 방식을 각 예시를 통해 설명한다.

이 부분에서는 서브 도메인도 어떻게 설계해야 할지부터 이를 운용하는 방법에 대해서도 다루기 때문에 각 부서에 서브 도메인을 위임했을 때 어떤 차이가 있는 지에 대해 알 수 있어 이를 참고하여 업무 프로세스도 정할 수 있어 도움이 될 듯하다.

이후 권한이 있는 서버와 풀 리졸버의 설정 방법, DNS 서비스의 작동 확인방법을 CLI 명령어와 DNS 체크 사이트를 통해 확인하는 방법과 DNS에 대한 공격과 이러한 공격을 대처할 방안에 대해 다룬다.

응용편에서는 DNS 설정과 운용하는 노하우에 대해 각 예시 케이스로 설명한다.

특히 이 챕터에서는 자주 일어나는 설정의 실수에 대해 케이스로 설명하고 있기 때문에 특히나 DNS를 운영하는 담당자에게 유용할 내용이다.

이 책을 읽으면서 개인적으로 도움이 되었던 부분은 각 챕터 앞장에 표시된 키워드가 아닌가 싶다.

처음 접한 용어들이 상당수 포함되어 있어 나의 경우 이 키워드를 중점으로 책의 흐름을 이해하였다.

이 키워드들을 중점으로 용어 정리를 하면서 읽으면 더욱 도움이 되지 않을까도 싶다.


DNS에 대해 깊이 있는 지식을 같지 못한 나에게는 기초부터 천천히 알아갈 수 있어 개인적으로 많은 도움을 받았다. DNS 내에 여러 구성요소 뿐만 아니라 연관된 여러 내용에 대해서도 배울 수 있었다.

나와 같이 DNS에 대해 처음부터 알아가고 싶은 분들에게 추천한다.


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