본문 바로가기

추천 검색어

실시간 인기 검색어

Go 언어를 활용한 마이크로서비스 개발

매끄럽고 견고하면서도 효율적인 마이크로서비스 구현
닉 잭슨 저자(글) · 이상식 번역
에이콘출판 · 2018년 07월 27일
10.0
10점 중 10점
(2개의 리뷰)
집중돼요 (50%의 구매자)
  • Go 언어를 활용한 마이크로서비스 개발 대표 이미지
    Go 언어를 활용한 마이크로서비스 개발 대표 이미지
  • A4
    사이즈 비교
    210x297
    Go 언어를 활용한 마이크로서비스 개발 사이즈 비교 189x236
    단위 : mm
01 / 02
MD의 선택 무료배송 이벤트 소득공제
10% 27,000 30,000
적립/혜택
1,500P

기본적립

5% 적립 1,500P

추가적립

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 1,500P
  • 리뷰 작성 시, e교환권 추가 최대 300원
배송안내
무료배송
배송비 안내
국내도서/외국도서
도서 포함 15,000원 이상 구매 시 무료배송
도서+사은품 또는 도서+사은품+교보Only(교보굿즈)

15,000원 미만 시 2,500원 배송비 부과

교보Only(교보배송)
각각 구매하거나 함께 20,000원 이상 구매 시 무료배송

20,000원 미만 시 2,500원 배송비 부과

해외주문 서양도서/해외주문 일본도서(교보배송)
각각 구매하거나 함께 15,000원 이상 구매 시 무료배송

15,000원 미만 시 2,500원 배송비 부과

업체배송 상품(전집, GIFT, 음반/DVD 등)
해당 상품 상세페이지 "배송비" 참고 (업체 별/판매자 별 무료배송 기준 다름)
바로드림 오늘배송
업체에서 별도 배송하여 1Box당 배송비 2,500원 부과

1Box 기준 : 도서 10권

그 외 무료배송 기준
바로드림, eBook 상품을 주문한 경우, 플래티넘/골드/실버회원 무료배송쿠폰 이용하여 주문한 경우, 무료배송 등록 상품을 주문한 경우
주문정보를 불러오는 중입니다.
기본배송지 기준
배송일자 기준 안내
로그인 : 회원정보에 등록된 기본배송지
로그아웃 : '서울시 종로구 종로1' 주소 기준
로그인정확한 배송 안내를 받아보세요!

이달의 꽃과 함께 책을 받아보세요!

1권 구매 시 결제 단계에서 적용 가능합니다.

해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.

북카드

키워드 Pick

키워드 Pick 안내

관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.

마이크로서비스의 아키텍처를 소개한다. API 디자인· 컨테이너화(Docker)· 테스트· 공통 아키텍처 패턴 등 마이크로서비스의 구축에 필수적인 내용부터 모니터링· 보안· 배포 등 서비스 운용과 관련된 고려 사항까지, 마이크로서비스의 설계와 개발 전반에 대해 다룬다. 마이크로서비스를 매끄럽고 견고하면서도 효율적으로 구현할 수 있도록 지원하는 Go의 언어적인 특성과 프레임워크를 비롯한 Go의 스택을 소개한다.

작가정보

저자(글) 닉 잭슨

저자 닉 잭슨
HashiCorp.com에서 Developer Advocate로 근무하면서 개발자의 플랫폼 사용을 지원하는 업무를 수행 중이다. 20년 이상 소프트웨어를 개발하고 소프트웨어 개발팀을 이끈 경력이 있다. 모바일 애플리케이션과 마이크로서비스 아키텍처의 열렬한 팬이며, 코드를 효율적으로 재사용하고 개발 절차를 개선할 수 있는 방법을 끊임없이 찾고 있다.
여가 시간에는 코딩 도장(Coder Dojo, https://coderdojo.com/)에서 코딩 관행, 절차, 기법들에 대해 발표하거나 홍보를 하며 Women Who Go 및 GoBride 그룹을 가르치고 멘토링한다.

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

작가의 말

마이크로서비스 아키텍처가 웹 기반 애플리케이션을 구축하는 업계 표준으로 자리잡으며 전 세계를 휩쓸고 있다. Go 언어는 마이크로서비스 아키텍처를 구축하기 위해 필요한 요소들을 잘 갖추고 있다. Go 언어의 강력한 커뮤니티, 자연스러운 문법 및 정적으로 연결된 바이너리 산출물은 다른 기술과 쉽게 통합할 수 있게 해준다. 또한 일관성 있고 직관적인 방식으로 마이크로서비스의 규모를 관리하게 해준다. 이 책은 일반적인 패턴과 관행에 대해 설명하고, Go 프로그래밍 언어를 사용해 패턴을 적용하는 방법을 보여준다.
아키텍처 설계 및 RESTful 통신의 기본 개념을 알아보며, 개발 및 운영 단계의 확장성을 위해 관리 가능한 코드를 제공하는 패턴을 소개한다. 또한 Go 언어에서 이러한 개념과 패턴을 실제로 구현하는 방법에 대한 예제를 제공한다.
이 책은 실제 사례를 통해 모든 규모의 팀이 마이크로서비스로 문제를 해결할 수 있는 방법을 설명한다. 새로운 애플리케이션을 계획하고 있든 기존의 일체형 애플리케이션으로 작업하든 상관없다. Docker와 Docker Compose에 대해 이해하고, 이를 사용해 마이크로서비스의 의존성을 분리하고 환경을 구축하는 방법을 알 수 있다. 마지막으로 마이크로서비스를 모니터링하고 테스트하며 안전한 서비스를 구축하기 위한 다양한 기술을 살펴본다. 이 책을 다 읽고 나면 마이크로서비스의 시스템 복원력과 Go 스택의 장점을 알 수 있다.

목차

  • 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 모듈
    ____출력 변수
    ____인프라 구축
    __예제 애플리케이션
    ____지속적인 딜리버리 작업 흐름
    __요약

출판사 서평

★ 이 책에서 다루는 내용 ★

- 마이크로서비스 계획 및 마이크로서비스 아키텍처 설계
- RESTful API와 데이터베이스를 사용한 마이크로서비스 작성
- 마이크로서비스 설계에 사용하는 일반적인 용어와 패턴 이해
- 마이크로서비스의 수평적 규모확장에 사용하는 도구와 자동화 방법
- 개발 주기를 획기적으로 개선해줄 Docker 및 Docker Compose를 사용한 컨테이너화 사용법
- 모니터링, 로깅, 서비스 탐색, 자동화를 통한 서비스 확장으로 안전하게 시스템을 관리하는 법
- Go 언어를 사용한 마이크로서비스 테스트 및 API 통합 테스트

★ 이 책의 대상 독자 ★

처음으로 마이크로서비스 아키텍처를 사용해 프로젝트에 적용할 만한 기술을 찾고 있는 개발자

★ 이 책의 구성 ★

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장, ‘지속적인 딜리버리’에서는 지속적인 딜리버리의 개념을 설명한다. 그 다음 이 책의 앞부분에서 작성한 간단한 애플리케이션 중 하나에 대한 지속적인 딜리버리 설정을 자세히 알아본다.

★ 옮긴이의 말 ★

Go 언어는 구글에서 발표한 언어로, 꾸준히 관심을 얻고 사용자를 늘려 왔다. 이제는 안정화 단계에 들어서 고정 사용자 층을 확보했으며, 구글 내부에서 개발을 위해 사용하는 공식 언어 중 하나로 자리잡고, 도커 컨테이너 개발에도 사용하는 언어가 됐다. 또한 풍부한 라이브러리를 보유하고 있어서 간단한 문법으로도 손쉽게 다양한 기능을 구현할 수 있으며 특히 네트워크, 동시성 등 분산 환경에서 필요한 기능을 강력히 지원한다.
마이크로서비스는 커다란 애플리케이션을 특화된 역할에 따라 분리된 여러 개의 작은 서비스로 쪼개고, 그들 사이의 상호작용을 통해 하나의 시스템처럼 동작하도록 설계하는 방식을 말한다. 사전에 정의된 인터페이스만 따르면 상호 연동이 가능하기 때문에 유연성과 확장성이 좋다. 또한 최근 REST API가 일반화되고 도커(Docker)와 같은 컨테이너 기술, AWS와 같은 클라우드 컴퓨팅 환경이 보급된 덕분에 더 쉽고 빠르게 구현할 수 있다.
이 책의 제목인 『Go를 활용한 마이크로서비스 개발』을 구성하는 두 개의 키워드를 살펴보면 내용을 쉽게 짐작할 수 있다. 최근 서비스 개발 트렌드라고 할 수 있는 마이크로서비스의 설계와 구현 전반에 대해 소개하면서, 이를 지원하는 Go라는 트렌디한 언어의 특성과 라이브러리 및 프레임워크를 보여준다.
Go 언어를 바탕으로 마이크로서비스를 배워보려는 독자에게는 마이크로서비스의 개념과 구성 요소 및 설계 기법 등을 제공한다. 마이크로서비스 설계에 대한 지식을 기반으로 마이크로서비스의 구현과 운영상의 세부 사항을 실습해 보고자 하는 독자에게는 안정적이고 간결하며 모범적인 구현 사례를 제공한다.
설령 양쪽 모두 생소하더라도, 마이크로서비스에 대한 충실한 설명과 Go 언어의 간결한 문법 및 깔끔한 예제를 제공하고 있는 이 책은 “Go 언어의 실제 활용”과 “마이크로서비스의 이해”라는 두 마리 토끼를 한 번에 잡을 수 있는 괜찮은 시작점이 되리라고 생각한다. 기본적인 Go 언어 문법을 찾아보는 노력은 필요할 수도 있다. 이 책을 통해 많은 독자들이 빠르게 변화하는 소프트웨어 개발 생태계의 일면을 이해해서 효율적이면서도 안정적인 애플리케이션 개발에 필요한 지식을 익힐 수 있기를 바란다.

기본정보

상품정보 테이블로 ISBN, 발행(출시)일자 , 쪽수, 크기, 총권수, 원서(번역서)명/저자명을(를) 나타낸 표입니다.
ISBN 9791161751900
발행(출시)일자 2018년 07월 27일
쪽수 460쪽
크기
189 * 236 * 25 mm / 846 g
총권수 1권
원서(번역서)명/저자명 Building microservices with Go/Jackson, Nic

Klover

구매 후 리뷰 작성 시, e교환권 200원 적립

10점 중 10점
/도움돼요
이 책 마이크로서비스 잘읽혀요
10점 중 10점
/집중돼요
조ㅗ아요

문장수집 (1)

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여주는 교보문고의 새로운 서비스입니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 "좋아요“ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보 없이 삭제될 수 있습니다.
리워드 안내
구매 후 90일 이내에 문장수집 작성 시 e교환권 100원을 적립해드립니다.
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
판매가 5,000원 미만 상품의 경우 리워드 지급 대상에서 제외됩니다. (2024년 9월 30일부터 적용)

구매 후 리뷰 작성 시, e교환권 100원 적립

Go 언어를 활용한 마이크로서비스 개발
Go 언어를 활용한 마이크로서비스 개발

교환/반품/품절 안내

    상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

    TOP