책소개
개발자들이여 ‘Go’ 하라!
기술 발전과 빠른 시장 변화, 늘어나는 시스템 복잡성으로 인해 개발자들은 ‘소프트웨어 효율성’이라는 불편한 주제를 피하곤 한다. 그러나 개발 비용을 줄이고 비즈니스에서 성공하려면 관찰 가능성에 기반한 성능 최적화가 필수다. 이 책은 어떤 개발자라도 소프트웨어 효율성을 효과적으로, 전문적으로 쉽게 다루도록 돕는 데 초점을 맞추었다. 이를 위해 필자는 더 빠른 시스템 성능을 구현하고 더 적은 자원을 소모하는 데 필요한 도구와 지식을 구체적으로 제공한다.
출판사 리뷰
이 책은 Go 언어를 단순히 효과적(Effective)으로 작성하는 것을 넘어 효율적(Efficient)으로 소프트웨어를 개발하는 방법을 알려 준다. 저자는 효율성의 의미를 정의하는 것에서부터 이야기를 시작하여, 컴퓨터 성능의 발전과 하드웨어 비용의 감소로 인해 간과하기 쉬운 최적화의 필요성과 실용적인 수행 방법에 대해 설명한다. 이 책은 개발자 기술 면접에서 자주 언급되는 시간 복잡도와 공간 복잡도 분석 수준을 넘어서, 소프트웨어의 효율성을 측정해 개선이 필요한 부분을 찾고 어떻게 유의미한 개선을 할 수 있는지와 개발 프로세스 전반에 적용할 수 있는 모범 사례들을 소개한다. 이는 Go 언어뿐만 아니라 다른 언어에도 충분히 적용 가능한 내용으로 다른 언어를 주로 사용하는 개발자에게도 유익한 내용이 될 것이다.
[이 책의 대상 독자]
- Go 또는 다른 최신 프로그래밍 언어들로 프로그램을 설계·생성·변경하려는 소프트웨어 개발자들
- 데브옵스, 사이트 신뢰성 엔지니어, 시스템 관리자, 플랫폼 팀 등 소프트웨어를 운영하는 분들
- 소프트웨어 효율성을 높이고 비용을 절감하려는 매니저, 프로덕트 매니저, 리더들
[이 책의 구성]
- 1장: 효율성의 개념과 소프트웨어 효율성이 중요한 이유를 다룬다.
- 2장: 효율성 측면에서 Go 언어를 소개한다.
- 3장: 최적화를 어떻게 생각하고 접근해야 할지 설명한다. 효율성을 개선하려면 오랜 시간이 필요하지만 체계적으로 접근하면 많은 시간과 노력을 아낄 수 있다.
- 4~5장: 레이턴시, CPU, 메모리 자원을 다룬다. 그리고 운영체제와 Go가 이것들을 어떻게 추상화하는지 설명한다.
- 6장: 소프트웨어 최적화와 관련해 데이터 기반 의사결정의 의미를 다룬다.
- 7장: 실험의 신뢰성과 복잡도 분석을 논의한다.
- 8~9장: 벤치마킹과 프로파일링 기법을 설명한다.
- 10~11장: 다양한 최적화 예제를 10장에서 보여 주고, 마지막 11장에서는 Go 커뮤니티에서 경험한 다양한 효율성 패턴과 기법에 대해 공부하고 요약한다.
추천평
- 사스와타 무케르지 (레드헷 엔지니어)
- 이호민 (42dot 백엔드 엔지니어, 20년 차 개발자)
- 한성민 (Golang Korea 오거나이저, ML GDE)
안녕하세요! 오늘은 Go 언어를 사용하는 개발자들을 위한 효율적인 소프트웨어 개발에 관한 책을 소개해드리려고 합니다. 이 책은 "효과적(Effective)"으로 작성하는 것을 넘어서 "효율적(Efficient)"으로 소프트웨어를 개발하는 방법을 알려주는데요.
책의 저자는 효율성의 의미부터 시작하여 컴퓨터 성능의 발전과 하드웨어 비용 감소로 인해 간과하기 쉬운 최적화의 필요성과 실용적인 수행 방법에 대해 설명합니다. 이 책은 시간 복잡도와 공간 복잡도 분석 수준을 넘어서, 소프트웨어의 효율성을 측정하고 개선이 필요한 부분을 찾는 방법과 모범 사례들에 대해 다룹니다.
이 책은 Go 언어뿐만 아니라 다른 언어를 주로 사용하는 개발자들에게도 유익한 내용입니다. 따라서 Go 또는 다른 최신 프로그래밍 언어로 프로그램을 설계, 생성, 변경하려는 소프트웨어 개발자들뿐만 아니라 데브옵스, 사이트 신뢰성 엔지니어, 시스템 관리자, 플랫폼 팀 등 소프트웨어를 운영하는 분들에게도 추천할 만합니다.
책은 전체적으로 11장으로 구성되며 각 장마다 다양한 주제가 다루고 있습니다. 첫 번째 장에서는 효율성의 개념과 소프트웨어 효율성의 중요성에 대해 알아보고, 두 번째 장에서는 Go 언어를 통해 이러한 효율성을 구현하는 방법에 대해 설명합니다.
세 번째 장부터는 최적화와 관령된 내용들이 나오는데요. 레이턴시, CPU, 메모리 자원 등 여러 가지 자원 관리와 운영체제와 Go가 이러한 자원들을 추상화하는 방법 등이 다룬됩니다. 데이터 기반 의사결정, 실험의 신뢰성 및 복잡도 분석 등에 대해서도 상세하게 설명되었습니다.
마지막 장에서는 여러 가지 최적화 예제와 함께 Go 커뮤니티에서 경험한 다양한 획일 성 팬턴 및 기법들이 공부할 만큼 충실히 정리되었습니다.
총 11장으로 구성된 이 책은 많은 정보와 유익한 내용으로 가득찼습니다. Go 언더개 발 당신만큼 타 프로그래밍 언더 황금비 준비된다면 지금 바로 읽기 시작하세요!
여기까지 오늘의 리뷰였습니다. 좋은 도서 추천이 되셧길 바랍니다!
'책이야기' 카테고리의 다른 글
[리뷰]만들면서 배우는 생성 AI (1) | 2023.10.28 |
---|---|
[리뷰]진화적 아키텍처 (0) | 2023.09.24 |
[리뷰]파이썬 크래시 코스 (0) | 2023.08.27 |
[리뷰]MLOps 실전 가이드 (0) | 2023.07.23 |
[리뷰]풀스택 테스트: 10가지 테스트 기술의 기본 원칙과 전략 (0) | 2023.06.25 |