클라우드 네이티브 Go : 불안정한 환경 안에서 신뢰할 수 있는 서비스 구축하기

본문 바로가기

회원메뉴

쇼핑몰 검색

통합검색

클라우드 네이티브 Go : 불안정한 환경 안에서 신뢰할 수 있는 서비스 구축하기 불안정한 환경 안에서 신뢰할 수 있는 서비스 구축하기

정가
35,000 원
판매가
33,250 원    5 %↓
적립금
1,750 P
배송비
무료배송
배송일정
24시간 이내 배송 예정 배송일정안내
ISBN
9791157688685
쪽수 : 524쪽
매튜 A. 티트무스  |  동양북스  |  2023년 04월 17일
소득공제 가능도서 (자세히보기)
주문수량
 
책 소개
Part 1 클라우드 네이티브로의 변화 1장 클라우드 네이티브 애플리케이션이란? 1.1 지금까지의 이야기 1.2 클라우드 네이티브란 무엇인가? 1.2.1 확장성 1.2.2 느슨한 결합 1.2.3 탄력성 1.2.4 관리 용이성 1.2.5 관찰 가능성 1.3 클라우드 네이티브는 왜 중요한가? 요약 2장 왜 Go가 클라우드 네이티브 세상을 지배하는가? 2.1 Go를 만들게 된 계기 2.2 클라우드 네이티브 세계를 위한 기능 2.2.1 컴포지션과 구조 타이핑 2.2.2 이해하기 쉬운 언어 2.2.3 CSP 스타일의 동시성 2.2.4 빠른 빌드 속도 2.2.5 언어의 안정성 2.2.6 메모리 보안 2.2.7 성능 2.2.8 정적 링크 2.2.9 정적 타이핑 요약 Part 2 클라우드 네이티브 Go의 구성 3장 Go 프로그래밍 기초 3.1 기본 데이터 타입 3.1.1 불린 3.1.2 간단한 숫자 3.1.3 복소수 3.1.4 문자열 3.2 변수 3.2.1 단축 변수 선언 3.2.2 제로값 3.2.3 공백 식별자 3.2.4 상수 3.3 컨테이너 타입: 배열, 슬라이스, 맵 3.3.1 배열 3.3.2 슬라이스 3.3.3 맵 3.4 포인터 3.5 제어 구조 3.5.1 for의 재미 3.5.2 if 구문 3.5.3 switch 구문 3.6 에러 제어 3.6.1 에러 정의하기 3.7 함수에 재미를 더하기: 가변인자와 클로저 3.7.1 함수 3.7.2 가변인자 함수 3.7.3 익명 함수와 클로저 3.8 구조체, 메서드, 인터페이스 3.8.1 구조체 3.8.2 메서드 3.8.3 인터페이스 3.8.4 타입 임베딩을 통한 컴포지션 3.9 장점: 동시성 3.9.1 고루틴 3.9.2 채널 3.9.3 Select 요약 4장 클라우드 네이티브 패턴 4.1 Context 패키지 4.1.1 Context가 하는 일 4.1.2 Context 생성 4.1.3 Context 종료 시점과 타임아웃 정의 4.1.4 요청 범위 값의 정의 4.1.5 Context 사용하기 4.2 이 장의 구성 4.3 안정성 패턴 4.3.1 서킷 브레이커 4.3.2 디바운스 4.3.3 재시도 4.3.4 스로틀 4.3.5 타임아웃 4.4 동시성 패턴 4.4.1 팬인 4.4.2 팬아웃 4.4.3 퓨처 4.4.4 샤딩 요약 5장 클라우드 네이티브 서비스 구축 5.1 서비스를 만들어봅시다 5.1.1 키-값 저장소란? 5.2 요구사항 5.2.1 멱등성이란 무엇이고 왜 중요할까? 5.2.2 궁극적인 목표 5.3 제너레이션 0: 핵심 기능 5.3.1 아주 간단한 API 5.4 제너레이션 1: 모놀리스 5.4.1 net/http 패키지를 이용한 HTTP 서버 구성 5.4.2 gorilla/mux 패키지를 이용한 HTTP 서버 구성 5.4.3 RESTful 서비스 만들기 5.4.4 동시성 이슈로부터 안전한 데이터 구조 만들기 5.5 제너레이션 2: 리소스 상태 유지 5.5.1 트랜잭션 로그란 무엇일까? 5.5.2 트랜잭션 로그 파일에 상태 저장하기 5.5.3 외부 데이터베이스에 상태 저장하기 5.6 제너레이션 3: 전송 계층 보안 구현 5.6.1 전송 계층 보안 5.6.2 사설키와 인증서 파일 5.6.3 웹 서비스를 HTTPS로 보호하기 5.6.4 전송 계층 요약 5.7 키-값 저장소의 컨테이너화 5.7.1 생초보를 위한 도커 기초 5.7.2 키-값 저장소 컨테이너 만들기 5.7.3 컨테이너 데이터의 외부화 요약 Part 3 클라우드 네이티브 특징 6장 신인성 6.1 클라우드 네이티브의 핵심은 무엇인가? 6.2 가장 중요한 것은 신인성이다 6.3 신인성은 무엇이고 왜 중요한가? 6.3.1 신인성: 더 이상 운영만을 위한 것이 아니다 6.4 신인성 확보 6.4.1 결함 예방 6.4.2 결함 감내 6.4.3 결함 제거 6.4.4 결함 예측 6.5 The Twelve-Factor App과의 지속적인 관련성 6.5.1 코드베이스 6.5.2 의존성 6.5.3 설정 6.5.4 백엔드 서비스 6.5.5 빌드, 릴리즈, 실행 6.5.6 프로세스 6.5.7 데이터 격리 6.5.8 확장성 6.5.9 기 가능성 6.5.10 개발/프로덕션 환경 일치 6.5.11 로그 6.5.12 관리 프로세스 요약 7장 확장성 7.1 확장성이란 무엇일까? 7.1.1 다양한 형태의 확장 7.2 4가지 대표적인 병목 7.3 스테이트와 스테이트리스 7.3.1 애플리케이션 스테이트와 리소스 스테이트의 차이 7.3.2 스테이트리스의 장점 7.4 지연된 확장: 효율성 7.4.1 LRU 캐시를 이용한 효율적 캐싱 7.4.2 효율적인 동기화 7.4.3 메모리 릭 7.4.4 효율성이란 7.5 서비스 아키텍처 7.5.1 모놀리스 시스템 아키텍처 7.5.2 마이크로서비스 시스템 아키텍처 7.5.3 서버리스 아키텍처 요약 8장 느슨한 결합 8.1 강한 결합 8.1.1 강한 결합의 다양한 형태 8.2 서비스 간의 통신 8.3 요청-응답 메시징 8.3.1 일반적인 요청-응답 구현 8.3.2 net/http 패키지를 이용한 HTTP 요청 발행 8.3.3 gRPC를 이용한 원격 프로시저 호출 8.4 플러그인을 이용한 로컬 리소스의 느슨한 결합 8.4.1 플러그인 패키지를 통한 프로세스 내부 플러그인 8.4.2 RPC를 이용한 해시코프의 Go 플러그인 시스템 8.5 육각형 아키텍처 8.5.1 아키텍처 8.5.2 육각형 서비스 구현 요약 9장 탄력성 9.1 왜 탄력성이 문제인가 9.2 시스템이 실패한다는 의미는 무엇인가? 9.2.1 탄력성을 높이는 여러 가지 방법 9.3 연쇄적인 실패 9.3.1 과부하 방지 9.4 다시 시도하기: 요청 재시도 9.4.1 백오프 알고리즘 9.4.2 서킷 브레이킹 9.4.3 타임아웃 9.4.4 멱등법칙 9.5 서비스 중복성 9.5.1 중복성을 위한 설계 9.5.2 오토스케일링 9.6 건강한 헬스 체크 9.6.1 인스턴스가 ‘건강하다’는 것은 어떤 의미일까? 9.6.2 헬스 체크의 세 가지 타입 9.6.3 페일 오픈 요약 10장 관리 용이성 10.1 관리 용이성은 무엇이고 왜 신경 써야 할까요? 10.2 애플리케이션 설정하기 10.2.1 설정 모범 사례 10.2.2 환경 변수를 이용한 설정 10.2.3 커맨드라인 인자를 이용한 설정 10.2.4 파일을 이용한 설정 10.2.5 Viper: 설정 패키지를 위한 스위스 군용 칼 10.3 피처 플래그를 이용한 기능 관리 10.3.1 기능 플래그의 진화 10.3.2 제너레이션 0: 초기 구현 10.3.3 제너레이션 1: 하드코딩된 피처 플래그 10.3.4 제너레이션 2: 설정할 수 있는 플래그 10.3.5 제너레이션 3: 동적인 피처 플래그 요약 11장 관찰 가능성 11.1 관찰 가능성이란 무엇인가? 11.1.1 관찰 가능성은 왜 필요한가? 11.1.2 관찰 가능성은 ‘전통적인’ 모니터링과 어떻게 다른가? 11.2 관찰 가능성의 세 가지 기둥 11.3 OpenTelemetry 11.3.1 OpenTelemetry 컴포넌트 11.4 트레이싱 11.4.1 트레이싱의 개념 11.4.2 OpenTelemetry를 이용한 트레이싱 11.4.3 모두 하나로 합치기: 트레이싱 11.5 지표 11.5.1 푸시, 풀 방식의 지표 수집 비교 11.5.2 OpenTelemetry의 지표 11.5.3 모두 하나로 합치기: 지표 11.6 로깅 11.6.1 로깅 모범 사례 11.6.2 Go 표준 로그 패키지를 이용한 로깅 11.6.3 Zap 로깅 패키지 요약
저자 소개
저자 : 매튜 A. 티트무스 분자 생물학 학위를 취득한 경험이 있는 소프트웨어 개발 업계의 전문가입니다. 클라우드 네이티브 기술과 Go 프로그래밍 언어의 얼리 어답터이자 옹호자이며, 프로덕션 품질 시스템 구축에 필요한 사항에 관해 열정적인 관심이 있습니다. 분산 시스템을 관찰하고 조정하는 전략을 구현하는 데 많은 시간을 보내는 중입니다. 역자 : 노승헌 눈물 없이 볼 수 없는 한 편의 뮤직비디오 같은 인생을 만드느라 바쁜 센티멘털리스트. 삼성네트웍스, SK텔레콤, 아카마이 코리아를 거치면서 개발자, 프로젝트 매니저, 제품 오너, 솔루션 아키텍트 등 다양한 영역에서 자신을 시험해보고 있습니다. 현재는 라인플러스에서 사용자가 서비스를 보다 쾌적하게 사용할 수 있도록 글로벌 트래픽에 관한 업무를 수행하는 중입니다. 집필한 도서로 『나는 LINE 개발자입니다』(한빛미디어, 2019, 공저), 『슬랙으로 협업하기』(위키북스, 2017), 『소셜 네트워크로 세상을 바꾼 사람들』(길벗, 2013) 등이 있습니다.
목 차
Go 프로그래밍으로 배우는 클라우드 네이티브 서비스의 모든 것! 도커(Docker), 쿠버네티스(Kubernetes), 프로메테우스(Prometheus) 같은 클라우드 네이티브 기술의 공통점은 무엇일까요? 바로 Go라는 프로그래밍 언어로 만들어졌다는 것입니다. 이 책은 Go의 장점을 활용해 예측할 수 없는 환경에서도 확장 가능하면서 탄력적인 클라우드 네이티브 서비스를 개발하는 방법을 알려줍니다. 특히 Go 프로그래밍 언어가 지닌 로 레벨의 특징, 미들레벨의 디자인 패턴, 하이레벨 아키텍처 고려 사항 등에 맞춘 애플리케이션의 구조과 구성을 확인할 수 있습니다. 이 책에서는 Go를 이용해 간단하지만 모든 기능을 갖춘 분산 키-값 저장소를 구축합니다. 저장소를 구축하면서 중급에서 고급 개발자까지 참고할 수 있는 클라우드 네이티브 관리와 배포 문제를 해결하는 모범 사례를 확인할 수 있습니다. 그리고 왜 클라우드 네이티브 서비스를 개발하는 프로그래밍 언어로 Go를 채택했는지를 자연스럽게 알 수 있습니다.
출판사 서평
[옮긴이의 말] 클라우드는 모든 인프라 리소스의 가상화를 표방하며 등장해 한정된 자원에 대한 활용도를 극대화했습니다. 그렇지만 여전히 레거시 인프라가 만들어두었던 개념과 틀을 벗어나지 못하는 경우가 많았고, 가상화 계층 때문에 발생하는 여러 가지 인프라 관점의 불이익에 대한 불만의 목소리도 상존했습니다. 왜 이런 현상이 일어난 것일까요? 여느 사회적 변화와 마찬가지로 클라우드가 탄생했다고 하여 기존에 사용되던 모든 것이 어느 날 아침에 바뀔 수는 없었기 때문입니다. 초기 클라우드는 레거시 인프라와 굉장히 많이 닮아 있었고 일부 영역에서의 변화 정도로 받아들여졌던 것이 큰 이유라고 생각합니다. 클라우드라는 구름을 살짝 걷어 내보니 약간 달라 보일 뿐 그동안 익숙했던 것과 크게 다르지 않다는 것을 사람들이 알아챘던 것입니다 이 책은 왜 Go가 클라우드 혹은 클라우드만을 위한 프로그래밍 언어로 최적의 선택인지를 차근차근 풀어나갑니다. 어떠한 언어적 특성이 Go를 클라우드에 최적화된 프로그래밍 언어로 만들어주는 것일까요? 도대체 클라우드가 가진 특징이 무엇이길래 그에 걸맞은 산출물을 만들 수 있는 프로그래밍 언어의 탄생을 고대하게 만든 것일까요? 이 책의 저자 매튜 A. 티트무스는 기본적인 Go의 특징을 가볍게 살펴보고, Go의 어떤 특성으로 개발된 소프트웨어 산출물이 클라우드 환경에서 최적의 효용성을 만들어내는지 차근차근 풀어나갑니다. Go에 익숙하지 않더라도 다른 프로그래밍 언어에 어느 정도 숙달된 독자라면 어렵지 않게 이 책의 내용을 이해할 수 있을 것으로 믿어 의심치 않습니다. 책의 마지막 장을 덮을 즈음에는 여러분 머릿속 가득 Go의 코드들이 난장을 펼치고 있길 기대해봅니다! 이 책의 특징 클라우드 네이티브 애플리케이션이 다른 소프트웨어 아키텍처와 어떻게 다른지 확인합니다. Go 프로그래밍 언어를 이용해 확장 가능한 분산 서비스를 설계하는 방법을 이해합니다. 채널이나 고루틴 같은 Go의 로 레벨 특징을 활용해 안정적인 클라우드 네이티브 서비스를 구현하는 방법을 익힙니다. ‘서비스 안정성’의 개념을 익히고, ‘클라우드 네이티브’와 어떤 관계가 있는지 알아봅니다. 다양한 패턴, 추상화, 도구를 적용하여 복잡한 분산 시스템을 구축하고 관리하는 방법이 무엇인지 알아봅니다.
고객 리뷰
평점 리뷰제목 작성자 작성일 내용보기

아직 작성된 리뷰가 없습니다.

반품/교환
· 회사명 : 북앤북스문고   · 주소 : 제주특별자치도 제주시 1100로 3308 B1  
· 대표자 : 김대철   · 사업자 등록번호 : 661-10-02383  
· 통신판매업신고번호 : 2023-제주노형-0169   · 개인정보 보호책임자 : 최재혁  

고객센터

(평일 09:30~17:30)
(점심 12:00~13:00)
· 전화 : 064)725-7279 (발신자 부담)
    064)757-7279 (발신자 부담)
· 팩스 : 064)759-7279
· E-Mail : bookpani@naver.com
Copyright © 2019 북앤북스문고. All Rights Reserved.