Go 개발자처럼 생각하는 방법

존 보드너 지음

윤대석 옮김

 

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

 

2022년 3월

2022 나는 리뷰어다 활동의 두 번째 리뷰

 

올해 두 번째 리뷰할 책은 "러닝 Go" 이다.

 

어떤 책을 선택할까 고민하다가 Go를 단어만 들어봤지, 뭐 어떤 건지 전혀 몰라서 무작정 신청해 보았다.

 

Go는 구글이 만든 개발 언어이다.

옮긴이의 말을 빌리자면, 비교적 최근에 개발되었고 오랫동안 유지 개발되어온 다른 인기 있는 프로그래밍 언어들과는 다르게 최신 멀티코어 아키텍처(?)를 제대로 활용할 수 있도록 고안되었다. 특히 Go루틴(goroutine)과 채널을 통해 작업을 동시성과 병렬성을 쉽게 구현해 낼 수 있도록 한 부분에서 다른 언어들과 차이를 보인다.

 

특히 Go 언어는 도커나 쿠버네티스와 같은 대형 프로젝트에서 사용되는 만큼 성공했다고 할 수 있다.

 

이런 장점으로 시스템 프로그램이나 서버용 프로그램 개발에 많이 활용되고 있지만, 국내에서는 서버 개발로 아직도 자바를 많이 쓰고 있다.

(자바 만세!)

 

개발자가 원하는 프로그램을 구성하면서 언어에서 제공하는 다양한 기능을 사용하는 방법뿐만 아니라 효율적이고 확장할 수 있게 진행하려면 언어가 가지는 특징과 철학을 잘 이해할 필요가 있다고 생각한다. 개발자가 자신이 사용하던 언어와 Go가 개념적인 부분에서 크게 다르지 않지만, 이 책에서는 다른 언어들과의 차이점을 명확히 구분해주기 때문에 Go 언어만의 매력을 느낄 수 있다.

 

옮긴이가 한 말 중에 가장 와닿는 부분은,

"Go 언어는 다른 언어에 비해 배우기 쉽고 프로젝트가 커지더라도 간결함을 유지하여 확장도 쉬운 언어라고 생각한다."

프로젝트가 커지더라도 간결함을 유지할 수 있다니?

굉장히 매력적인 부분이라는 생각이 든다. 간결하지만 강력한 기능을 제공하여 유지 보수에도 많은 이점을 가지고 있다는 Go.

 

다음으로 대상 독자에 대해 저자가 정리해준 부분이 있다.

본인이 구분 지어 보고자 한다.

1. 두 번째 개발 언어를 찾는 개발자

2. 버전 관리나 IDE를 사용해본 경험이 있는 개발자

3. 동시성이나 추상화 같은 컴퓨터 과학 개념에 익숙한 개발자

4. 기본적인 HTTP 개념에 익숙한 개발자

이 정도로 정리가 되는 것 같다. 4가지 조건을 다 충족시킬 필요는 없지만 하나의 언어가 익숙해진 미들급 개발자가 이 책을 본다면 가장 적합한 시기의 책이 아닐까 싶다.

 

목차를 간단히 보자.

1. Go 개발 환경 설정

2. 기본 데이터 타입과 선언

3. 복합 타입

4. 블록, 섀도, 제어 구조

5. 함수

6. 포인터

7. 타입, 메서드, 인터페이스

8. 오류

9. 모듈, 패키지 그리고 임포트

10. Go의 동시성

11. 표준 라이브러리

12. 컨텍스트

13. 테스트 작성

14. Reflect, Unsafe, Cgo

15. Go의 제네릭

 

보통의 컴퓨터 언어 책과 구성은 비슷하지만 익숙하지 않은 단어들이 있는데, Go 만의 특징이 아닐까 싶다.

 

본문은 설명과 코드 그리고 Tip, NOTE 등으로 구성되어 정리하기 편하게 되어 있다.

근 450 페이지에 달하는 분량이지만 새로운 언어를 배우고자 한다면 Go를 450 페이지 만에 배울 수 있다는 것이다.

 

개발이 무료하고 새로운 것을 찾고자 하는 개발자들이여.

러닝 Go에 도전해 보는 것은 어떨까?

 

LoveYourself.

+ Recent posts