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 Contex
[옮긴이의 말]
클라우드는 모든 인프라 리소스의 가상화를 표방하며 등장해 한정된 자원에 대한 활용도를 극대화했습니다. 그렇지만 여전히 레거시 인프라가 만들어두었던 개념과 틀을 벗어나지 못하는 경우가 많았고, 가상화 계층 때문에 발생하는 여러 가지 인프라 관점의 불이익에 대한 불만의 목소리도 상존했습니다. 왜 이런 현상이 일어난 것일까요? 여느 사회적 변화와 마찬가지로 클라우드가 탄생했다고 하여 기존에 사용되던 모든 것이 어느 날 아침에 바뀔 수는 없었기 때문입니다. 초기 클라우드는 레거시 인프라와 굉장히 많이 닮아 있었고 일부 영역에서의 변화 정도로 받아들여졌던 것이 큰 이유라고 생각합니다. 클라우드라는 구름을 살짝 걷어 내보니 약간 달라 보일 뿐 그동안 익숙했던 것과 크게 다르지 않다는 것을 사람들이 알아챘던 것입니다
이 책은 왜 Go가 클라우드 혹은 클라우드만을 위한 프로그래밍 언어로 최적의 선택인지를 차근차근 풀어나갑니다. 어떠한 언어적 특성이 Go를 클라우드에 최적화된 프로그래밍 언어로 만들어주는 것일까요? 도대체 클라우드가 가진 특징이 무엇이길래 그에 걸맞은 산출물을 만들 수 있는 프로그래밍 언어의 탄생을 고대하게 만든 것일까요? 이 책의 저자 매튜 A. 티트무스는 기본적인 Go의 특징을 가볍게 살펴보고, Go의 어떤 특성으로 개발된 소프트웨어 산출물이 클라우드 환경에서 최적의 효용성을 만들어내는지 차근차근 풀어나갑니다.
Go에 익숙하지 않더라도 다른 프로그래밍 언어에 어느 정도 숙달된 독자라면 어렵지 않게 이 책의 내용을 이해할 수 있을 것으로 믿어 의심치 않습니다. 책의 마지막 장을 덮을 즈음에는 여러분 머릿속 가득 Go의 코드들이 난장을 펼치고 있길 기대해봅니다!
이 책의 특징
클라우드 네이티브 애플리케이션이 다른 소프트웨어 아키텍처와 어떻게 다른지 확인합니다.
Go 프로그래밍 언어를 이용해 확장 가능한 분산 서비스를 설계하는 방법을 이해합니다.
채널이나 고루틴 같은 Go의 로 레벨 특징을 활용해 안정적인 클라우드 네이