최근 프로젝트는 Go 언어로 개발을 진행하고 있어서 작년 말부터 Go 언어를 사용하고 있지만, 아직 손에 익지 않았다.
작년에 처음 Go 언어로 프로젝트를 시작하면서 몇 권의 Go 언어 책을 구매하고 공부했다. 그 중에 ‘개발자를 위한 하룻밤에 읽는 Go 언어 이야기’와 ‘디스커버리 Go 언어’ 2권을 추천한다.
Go 언어는 스팩만을 보면 아직은 애매한 포지션에 있는 언어라고 생각한다. 처음에 접했을 때, 다시 C 로 코딩하는 느낌의 어색함과 반가움이 교차했었다.
그래도 최근 언어 답게(?) 동시성을 언어에서 go func 과 channel, select 등의 기본 스팩으로 제공한다. 하지만, class 는 없다. 상속도 없다. struct 와 receiver 라는 기능의 조합으로 구성을 해야 하는데 이게 상당히 가독성이 떨어진다. 게다가 goto 권장이라니. FP 도 지원하지 않는다. (그래도 함수는 일급 시민이다.) 함수 오버라이딩도 안 된다. 아, map 은 있는데 set 은 없다. 중괄호 필수, Public/Private 처리는 첫 글자의 대소문자 여부라니…
물론 동시성 외에 좋은 점들도 몇 가지 있다. 예외가 없고, switch 에서 조건 처리를 지원하고, 다중 리턴 타입을 지원하고 등등…
Go 언어도 계속 개선이 이루어지고 있으며 그동안 불편한 것 중 하나였던 패키지 의존성 관리 기능이 modules 라는 이름으로 기본 스팩에 추가되었다. 이런 최신의 내용은 위에 소개한 책들에는 없는 것이고 책은 이런 속도를 따라갈 수 없기에 최신 기술 업데이트는 구글링과 웹 문서를 봐야 한다. 그럼에도 이 책들을 소개하는 이유는 기본 내용과 개념은 구글링과 웹에 문서들을 읽기보다는 잘 정리되고 설명된 책을 보는 것을 추천하기 때문이다.
개발자를 위한 하룻밤에 읽는 Go 언어 이야기 - 신제용
Go 언어의 탄생 배경부터 가볍게 읽어볼 수 있는 책이다. 제목에서 느껴지는 가벼움과 같이 책에서 깊은 내용을 다루지는 않는다. 하지만, Go 언어의 기본 스팩과 개념을 간결하게 잘 설명해주고 있다. 입문서를 보기 전에 한번 읽어보기 좋다.
입문서 그 이상이다. 문법을 설명하면서 다른 언어와 다른 점과 Go 언어가 기본 제공하지 않는 부분을 쉽게 구현하는 방법 소개와 설명이 아주 좋다. 중간중간 등장하는 간결하면서 효과적인 응용에 대한 설명도 좋다. 특히 채널과 고루틴에 대한 설명은 다양한 케이스 별로 설명을 하고 있어서 동시성에 익숙하지 않더라고 이해할 수 있을 것이다.
#독서 #기술서 #개발자를위한하룻밤에읽는Go언어이야기 #디스커버리Go언어 #Go언어 #Golang #Go
'Dev' 카테고리의 다른 글
Codility Lesson 7 완료 (0) | 2019.03.15 |
---|---|
Codility Lessons 6 완료 (0) | 2019.02.22 |
Codility Lessons 1 ~ 5 완료 (0) | 2019.02.06 |
7가지 동시성 모델 (0) | 2018.12.17 |
IntelliJ 의 JShell Console 을 활용하자 (1) | 2018.04.30 |