Go 성능 최적화 가이드

(6 customer reviews)
  • 발행일 : 2023년 9월 8일
  • 지은이 : 바르틀로미에 플로트카
  • 옮긴이 : Golang Korea
  • 페이지 : 580쪽
  • ISBN : 979-11-981408-3-8
  • 난이도 : 중고급
  • 정가 : 40,000원 → 판매가 : 36,000원(10% off)
  • 판형 : 46배변형판(183*235)

40,000

Description

가장 효율적이고 실용적인 소프트웨어를 향한 여정
개발자들이여 ‘Go’ 하라!

기술 발전과 빠른 시장 변화, 늘어나는 시스템 복잡성으로 인해 개발자들은 ‘소프트웨어 효율성’이라는 불편한 주제를 피하곤 한다. 그러나 개발 비용을 줄이고 비즈니스에서 성공하려면 관찰 가능성에 기반한 성능 최적화가 필수다. 이 책은 어떤 개발자라도 소프트웨어 효율성을 효과적으로, 전문적으로 쉽게 다루도록 돕는 데 초점을 맞추었다. 이를 위해 필자는 더 빠른 시스템 성능을 구현하고 더 적은 자원을 소모하는 데 필요한 도구와 지식을 구체적으로 제공한다.

▶︎ 지은이 소개

바르틀로미에 플로트카
바르틀로미에 (바르텍) 플로트카는 구글 시니어 소프트웨어 엔지니어(구 레드햇 수석 소프트웨어 엔지니어)이며, 현 CNCF(https://cncf.io) TAG 관찰 가능성 그룹의 기술 리드다. Go로 작성한 인기 있고 안정적인, 성능과 효율성 중심의 분산 시스템을 만드는 작업과 관련된 관찰 가능성 구현에 기여해 왔다. 프로메테우스, gRPC 에코시스템의 라이브러리를 포함한 다양한 오픈소스 프로젝트의 핵심 메인테이너다. 2017년에는 파비안 라인아르츠와 함께 타노스(https://thanos.io)라는 인기 있는 오픈소스 분산 타임시리즈 데이터베이스를 만들었다. 이 프로젝트는 저렴하면서도 효율적인 메트릭 모니터링을 지향함으로써 수백 개의 성능 및 효율성 개선을 이뤘다. 바르텍은 Go의 가독성, 신뢰성, 효율성에 깊은 관심을 기울여 왔고, 수많은 도구를 만드는 데 기여했다. 또한 블로그 포스팅과 가이드를 통해, 개발자들이 실용적이면서도 효율적인 Go 애플리케이션을 작성할 수 있도록 돕고 있다.

ⓒ Gosia Michalak

 

▶︎ 옮긴이 소개

Golang Korea (고랭코리아) 
고랭코리아는 한국 Go 언어 개발자 소통과 생태계 개선을 위해 2011년에 개설된 커뮤니티로, 현재 약 7,300명의 구성원이 함께하고 있다. 고랭코리아는 디코딩과 함께 깊이 있는 Go 언어 서적을 만들기 위해 힘쓰고 있으며, Go 언어 거대 연례행사인 고퍼콘 코리아를 기획·운영하고 있다. 또한 커뮤니티의 핵심 가치에 해당하는 볼륨, 다양성, 연결을 구현하기 위해 전국을 돌아다니며 Go 언어를 알리는 ‘Go To Everywhere(전국 방방고고)’ 행사를 하며 국내 Go 언어 생태계를 개선하는 데 힘을 보태고 있다.

 

▶︎ 출판사 리뷰

[이 책의 핵심 내용]

이 책은 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의 CP U 자원 사용법
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 레이턴시 냅킨 수학 계산

찾아보기

 

▶︎ 예제 소스

이 책에서는 도구와 기법, 좋은 실습을 이해할 수 있도록 코드 예제를 제공한다. 모든 예제는 Go 프로그래밍 언어로 작성했으며, Go 1.18 이상의 버전에서 동작한다.

https://github.com/decodingbook/Efficient-Go (디코딩 깃허브)

https://github.com/efficientgo/examples (저자 깃허브)

 

▶︎ 정오표

https://github.com/decodingbook/Efficient-Go

Additional information

지은이

바르틀로미에 플로트카

옮긴이

Golang Korea

발행일

2023년 9월 8일

페이지

580쪽

ISBN

979-11-981408-3-8

판형

46배변형판(183*235)

예제 소스

https://github.com/efficientgo/examples

정오표

https://github.com/decodingbook/Efficient-Go

6 reviews for Go 성능 최적화 가이드

  1. 아무개

    Go 언어를 아는가?

    C 언어를 대체할 아주 극강의 퍼포먼스 언어 Go이다!

    Go의 퍼포먼스를 느끼고 싶었는데 이번 기회에 아주 즐겁게 이책을 소화할 수 있었다.

    이 책은 Go 언어를 소개하지 않으니 무조건 선행적으로 Go 언어나 다른 프로그래밍 2~3개 이상 정도는 알고 있어야 한다.

    Go 언어를 소개하면서 다른 언어나 문법, 다른 각도로 설명하는 부분이 많아 프로그래밍을 처음 접하는 사람들에게는 소화하기 어려울 수가 있다.

    그래서 사용자 대상은…

    초급 – 초중급 – 중급 – 중고급 – 고급

    현업에 안 계시는 분들은 무슨 말 하는지 이해가 어려울 것이다!! ㅠ_ㅠ

    아무튼 이 책은 Go 언어 개발자들을 위한 귀중한 자원으로, Go 언어를 사용하여 더 효율적이고 빠른 프로그램을 개발하고자 하는 사람들에게 큰 도움이 된다.

    Go 언어로 작성된 소프트웨어를 개발하거나 이미 개발한 코드를 최적화하려는 개발자들을 위한 유용한 정보를 담고 있다. 나는 읽으면서 많은 가치 있는 통찰력을 얻었고, 다음과 같은 몇 가지 중요한 측면을 강조하고 싶다.

    첫째, 이 책은 Go 언어의 내부 동작 및 특성을 깊이 있게 다루며, 개발자들에게 Go 코드의 성능을 최적화하는 데 필요한 기본 개념을 제공한다. 이러한 이해는 높은 성능을 원하는 개발자들에게 필수적이다!

    둘째, 저자는 성능 최적화를 위한 다양한 기법과 도구에 대해 자세하게 설명한다. CPU 프로파일링, 메모리 프로파일링, 병목 현상 분석 등 다양한 주제를 다루며, 실제로 어떻게 코드를 개선할 수 있는지에 대한 실용적인 조언을 제공한다!!

    셋째, 예제 코드와 실제 프로젝트에 대한 적용 사례를 풍부하게 제공하여 이론을 실전으로 옮기는 데 도움을 준다. 각 예제는 성능 향상을 위한 구체적인 단계와 코드 수정을 제시하며, 개발자들이 실제 프로젝트에 적용하기 쉽게 설명되어 있다!!!

    마지막으로, Go 언어 커뮤니티와의 연결을 강조하며, Go 언어 성능 최적화에 관심 있는 사람들이 지식을 공유하고 협력할 수 있는 방법을 제시한다. 이것은 Go 언어 생태계를 더욱 발전시키는 데 기여할 수 있는 중요한 측면 중 하나이다!!!!

    Previous imageNext image

    전 세계적으로 Go 언어는 점점 확장되어지고 있다.

    많은 언어가 역사의 뒤안길로 사라지고, 사장 되지만 Go는 유일하게 살아 남았다!

    (스칼라(Scala) 사요나라~ 빠이~ 짜이찌엔~)

    Go는 여전히 저평가다… C언어를 대체할 수 있기를 고대해본다. ^^

    “Go 언어 성능 최적화 가이드”는 Go 언어를 사용하는 개발자들에게 무궁무진한 가치를 제공하는 책으로, 성능을 향상시키고자 하는 모든 Go 프로젝트의 필독서라고 할 수 있다. 나는 이 책을 통해 Go 언어의 성능 최적화에 대한 지식을 확장하고 개선된 코드를 작성하는 데 큰 도움을 받았으며, 모든 Go 개발자들에게 적극 추천하고 싶다.

  2. 유재욱

    2009년에 세상에 소개된 Go 언어는 13년 동안 많은 고퍼(Gopher)들의 사랑을 받으며 쑥쑥 성장해가고 있는 언어입니다. 특히 Docker, Kubernetes 등의 클라우드 인프라에 많이 사용되는오픈소스 제품들이 Go 언어로 개발되어 DevOps를 중심으로 많이 활용되고 있습니다.

    국내에도 Go 언어가 소개된지 꽤 시간이 흘러 Go 언어와 관련된 많은 도서들을 접할 수 있습니다. 다만 처음 언어를 접하는 개발자들을 위한 도서들이 대부분이라 더 깊은 내용을 다루는 책이 없어 아쉬웠습니다. Go 언어를 배우고, 실무에서 사용하지만 더 잘 활용할 수 있는 방법에 대해 고민하는 것이 개발자란 직업의 숙명이라고 생각합니다. 이 책은 이런 갈증을 해소해 줄만한 책이라고 생각됩니다. Effective(효과적)를 넘어 Efficient(효율적)으로 개발하는 방법에 대해 알려줍니다. 효율적으로 개발하는 방법을 Go 언어로 설명할 뿐 다른 언어에서도 도움이 될만한 내용이 많습니다.

    그리고 이 책이 특별한 다른 이유는 Go 언어를 사랑하는 고퍼들이 모여있는 커뮤니티의 구성원들이 번역했다는 점입니다. Go 언어를 사용하면서 느낀 경험들을 활발히 나누는 Golang Korea에서 Go 언어에서 효율성을 다루는 책을 고퍼들이 모여서 번역한겁니다. 책이 다루는 내용도 기존에 접하기 쉽지 않은 내용인데 변역한 방식도 의미있는 것 같습니다.

    효율성에 대한 내용은 다른 언어에서 다루는 부분과 유사한 점이 많습니다. 단지 최신 언어이고 현재의 개발환경이 과거와 많이 다르기에 효율성에 대한 접근도 조금 다르게 해야한다는 부분은 많이 공감되었습니다. 효율성에 대한 기초적인 내용을 시작으로 Go 언어의 특징을 깊이 파악하여 어떤 효율성 문제가 있을 수 있는지 짚어봅니다. 그리고 데이터를 기반으로 효율성을 향상시킬 수 있도록 데이터를 수집하는 방법과 활용에 대해서도 상세히 설명합니다.

    소프트웨어 개발자라고 많이 불리지만 소프트웨어 엔지니어라는 표현도 많이 사용합니다. 엔지니어는 완벽한 것을 찾지 않습니다. 적절히 좋은 것을 빠르게 찾아서 적용하기 위해 늘 트레이드 오프를 고민합니다. 효율성이라는 단어도 같은 의미를 담고 있다고 생각합니다. Go 언어로 개발자의 필수 덕목을 지키고자하는 분이라면 한 번 쯤 읽어볼 만한 책이라고 생각됩니다. 저도 리뷰를 위해 빠르게 읽었는데 다시 시간을 내어 천천히 읽어봐야겠습니다.

    “한빛미디어 [나는 리뷰어다] 활동을 위해서 책을 제공받아 작성된 서평입니다.”

  3. gogoco

    C를 대체할 언어를 알아보며 여러가지 언어를 찾아보았는데,

    그 중 Rust 와 Go 가 가장 유력해 보였고 어느 정도 알아 본뒤 Go로 결정하였습니다.

    가장 큰 이유는 Rust의 러닝커브가 매우 가팔라 배우기 힘들것 같았고,

    Go의 마스코트(?)가 귀여운 것도 한 몫 했습니다.

    우선 Go는 배우기 쉬운 언어이고 기본적으로 몇몇 코드 컨벤션을 강제하고 있어서

    여럿이서 협업하기도 좋은 언어인것 같습니다.

    이 책을 읽기전 Go에 대한 사전지식은 간단한 문법과 사용법만을 알고있었고,

    그 정도만 알아도 책을 충분히 읽고 따라갈 수 있었습니다.

    오히려 안좋은 GO습관이 없어서 책에서 알려주는 효율적인 방법을 익히기 더 좋았습니다.

    이 책은 11장으로 이루어져 있고, 11장 모두 다른 사람이 번역을 맡았습니다.

    한국의 가장큰 Go 커뮤니티인 Golang Korea의 구성원들이 직접 번역을 진행하는 신선한 방식을 사용했습니다.

    이 책은 Go 언어를 단순히 효과적으로 작성하는 것을 넘어 효율적으로 사용하는 법을 알려주고 있으며,

    Go언어 뿐만 아니라 타 언어에서도 알면 좋을법한 내용을 많이 알려주고 있습니다.

    Go언어의 기본정도만 알고 있으신분 부터 GO를 활용해 기존 프로그램을 최적화하고 발전시키는게 목표인 분까지

    폭넓게 추천하고 싶은 책입니다.

    “한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다.”

  4. 자윰

    글을 쓰기에 앞서, 나는 Golang을 아주 조금밖에 다루지 못하는 사람이다. Go를 정말 잘 다루는 사람들의 경우에는 책을 읽고 난 후의 감상이 다르게 다가올 수 있기 때문에 이 부분을 참고하여 리뷰를 읽어주세요.

    예전부터 Go는 나에게 배우고 싶었던 언어이다. 최근 많이 쓰이는 다양한 인프라 서비스들이 Go로 작성되어 있고, 유명한 프로그래밍 언어 – C, Java, Python 등 – 의 장점 등을 모아 사용하기 쉽다고 하며, 주니어 개발자가 써도 최소한 평타(?)는 친다는, 요즘 인기 있는 언어였기 때문이다. 내 직군에서도 API 서버를 운영하는 부분은 Go를 도입하는 추세였기에 Go는 항상 잘 다루고 싶은 언어인 존재이다.

    이전에 Go에 관심이 생겨서 동아리 내에서 스터디를 했던 적이 있었는데, 그때 이후로 Go를 사용할 기회가 없어서 사용하지 않다가 이번에 책을 읽으면서 Go의 문법을 다시 한 번 살펴보았다. 러닝커브가 낮은 편이라고 소문이 난 언어이기도 하고 C를 다룬 경험이 있어서 문법 자체를 익히는 건 그렇게 어렵지는 않았다. 그렇게 Go를 한 번 살펴보고 이 책을 읽게 되었다.

    이 책은 Golang Korea에서 옮겼는데, 특이한 점은 각 챕터별로 번역하신 분들이 다르다는 것이었다. 빠르게 번역하기 위하여 이 방법을 선택했다고 하는데, 처음에 챕터별로 번역한 분들이 달라 읽기 좀 불편하지 않을까 걱정했지만 어투나 용어 등이 통일되어 있어 읽는데 불편함은 없었다.

    이름에서 볼 수 있듯 이 책은 최적화를 중점에 두고 설명을 이어나간다. 개인적으로 흥미로웠던 부분은 Go의 CPU와 메모리 자원 사용법을 설명해주는 것이었다. 어떤 언어를 배우든 어느 정도 언어를 배우면 조금 더 해당 언어를 잘 쓰기 위해서 이 언어가 CPU와 메모리를 어떻게 사용하는지 궁금해지는데, 이 부분에 있어서 이 책은 그 부분을 깊게 다루고 있다. 다만, 컴퓨터 구조, 운영체제, 시스템 프로그래밍, 컴파일러 등에 대한 사전 지식이 부족하면 읽는데 어려울 수도 있을 것 같다.

    다양한 벤치마킹과 최적화 예시도 담고 있었는데, Go를 주로 사용하는 사람들이 최적화를 해야 할 경우에 읽어보면 도움이 될 것이다. 아직 Go를 본격적으로 다루어보지는 않아서 자세히 읽지는 않았지만, 추후 Go를 본격적으로 사용하게 되고, 최적화의 필요성이 생길 때 해당 부분을 참고하여 최적화를 해볼 생각이다.

    어느 정도 Go를 다룬 경험이 있고, 내용이 내용인만큼 컴퓨터 구조와 운영체제 등 컴퓨터 공학의 기본이 되는 내용들에 지식이 있으며 최적화의 필요성이 있는 사람들에게 이 책을 권한다.

    “한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다.”

  5. 장대혁

    이 책을 보기 앞서서 먼저, GO에 대한 기본 문법과 간단한 코딩은 할 수 있어야 합니다. 그리고, 소프트웨어 개발 경험이 2년 이상 있는 분들이 적합해보이는 책입니다. Go를 이용해서 효율적으로 소프트웨어 개발을 하는 것을 다루는 책이기에, 그러한 면에서의 경험과 지식이 있는 분들에게 도움이 될 것 같습니다.

    Go에 대한 이해를 심층적으로 파고들고 있습니다. CPU와 메모리 자원을 다루는 4~5장을 보면 컴퓨터 공학에 대한 지식과 깊이를 조금은 요구하는 부분입니다. CPU 프로파일링와 병목을 어떻게 분석하면 좋을지 등 정말 업무에서 도움이 될법한 내용들입니다. 목차를 보고, 그러한 경험과 단어가 주는 느낌을 아는 분들이 보면 좋을 책입니다. Go에 대한 문법과 코딩을 배우고 싶다면, 이 책은 맞지 않습니다.

    Go를 업무에서 잘 쓰는 엔지니어라면, 벤치마킹과 최적화 부분을 자세히 보면 좋을 것입니다. 이를 토대로, 구글링을 추가적으로 하면서 업무에 접목해보면 꽤 도움될 거라고 생각합니다. Go에 대한 기본기, 컴퓨터 공학에 대한 지식, 그리고 소프트웨어 개발 경험 또는 서버 개발 경험 등의 현업 개발 경험까지 해서 모두 충족된 분이라면 이 책은 정말 큰 도움이 될 책입니다.

    “한빛미디어 [나는 리뷰어다] 활동을 위해서 책을 제공받아 작성된 서평입니다.”

  6. 김성길

    C++을 배우다가 도저히 이걸 고급과정까지 못넘어갈 것 같다고 생각하여 유사하면서 쉬운 언어를 찾아보다가 발견한 Go. 컴파일 시간도 짧고 병렬처리 방법도 간단하다는 장점과 웹서버,마이크로서비스,클라우드서비스 제작 목적으로 사용된다는 이점 덕분에 Go를 기초과정까지 학습했었다. 이 책은 단계를 따진다면 중간과 고급과정 사이라고 생각한다. 책을 통해 코드가 최적화 가능한 패턴인지 확인하고 진행하는 효율성을 고려한 최적화, 프로그램 성능 측정 방법, 런타임과 관련된 컴퓨터와의 물리적 특징과 고려사항 등을 공부함으로써 코드 최적화를 위한 물리적/소프트웨어 사고방식을 기를 수 있다.

    단순히 코드만 설명하는게 아닌 단계적으로 어떤 프로세스를 거치는지, 이후 이를 통해 로직이 어떻게 구성되어있는지 친절하게 설명해준다.

    책에서 전체적으로 벤치마킹, 병목 현상 분석, 최적화 예제, 효율성 조사 및 평가 방법, CPU/메모리 자원 사용 방법을 알려준다.

    책에서 가장 좋았던 점은 중간중간에 있던 TIP과 NOTE, CAUTION을 통해 어떤 방법이 바람직한지 또는 하지 않아야 할 사항은 무엇인지를 알려줌으로써 Go의 심층 깊은 지식과 알고리즘까지 파악할 수 있다. 책을 읽다보면 ‘이렇게까지 세세하게 알려준다고?’라는 인상을 종종 받았다. 아직까지 Go를 통해 실제 배포까지는 안해본 입장이라서 책 안에 있는 다양한 상황을 접해보지 않았지만 마치 그 상황에서 대처해야하는 방법을 세세하게 적은, 마치 가이드같다고 느꼈다. Go를 주요 언어로 쓰면서 실제 최적화 과정을 공부해야하는 중급 이상의 실력을 가지신 분들께 추천할 수 있을 것 같다.


    “한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다.”

Add a review