[BOOK] Go 성능 최적화 가이드 – 바르틀로미에 플로트카 지음 / Golang Korea 옮김
![[BOOK] Efficient Go](https://jaewook.blog/wp-content/uploads/2023/09/2023-09-24-19.51.30.jpg?w=300&h=300)
Go 언어는 현재(2023년 9월) 프로그래밍 언어의 인기도를 측정하는 지수 중 하나인 TIOBE Index에서 12위를 하고 있습니다. TIOBE Index를 자세히 살펴보면 Python, C, C++, Java, C#의 인기도가 52.88%로 절반 이상을 차지하고 그 외의 많은 언어들이 2%이하의 인기도로 경쟁을 하고 있어 5위 이하의 언어들의 순위는 별 의미가 없을 수도 있습니다. 그럼에도 불구하고 20위 안에 들어있는 언어들 중에는 많은 관심을 받으며 빠르게 성장하고 있는 프로그래밍 언어들이 있습니다. 그 중에 하나가 Go입니다. 2009년에 세상에 소개된 Go 언어는 13년 동안 많은 고퍼(Gopher)들의 사랑을 받으며 쑥쑥 성장해가고 있는 언어입니다. (참고로 2022년 GitHub Octoverse Languages 자료를 보면 빠른 성장을 확인해 볼 수 있습니다.) 특히 Docker, Kubernetes 등의 클라우드 인프라에 많이 사용되는오픈소스 제품들이 Go 언어로 개발되어 DevOps를 중심으로 많이 활용되고 있습니다.
국내에도 Go 언어가 소개된지 꽤 시간이 흘러 Go 언어와 관련된 많은 도서들을 접할 수 있습니다. 다만 처음 언어를 접하는 개발자들을 위한 도서들이 대부분이라 더 깊은 내용을 다루는 책이 없어 아쉬웠습니다. Go 언어를 배우고, 실무에서 사용하지만 더 잘 활용할 수 있는 방법에 대해 고민하는 것이 개발자란 직업의 숙명이라고 생각합니다. 이 책은 이런 갈증을 해소해 줄만한 책이라고 생각됩니다. Effective(효과적)를 넘어 Efficient(효율적)으로 개발하는 방법에 대해 알려줍니다. 효율적으로 개발하는 방법을 Go 언어로 설명할 뿐 다른 언어에서도 도움이 될만한 내용이 많습니다.
그리고 이 책이 특별한 다른 이유는 Go 언어를 사랑하는 고퍼들이 모여있는 커뮤니티의 구성원들이 번역했다는 점입니다. Go 언어를 사용하면서 느낀 경험들을 활발히 나누는 Golang Korea에서 Go 언어에서 효율성을 다루는 책을 고퍼들이 모여서 번역한겁니다. 책이 다루는 내용도 기존에 접하기 쉽지 않은 내용인데 변역한 방식도 의미있는 것 같습니다.
소프트웨어 언제니어의 주요 업무는 비용 효율적인 방식으로 유지보수 가능하고 유용한 소프트웨어를 개발하는 것이다.
– 존 루이스 벤틀리
효율성에 대한 내용은 다른 언어에서 다루는 부분과 유사한 점이 많습니다. 단지 최신 언어이고 현재의 개발환경이 과거와 많이 다르기에 효율성에 대한 접근도 조금 다르게 해야한다는 부분은 많이 공감되었습니다. 효율성에 대한 기초적인 내용을 시작으로 Go 언어의 특징을 깊이 파악하여 어떤 효율성 문제가 있을 수 있는지 짚어봅니다. 그리고 데이터를 기반으로 효율성을 향상시킬 수 있도록 데이터를 수집하는 방법과 활용에 대해서도 상세히 설명합니다.
요구사항에 명시되어 있지 않더라도, 코드의 가독성을 해치지 않고 (심지어 더 개선해서) 효율성을 향상시키는 사소한 습관을 지니는 것은 개발자의 필수 덕목이다.
소프트웨어 개발자라고 많이 불리지만 소프트웨어 엔지니어라는 표현도 많이 사용합니다. 엔지니어는 완벽한 것을 찾지 않습니다. 적절히 좋은 것을 빠르게 찾아서 적용하기 위해 늘 트레이드 오프를 고민합니다. 효율성이라는 단어도 같은 의미를 담고 있다고 생각합니다. Go 언어로 개발자의 필수 덕목을 지키고자하는 분이라면 한 번 쯤 읽어볼 만한 책이라고 생각됩니다. 저도 리뷰를 위해 빠르게 읽었는데 다시 시간을 내어 천천히 읽어봐야겠습니다.
“한빛미디어 [나는 리뷰어다] 활동을 위해서 책을 제공받아 작성된 서평입니다.”