장바구니 담기 close

장바구니에 상품을 담았습니다.

Go 성능 최적화 가이드

Go 성능 최적화 가이드

  • 바르틀로미에 플로트카
  • |
  • 디코딩
  • |
  • 2023-09-05 출간
  • |
  • 580페이지
  • |
  • 183 X 235 X 22mm
  • |
  • ISBN 9791198140838
판매가

40,000원

즉시할인가

36,000

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
36,000

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

[이 책의 핵심 내용]
이 책은 Go 언어를 단순히 효과적(Effective)으로 작성하는 것을 넘어 효율적(Efficient)으로 소프트웨어를 개발하는 방법을 알려 준다. 저자는 효율성의 의미를 정의하는 것에서부터 이야기를 시작하여, 컴퓨터 성능의 발전과 하드웨어 비용의 감소로 인해 간과하기 쉬운 최적화의 필요성과 실용적인 수행 방법에 대해 설명한다. 이 책은 개발자 기술 면접에서 자주 언급되는 시간 복잡도와 공간 복잡도 분석 수준을 넘어서, 소프트웨어의 효율성을 측정해 개선이 필요한 부분을 찾고 어떻게 유의미한 개선을 할 수 있는지와 개발 프로세스 전반에 적용할 수 있는 모범 사례들을 소개한다. 이는 Go 언어뿐만 아니라 다른 언어에도 충분히 적용 가능한 내용으로 다른 언어를 주로 사용하는 개발자에게도 유익한 내용이 될 것이다.

[이 책의 대상 독자]
 Go 또는 다른 최신 프로그래밍 언어들로 프로그램을 설계·생성·변경하려는 소프트웨어 개발자들
 데브옵스, 사이트 신뢰성 엔지니어, 시스템 관리자, 플랫폼 팀 등 소프트웨어를 운영하는 분들
 소프트웨어 효율성을 높이고 비용을 절감하려는 매니저, 프로덕트 매니저, 리더들

[이 책의 구성]
 1장: 효율성의 개념과 소프트웨어 효율성이 중요한 이유를 다룬다.
 2장: 효율성 측면에서 Go 언어를 소개한다.
 3장: 최적화를 어떻게 생각하고 접근해야 할지 설명한다. 효율성을 개선하려면 오랜 시간이 필요하지만 체계적으로 접근하면 많은 시간과 노력을 아낄 수 있다.
 4~5장: 레이턴시, CPU, 메모리 자원을 다룬다. 그리고 운영체제와 Go가 이것들을 어떻게 추상화하는지 설명한다.
 6장: 소프트웨어 최적화와 관련해 데이터 기반 의사결정의 의미를 다룬다.
 7장: 실험의 신뢰성과 복잡도 분석을 논의한다.
 8~9장: 벤치마킹과 프로파일링 기법을 설명한다.
 10~11장: 다양한 최적화 예제를 10장에서 보여 주고, 마지막 11장에서는 Go 커뮤니티에서 경험한 다양한 효율성 패턴과 기법에 대해 공부하고 요약한다.


[추천사]
『Go 성능 최적화 가이드』는 놀라우면서도 통찰력 있는 책으로, 소프트웨어 효율성에 대한 생각을 바꿔 줄 것이다. 이를 통해, 독자들은 코드를 최적화하면서 데이터에 기반한 평가를 하고, 최적화가 가능한 패턴인지 알아차리는 방법을 배울 것이다. 코드를 작성할 때 효율성을 생각하게 하고, 이를 쉽게 해내는 데 이 책이 큰 도움이 되리라 확신한다!
_사스와타 무케르지(레드헷 엔지니어)

Go 언어가 배우기 쉽고 성능도 좋다는 것은 이미 널리 알려져 있다. 이를 방증하듯, 국내에서도 Go 언어 관련 행사에 몰려드는 사람들의 수가 점점 증가하고 있다. 하지만 "쉽다"는 부분엔 동감해도 "좋다"는 부분엔 여전히 의구심을 품는 이들이 있다. 이 책에서는 Go 언어 런타임 뒤에 숨겨진 컴퓨터의 물리적 특징과 프로젝트에서 Go를 사용할 때 고려할 사항들을 살펴본다. 또한 Go로 작성된 프로그램의 성능을 측정하는 방법과 현대적인 배포 환경에서 이를 더욱 최적화하는 방법까지 안내하며 "효율적으로 더 좋은" 프로그램을 만들 수 있도록 돕는다. Go 언어를 진지한 목적으로 사용하려는 사람들에게 이 책을 적극 추천한다. 나는 Go 언어가 처음 배포될 때부터 10년 넘게 주력 언어로 Go를 사용해 왔다. Golang Korea의 오거나이저를 역임했고 현재는 42dot에서 백엔드 엔지니어로 일하며 실무에 Go 언어를 적극 사용하고 있다.
_이호민(42dot 백엔드 엔지니어, 20년 차 개발자)

『Go 성능 최적화 가이드』를 읽으면서 Go 코드의 효율성에 대한 깊이 있는 관점을 얻을 수 있었다. Go 커뮤니티에서 활동하며 많은 자료를 접해 왔지만, 이 책은 다른 책들과 차별화된 내용을 제공한다. 특히, 초보자도 이해하기 쉽게 구성되어 있어 Go 성능 최적화 방법을 습득하는 데 큰 도움이 될 것이다. Go 개발자라면 이 책을 통해 Go의 내부까지 깊이 있는 인사이트를 얻어 가길 바란다.
_한성민(Golang Korea 오거나이저, ML GDE)

목차

Chapter 1 소프트웨어 효율성이 중요한 이유
1.1 성능의 뒷면
1.2 효율성에 관한 일반적인 오해
1.3 코드의 성능을 끌어올리는 열쇠
1.4 마치며

Chapter 2 효율적인 Go 언어
2.1 Go에 대해 알아야 할 기본 사항들
2.2 고급 언어 요소
2.3 Go는 정말 빠를까?
2.4 마치며

Chapter 3 효율성 완전 정복
3.1 낭비 제거 이상의 최적화는 제로섬 게임
3.2 최적화 작업의 어려움
3.3 목표에 대한 확실한 이해
3.4 효율성 문제에 대처하는 태도
3.5 최적화 설계 수준들
3.6 효율성 인식 개발 절차
3.7 마치며

Chapter 4 Go의 CPU 자원 사용법
4.1 최신 컴퓨터 구조의 CPU
4.2 어셈블리어
4.3 Go 컴파일러 이해
4.4 CPU와 메모리 벽 문제
4.5 스케줄러
4.6 언제 동시성을 사용할 것인가?
4.7 마치며

Chapter 5 Go의 메모리 자원 사용법
5.1 메모리 관련성
5.2 메모리 문제 유무 파악
5.3 물리적 메모리
5.4 운영체제 메모리 관리
5.5 Go 메모리 관리
5.6 마치며

Chapter 6 효율성 관찰 가능성
6.1 관찰 가능성
6.2 [예시] 레이턴시 계측
6.3 효율성 메트릭의 의미 체계
6.4 마치며

Chapter 7 데이터 기반 효율성 평가
7.1 복잡도 분석
7.2 벤치마킹의 기술
7.3 실험의 신뢰성
7.4 벤치마킹 수준
7.5 마치며

Chapter 8 벤치마킹
8.1 마이크로벤치마크
8.2 마이크로벤치마킹 팁과 트릭
8.3 매크로벤치마크
8.4 일반적인 매크로벤치마킹 워크플로
8.5 마치며

Chapter 9 데이터 기반 병목 현상 분석
9.1 효율성을 위한 근본 원인 분석
9.2 Go에서의 프로파일링
9.3 프로파일링 시그널 추출
9.4 공통 계측 프로파일링
9.5 조언과 요령
9.6 마치며

Chapter 10 최적화 예제
10.1 Sum 예제
10.2 레이턴시 최적화하기
10.3 메모리 사용량 최적화하기
10.4 동시성을 이용한 레이턴시 최적화
10.5 추가 사항: 고정관념 벗어나기
10.6 마치며

Chapter 11 최적화 패턴
11.1 일반 패턴
11. 2 ‘세 가지 R’ 최적화 방법
11.3 리소스 누수 방지
11.4 사전 할당의 중요성
11.5 배열로 인한 문제: 메모리 남용
11.6 메모리 재사용과 풀링
11.7 마치며
11.8 다음 나아갈 단계는?

APPENDIX A 레이턴시 냅킨 수학 계산

찾아보기

도서소개

 

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.