1. 광고배너
  2. 광고배너
/ 이전버튼 다음버튼
2
미리보기

Go 언어를 활용한 마이크로서비스 개발
저자 : 닉잭슨 ㅣ 출판사 : 에이콘출판 ㅣ 역자 : 이상식

2018.07.26 ㅣ 460p ㅣ ISBN-13 : 9791161751900

정가30,000
판매가28,500(5% 할인)
적립금 1,200원 (4%)
배송일정 04월 29일 출고 가능
주문 수량 변경시 안내 배송안내
쿠폰 및 결제혜택 확인하기

크기 기타 규격
제품구성 단행본
이용약관 청약철회
국내도서 > 컴퓨터 > 인터넷 > 웹프로그래밍(웹디자...
- 마이크로서비스 계획 및 마이크로서비스 아키텍처 설계
- RESTful API와 데이터베이스를 사용한 마이크로서비스 작성
- 마이크로서비스 설계에 사용하는 일반적인 용어와 패턴 이해
- 마이크로서비스의 수평적 규모확장에 사용하는 도구와 자동화 방법
- 개발 주기를 획기적으로 개선해줄 Docker 및 Docker Compose를 사용한 컨테이너화 사용법
- 모니터링, 로깅, 서비스 탐색, 자동화를 통한 서비스 확장으로 안전하게 시스템을 관리하는 법
- Go 언어를 사용한 마이크로서비스 테스트 및 API 통합 테스트
펼쳐보기

[목 차]

1장. 마이크로서비스 소개
net/http로 간단한 웹 서버 만들기
JSON 읽기 및 쓰기
Go 구조체를 JSON으로 마샬링하기
JSON을 Go 구조체로 언마샬링하기
net/http를 사용한 라우팅
경로
편리한 핸들러
FileServer
NotFoundHandler
RedirectHandler
StripPrefix
TimeoutHandler
정적 파일 핸들러
핸들러 만들기
컨텍스트
Background
WithCancel
WithDeadline
WithTimeout
WithValue
컨텍스트 사용하기
Go 표준 라이브러리의 RPC
간단한 RPC 예제
HTTP를 통한 RPC
HTTP를 통한 JSON-RPC
요약

2장. 좋은 API 디자인하기
RESTful API
URI
URI 형식
REST 서비스를 위한 URI 경로 설계
HTTP 동사
URI query design
응답 코드
HTTP 헤더
자바스크립트에서 API에 접근하기
RPC API
RPC API 디자인
Filtering
API 버전 관리
시맨틱 버전 관리
REST API의 버전 관리 형식
RPC API 버전 관리 형식
객체 타입 표준화
날짜
API 문서화
REST 기반 API
RPC 기반 API
요약

3장. Docker 소개
Docker 컨테이너 소개
Docker 설치
Docker 볼륨
유니온 파일 시스템
볼륨 마운트
Docker 포트
이름을 지정해 시작한 컨테이너 제거하기
Docker 네트워킹
브리지 네트워킹
호스트 네트워킹
네트워크 단절
오버레이 네트워크
사용자 정의 네트워크 드라이버
사용자 정의 브리지 네트워크 만들기
Dockerfiles 작성
Docker용 애플리케이션 코드 빌드하기
Dockerfiles로 이미지 빌드하기
컨테이너에서 데몬 실행하기
Docker Compose
리눅스에 Docker Compose 설치하기
서비스 시작
compose 파일의 위치 지정
프로젝트 이름 지정
요약

4장. 테스트
테스트 피라미드
단위 테스트
의존성 주입과 모의 객체 만들기
코드 커버리지
Docker Compose로 테스트하기
벤치마킹 및 프로파일링
벤치마크
프로파일링
요약

5장. 공통 패턴
실패에 대비한 설계
패턴
이벤트 처리
타임 아웃
백 오프
회로 차단
상태 점검
쓰로틀링
서비스 탐색
부하 분산
캐싱
요약

6장. 마이크로서비스 프레임워크
좋은 마이크로서비스 프레임워크의 조건
Micro
설정
코드 생성
도구 지원(CI/CD, 크로스 플랫폼)
유지보수 가능성
형식(REST/RPC)
패턴
언어 독립성
다른 프레임워크와의 인터페이스 기능
효율성
품질
오픈 소스
보안
지원
확장성
Micro에 대해 배운 것
Kite
설정
코드 생성
도구 지원
유지보수 가능성
형식
패턴
언어 독립성
효율성
품질
오픈 소스
보안
지원
확장성
Kite 종합
gRPC
설정
코드 생성
도구 지원
유지보수 가능성
형식
패턴
언어 독립성
효율성
품질
오픈 소스
보안
지원
확장성
gRPC에 대한 정리
요약

7장. 로깅 및 모니터링
로깅 모범 사례
측정지표
측정 지표로 가장 잘 표현되는 데이터 타입
명명 규칙
저장소 및 조회
Grafana
로깅
상호 연관 ID를 사용한 분산 트레이스
Elasticsearch, Logstash 및 Kibana(ELK)
Kibana
예외
패닉 및 복구
요약

8장. 보안
암호화 및 서명
대칭 키 암호화
공개 키 암호화
X.509 디지털 인증서
TLS / SSL
외부에 대한 보안
2계층 또는 3계층 방화벽
웹 애플리케이션 방화벽
API 게이트웨이
DDoS 방지
애플리케이션 보안
예방
탐지
대응
복구
권한 혼동
공격자가 방화벽을 우회 할 수 있는 방법
시나리오
입력 유효성 검사
TLS
데이터 저장소 보안
OWASP
인증 및 권한 부여
암호 해싱
JWT
보안 메시지
공유 암호
대용량 메시지의 비대칭 암호화
유지 보수
컨테이너 패치
소프트웨어 업데이트
애플리케이션 코드 패치
로깅
요약

9장. 이벤트 주도 아키텍처
동기식과 비동기식 처리의 차이점
동기식 처리
비동기식 처리
비동기 메시지의 유형
풀/큐 메시징
푸시 메시징
명령과 조회의 역할 분리(CQRS)
도메인 주도 설계
DDD의 정의
기술적 부채
DDD의 세부 구조
소프트웨어
Kafka
NATS.io
AWS SNS/SQS
Google Cloud Pub/Sub
요약

10장. 지속적인 딜리버리
지속적인 딜리버리의 개념
수동 배포
지속적인 딜리버리의 이점
지속적인 딜리버리의 여러 관점
지속적인 딜리버리 프로세스
개요
컨테이너 오케스트레이션의 정의
컨테이너 오케스트레이션의 옵션
불변 인프라의 정의
Terraform
공급자
Terraform 구성 엔트리 포인트
VPC 모듈
출력 변수
인프라 구축
예제 애플리케이션
지속적인 딜리버리 작업 흐름
요약
펼쳐보기
이 책의 구성 및 특징

1장, ‘마이크로 서비스 소개’에서는 Go 언어가 마이크로서비스 구축에 적합한 이유를 살펴보고, 기본적인 마이크로서비스를 작성하는 데 필요한 모든 구성 요소를 갖춘 표준 라이브러리를 살펴본다. 먼저 표준 요소를 살펴보면 나중에 설명하는 프레임워크가 얼마나 유용한지 더 잘 알 수 있다.
2장, ‘좋은 API 디자인하기’에서는 좋은 API의 조건을 살펴본다. REST와 RPC의 차이점을 설명하면서 REST와 RPC을 소개한다. 또한 API 작성 및 버전 관리의 우수 사례를 검토한다.
3장, ‘Docker 소개’에서는 Docker 이미지로 애플리케이션을 래핑하는 방법과 개발 절차의 일부로 Docker 및 Docker Compose를 사용하는 방법을 설명한다. 애플리케이션에 필요한 작고 가벼운 이미지를 만드는 방법과 함께 Docker를 사용하고 Dockerfiles를 작성하는 좋은 관행도 알아본다.

4장, ‘테스트’에서는 마이크로서비스가 최고의 품질을 보장할 수 있도록 하는 다양한 기술을 소개한다. 단위 테스트, 행위 테스트 및 성능 테스트를 살펴보고 주요 테스트 프레임워크에 대한 실질적인 조언과 지식을 제공한다.
5장, ‘공통 패턴’에서는 마이크로서비스 아키텍처에서 자주 사용되는 표준 패턴 중 일부를 소개한다. 부하 분산, 회로 차단, 서비스 탐색 및 자동 조종 패턴을 자세히 살펴보고 이를 Go 언어에 맞게 구현하면 어떻게 되는지 살펴본다.
6장, ‘마이크로서비스 프레임워크’에서는 마이크로서비스에 필요한 많은 공통 기능을 구현하는 프레임워크를 살펴본다. 사용 예시를 통해 프레임워크들을 비교하고 대조해 본다.
7장, ‘로깅 및 모니터링’에서는 서비스가 올바르게 작동하는지 확인하기 위한 필수 기술을 알아보고, 정상 동작하지 않는 경우를 성공적으로 진단하고 디버깅하기 위한 모든 정보를 수집할 수 있도록 한다. 간단한 측정치 및 타이밍 정보를 위해 StatsD를 사용하는 방법, 로그 파일 정보를 처리하는 방법, 더 상세한 데이터를 기록하기 위한 접근 방법 및 서비스의 전체적인 개요를 제공하는 NewRelic과 같은 플랫폼을 알아본다.

8장, ‘보안’에서는 마이크로서비스의 인증, 권한 부여 및 보안을 살펴본다. JWT에 대해 알아보고, 요청을 확인하고 보안을 유지하기 위한 미들웨어의 구현 방법을 알아본다. 더 넓은 관점에서 TLS 암호화를 구현하는 이유, 서비스 간 비신뢰의 원칙을 적용하는 이유에 대해서도 설명한다.
9장, ‘이벤트 중심 아키텍처’에서는 이벤트를 사용해 마이크로서비스가 공동 작업을 수행할 수 있도록 하는 일반적인 패턴을 설명한다. 가장 일반적인 이벤트 패턴 중 두 가지를 배우고, Go에서 이를 구현할 수 있는 방법을 살펴본다. 또한 도메인 주도 디자인의 도입과 유비쿼터스 언어의 사용이 소프트웨어 개발 프로세스에 어떻게 도움이 되는지 알아본다.
10장, ‘지속적인 딜리버리’에서는 지속적인 딜리버리의 개념을 설명한다. 그 다음 이 책의 앞부분에서 작성한 간단한 애플리케이션 중 하나에 대한 지속적인 딜리버리 설정을 자세히 알아본다.
펼쳐보기
닉 잭슨 Nic Jackson
HashiCorp.com에서 Developer Advocate로 근무하면서 개발자의 플랫폼 사용을 지원하는 업무를 수행 중이다. 20년 이상 소프트웨어를 개발하고 소프트웨어 개발팀을 이끈 경력이 있다. 모바일 애플리케이션과 마이크로서비스 아키텍처의 열렬한 팬이며, 코드를 효율적으로 재사용하고 개발 절차를 개선할 수 있는 방법을 끊임없이 찾고 있다. 여가 시간에는 코딩 도장(Coder Dojo, https://coderdojo.com/)에서 코딩 관행, 절차, 기법들에 대해 발표하거나 홍보를 하며 Women Who Go 및 GoBride 그룹을 가르치고 멘토링한다.



옮긴이 이상식
성균관대학교 컴퓨터공학과를 졸업한 후 롯데캐피탈, 금융결제원을 거쳐 현재 금융보안원에서 일하고 있다. 현재 모의 해킹 업무를 수행하고 있지만 보안 외에도 파이썬 프로그래밍, 시스템 트레이딩 등 다양한 분야에 관심이 많다. 에이콘출판사에서 출간한 『iOS Application Security』(2017)를 공역했다.
펼쳐보기

독자서평 쓰기 로그인을 하시면 독자서평을 쓰실 수 있습니다.

독자서평 쓰기 로그인을 하시면 독자서평을 쓰실 수 있습니다.
도서평점
내용
등록하기
0/2000자
교환/반품 방법
  • 마이페이지 > 주문관리 > 주문/배송조회 > 주문조회 후  [1:1상담신청]  또는 고객센터 (1544-9020)
  • ※ 오픈마켓, 해외배송 주문상품 문의 시 [1:1상담신청] 또는 고객센터 (1544-9020)
교환/반품 가능기간
  • 변심반품의 경우 수령 후 7일 이내
  • 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
교환/반품 비용
  • 단순변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
  • 해외직배송 도서 구매 후 단순변심에 의한 취소 및 반품 시 도서판매가의 20% 수수료 부과
교환/반품 불가사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우 예) 만화, 잡지, 수험서 및 문제집류
  • 복제가 가능한 상품 등의 포장을 훼손한 경우 예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
상품 품절
  • 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁 해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

이 분야의 베스트

더보기 >

    이 분야의 신간

    더보기 >
      맨위로가기

      영풍문고 로고

      • 회사명 : (주)영풍문고
      • 대표이사 : 김경환
      • 소재지 : 서울특별시 종로구 청계천로 41 (우)03188
      • 사업자 등록번호 : 773-86-01800 ㅣ 통신판매업 신고번호 : 2023-서울종로-0130 [ 사업자정보확인 ]
      • 개인정보관리 책임자 : 조순제 ㅣ customer@ypbooks.co.kr ㅣ 대량주문 : webmaster@ypbooks.co.kr
      COPYRIGHT © YOUNGPOONG BOOKSTORE INC. ALL RIGHTS RESERVED.
      영풍문고 네이버블로그 영풍문고 인스타그램
      맨위로가기