메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

Go 성능 최적화 가이드

한빛미디어

번역서

판매중

  • 저자 : 바르틀로미에 플로트카
  • 출간 : 2023-09-08
  • 페이지 : 580 쪽
  • ISBN : 9791198140838
  • 물류코드 :7003
  • 초급 초중급 중급 중고급 고급
0점 (0명)
좋아요 : 0

가장 효율적이고 실용적인 소프트웨어를 향한 여정

개발자들이여 ‘Go’ 하라!

 

 

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

 

구와 지식을 구체적으로 제공한다.

 

상세 이미지_Go 성능 최적화 가이드_700px.jpg

바르틀로미에 플로트카 저자

바르틀로미에 플로트카

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

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 레이턴시 냅킨 수학 계산


찾아보기

[이 책의 핵심 내용]

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

 

[이 책의 대상 독자]

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

 

[이 책의 구성]

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

  • 첫번째 리뷰어가 되어주세요.
  • 결제하기
    • 문화비 소득공제 가능
    • 배송료 : 2,000원배송료란?

    배송료 안내

    • 20,000원 이상 구매시 도서 배송 무료
    • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

    무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

    닫기

    리뷰쓰기

    닫기
    * 도서명 :
    Go 성능 최적화 가이드
    * 제목 :
    * 별점평가
    * 내용 :

    * 리뷰 작성시 유의사항

    글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

    1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
    2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

    오탈자 등록

    닫기
    * 도서명 :
    Go 성능 최적화 가이드
    * 구분 :
    * 상품 버전
    종이책 PDF ePub
    * 페이지 :
    * 위치정보 :
    * 내용 :

    도서 인증

    닫기
    도서명*
    Go 성능 최적화 가이드
    구입처*
    구입일*
    부가기호*
    부가기호 안내

    * 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

    * 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

    * 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

    닫기

    해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
    장바구니로 이동하시겠습니까?

    자료실

    최근 본 책0