|
※ 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다. 장점 1. Go 언어의 최적화를 통한 효율성과 하드웨어 구조를 통한 성능에 대한 깊은 이해를 제공 2. 다양한 벤치마킹과 최적화 예시를 시각화를 통해 제공하고 있어 최적화로 인한 효율을 확인 할 수 있음 3. 컴퓨터 구조론, 자료구조와 알고리즘 등 컴퓨터 공학에서 사용되는 전공 지식을 Go언어로 응용해 볼 수 있다. 단점 1. 최적화란 프로그래밍의 고난이도 영역으로 컴퓨터 공학적 지식 및 해당 응용 분야의 지식이 있어야되기 때문에 난이도가 있는 편이다. 후기 1. 최근 C를 대체할 수 있는 언어로 rust와 Go 등이 떠오르고 있다. 특히 Go언어의 경우 Google에서 지원하기 때문에 지속적인 발전과 강력한 커뮤니티로 부터 지식의 공유가 활발한 편으로 주로 클라우드, 분산 시스템, 마이크로 서비스 등 다양한 분야에서 적용이 되고 있다. 이러한 Go언어는 문법에 대한 서적은 비교적 많아진 편이지만 최적화를 위한 서적은 드물다. 특히 최적화는 컴퓨터 공학 분야의 다양한 전문적 지식을 요구하여 어렵게 느껴질 수 있지만 사용자를 이해시키기 위한 시각화와 자세한 설명으로 Go언어를 배우고 싶은 컴퓨터 공학 분야의 사용자들에게 추천한다.
|
|
지금까지 Go 언어의 문법을 다루는 책은 많지만 더 깊은 내용을 다루는 책은 없었습니다. 이 책은 Go 언어를 처음 접하는 분들이 보기에는 쉽지 않은 책입니다. Go 언어에 대한 문법적인 요소는 충분히 이해하고 있는 상태에서 Go 언어를 보다 빡세게 다루고 싶은 분들이 보면 많은 것을 얻을 수 있습니다. 특히 메모리 관리에 대한 내용을 다루는 챕터는 정말 최고였습니다. |
![]()
C를 대체할 언어를 알아보며 여러가지 언어를 찾아보았는데,
그 중 Rust 와 Go 가 가장 유력해 보였고 어느 정도 알아 본뒤 Go로 결정하였습니다.
가장 큰 이유는 Rust의 러닝커브가 매우 가팔라 배우기 힘들것 같았고,
Go의 마스코트(?)가 귀여운 것도 한 몫 했습니다.
우선 Go는 배우기 쉬운 언어이고 기본적으로 몇몇 코드 컨벤션을 강제하고 있어서
여럿이서 협업하기도 좋은 언어인것 같습니다.
이 책을 읽기전 Go에 대한 사전지식은 간단한 문법과 사용법만을 알고있었고,
그 정도만 알아도 책을 충분히 읽고 따라갈 수 있었습니다.
오히려 안좋은 GO습관이 없어서 책에서 알려주는 효율적인 방법을 익히기 더 좋았습니다.
이 책은 11장으로 이루어져 있고, 11장 모두 다른 사람이 번역을 맡았습니다.
한국의 가장큰 Go 커뮤니티인 Golang Korea의 구성원들이 직접 번역을 진행하는 신선한 방식을 사용했습니다.
이 책은 Go 언어를 단순히 효과적으로 작성하는 것을 넘어 효율적으로 사용하는 법을 알려주고 있으며,
Go언어 뿐만 아니라 타 언어에서도 알면 좋을법한 내용을 많이 알려주고 있습니다.
Go언어의 기본정도만 알고 있으신분 부터 GO를 활용해 기존 프로그램을 최적화하고 발전시키는게 목표인 분까지
폭넓게 추천하고 싶은 책입니다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다." |
|
[BOOK] Go 성능 최적화 가이드 - 바르틀로미에 플로트카 지음 / Golang Korea 옮김
2009년에 세상에 소개된 Go 언어는 13년 동안 많은 고퍼(Gopher)들의 사랑을 받으며 쑥쑥 성장해가고 있는 언어입니다. 특히 Docker, Kubernetes 등의 클라우드 인프라에 많이 사용되는오픈소스 제품들이 Go 언어로 개발되어 DevOps를 중심으로 많이 활용되고 있습니다.
국내에도 Go 언어가 소개된지 꽤 시간이 흘러 Go 언어와 관련된 많은 도서들을 접할 수 있습니다. 다만 처음 언어를 접하는 개발자들을 위한 도서들이 대부분이라 더 깊은 내용을 다루는 책이 없어 아쉬웠습니다. Go 언어를 배우고, 실무에서 사용하지만 더 잘 활용할 수 있는 방법에 대해 고민하는 것이 개발자란 직업의 숙명이라고 생각합니다. 이 책은 이런 갈증을 해소해 줄만한 책이라고 생각됩니다. Effective(효과적)를 넘어 Efficient(효율적)으로 개발하는 방법에 대해 알려줍니다. 효율적으로 개발하는 방법을 Go 언어로 설명할 뿐 다른 언어에서도 도움이 될만한 내용이 많습니다.
그리고 이 책이 특별한 다른 이유는 Go 언어를 사랑하는 고퍼들이 모여있는 커뮤니티의 구성원들이 번역했다는 점입니다. Go 언어를 사용하면서 느낀 경험들을 활발히 나누는 Golang Korea에서 Go 언어에서 효율성을 다루는 책을 고퍼들이 모여서 번역한겁니다. 책이 다루는 내용도 기존에 접하기 쉽지 않은 내용인데 변역한 방식도 의미있는 것 같습니다.
효율성에 대한 내용은 다른 언어에서 다루는 부분과 유사한 점이 많습니다. 단지 최신 언어이고 현재의 개발환경이 과거와 많이 다르기에 효율성에 대한 접근도 조금 다르게 해야한다는 부분은 많이 공감되었습니다. 효율성에 대한 기초적인 내용을 시작으로 Go 언어의 특징을 깊이 파악하여 어떤 효율성 문제가 있을 수 있는지 짚어봅니다. 그리고 데이터를 기반으로 효율성을 향상시킬 수 있도록 데이터를 수집하는 방법과 활용에 대해서도 상세히 설명합니다.
소프트웨어 개발자라고 많이 불리지만 소프트웨어 엔지니어라는 표현도 많이 사용합니다. 엔지니어는 완벽한 것을 찾지 않습니다. 적절히 좋은 것을 빠르게 찾아서 적용하기 위해 늘 트레이드 오프를 고민합니다. 효율성이라는 단어도 같은 의미를 담고 있다고 생각합니다. Go 언어로 개발자의 필수 덕목을 지키고자하는 분이라면 한 번 쯤 읽어볼 만한 책이라고 생각됩니다. 저도 리뷰를 위해 빠르게 읽었는데 다시 시간을 내어 천천히 읽어봐야겠습니다.
"한빛미디어 [나는 리뷰어다] 활동을 위해서 책을 제공받아 작성된 서평입니다." |
|
Go 언어를 아는가? C 언어를 대체할 아주 극강의 퍼포먼스 언어 Go이다! Go의 퍼포먼스를 느끼고 싶었는데 이번 기회에 아주 즐겁게 이책을 소화할 수 있었다. 이 책은 Go 언어를 소개하지 않으니 무조건 선행적으로 Go 언어나 다른 프로그래밍 2~3개 이상 정도는 알고 있어야 한다. Go 언어를 소개하면서 다른 언어나 문법, 다른 각도로 설명하는 부분이 많아 프로그래밍을 처음 접하는 사람들에게는 소화하기 어려울 수가 있다. 그래서 사용자 대상은...
아무튼 이 책은 Go 언어 개발자들을 위한 귀중한 자원으로, Go 언어를 사용하여 더 효율적이고 빠른 프로그램을 개발하고자 하는 사람들에게 큰 도움이 된다. Go 언어로 작성된 소프트웨어를 개발하거나 이미 개발한 코드를 최적화하려는 개발자들을 위한 유용한 정보를 담고 있다. 나는 읽으면서 많은 가치 있는 통찰력을 얻었고, 다음과 같은 몇 가지 중요한 측면을 강조하고 싶다. 첫째, 이 책은 Go 언어의 내부 동작 및 특성을 깊이 있게 다루며, 개발자들에게 Go 코드의 성능을 최적화하는 데 필요한 기본 개념을 제공한다. 이러한 이해는 높은 성능을 원하는 개발자들에게 필수적이다! 둘째, 저자는 성능 최적화를 위한 다양한 기법과 도구에 대해 자세하게 설명한다. CPU 프로파일링, 메모리 프로파일링, 병목 현상 분석 등 다양한 주제를 다루며, 실제로 어떻게 코드를 개선할 수 있는지에 대한 실용적인 조언을 제공한다!! 셋째, 예제 코드와 실제 프로젝트에 대한 적용 사례를 풍부하게 제공하여 이론을 실전으로 옮기는 데 도움을 준다. 각 예제는 성능 향상을 위한 구체적인 단계와 코드 수정을 제시하며, 개발자들이 실제 프로젝트에 적용하기 쉽게 설명되어 있다!!! 마지막으로, Go 언어 커뮤니티와의 연결을 강조하며, Go 언어 성능 최적화에 관심 있는 사람들이 지식을 공유하고 협력할 수 있는 방법을 제시한다. 이것은 Go 언어 생태계를 더욱 발전시키는 데 기여할 수 있는 중요한 측면 중 하나이다!!!!
전 세계적으로 Go 언어는 점점 확장되어지고 있다. 많은 언어가 역사의 뒤안길로 사라지고, 사장 되지만 Go는 유일하게 살아 남았다! (스칼라(Scala) 사요나라~ 빠이~ 짜이찌엔~) Go는 여전히 저평가다... C언어를 대체할 수 있기를 고대해본다. ^^ "Go 언어 성능 최적화 가이드"는 Go 언어를 사용하는 개발자들에게 무궁무진한 가치를 제공하는 책으로, 성능을 향상시키고자 하는 모든 Go 프로젝트의 필독서라고 할 수 있다. 나는 이 책을 통해 Go 언어의 성능 최적화에 대한 지식을 확장하고 개선된 코드를 작성하는 데 큰 도움을 받았으며, 모든 Go 개발자들에게 적극 추천하고 싶다. |