메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

[리뷰] 러닝 Go

dong2***

|

2022-03-31

러닝 Go

개발 숙련도와는 상관없이 누구나 Go 언어 개발자처럼 생각할 수 있다. 더 나아가 경험이 풍부한 Go 개발자들이 채용한 디자인 패턴과 선택한 이유를 소개한다. Go 언어를 이용해 명확하고 관용적으로 개발할 수 있도록 기초 지식을 전달하는 실용적인 가이드다.

  • 저자 : 존 보드너
  • 번역 : 윤대석
  • 출간 : 2022-02-25

1.jpg현 시대는 전통 산업을 포함한 전 산업군의 기업이 디지털 트랜스포메이션을 이야기 할만큼 변하는 트렌드속에 모바일, IoT, 블록체인, 인공지능 등 다양한 기술을 활용한 새로운 혁신을 꿈꾸고 있습니다. 그에 따라 여러 프로그래밍 언어를 이용한 프로그래밍이 등장하고 있는데 그중에서도 Go언어는 구글에서 내놓은 모바일 플랫폼 개발언어로써 구글의 누적된 노하우를 통해 조금 더 효율적이면서 안정적으로 운영할 수 있어 기존 모바일 제조사들이 오랫동안 유지해온 플랫폼을 버리고 선택하는 모바일 플랫폼으로 부상하고 있으며 도커나 쿠버네티스와 같은 대형 프로젝트에서도 사용되고 있습니다.

 

Go언어는 비교적 최근에 개발되었고 오랫동안 유지 개발되어온 다른 인기 있는 프로그래밍 언어들과는 다르게 최신 멀티코어 아키텍쳐를 제대로 활용할 수 있도록 고안되었습니다. 특히 고루틴과 채널을 통해 작업을 동시성과 병렬성을 쉽게 구현해낼 수 있도록 한 부분에서 다른 언어들과 차이를 보입니다. 이런 장점으로 시스템 프로그래밍이나 서버용 프로그램 개발에 많이 활용되고 있습니다. Go언어는 최신의 다른 프로그래밍 언어들과는 다른 작은 기능 세트가 있습니다. Go언어에는 상속, 제네릭, 관점 지향 프로그래밍, 함수 오버로딩 그리고 연산자 오버로딩이 없습니다. 또한 패턴 매칭, 명명된 파라미터, 예외처리도 없지만 포인터는 있습니다. 이처럼 Go언어는 다른 언어에 비해 배우기 쉽고 프로젝트가 커지더라도 간결함을 유지하여 확장도 쉬운 언어이면서 다양한 강력한 기능을 제공하고 유지 보수에도 많은 이점을 가지고 있습니다.

 

제가 이 책을 선택한 이유는 저자의 많은 경험을 바탕으로 Go언어를 설명하여 Go언어의 기초를 탄탄하게 학습하게 해주고 다른 언어들과의 차이점을 명확히 구분해주어 Go 언어만의 매력을 느낄 수 있도록 내용을 구성하였기 때문입니다.또한 실행 가능한 예제를 통해 Go언어가 가지는 다양한 특성을 이해시키고 확장 가능한 관용적인 코드를 작성하는 좋은 방법을 제시하고 있습니다.

 

이 책의 특성은 Go언어를 새롭게 시작하는 사람들에게 초점이 맞춰져 있어 Go언어에 관해 아무것도 모르는 사람부터 Go 튜토리얼을 수행하거나 Go로 코드를 어느정도 개발해본 사람까지도 볼 수 있습니다. 또한 단순하게 프로그램 작성법을 알려주는 것이 아닌 관용적인 방식으로 Go코드를 작성하는 방법을 알려주어 경험이 좀 더 많은 Go언어 개발자라면 새롭게 추가된 기능들을 가장 잘 사용하는 방법에 대해 조언을 얻을 수 있습니다. 예제로 사용된 코드가 장황하거나 한번에 많은 내용을 포함하진 않지만 처음 코드를 구성하고 그다음 기능들을 구성하는 데 있어 기반을 다질 수 있도록 도와줍니다. 또한 Go의 각기능을 활용하면서 기존 다른 언어들과 차이점을 명확하게 하여 습관적으로 Go에 맞지 않은 패턴으로 진행할 수 있는 점도 짚어주고 있습니다.

 

구성

 

Chapter 1: Go개발 환경 설정

Chapter 2: 기본 데이터 타입과 선언

Chapter 3: 복합 타입

Chapter 4: 블록, 섀도, 제어 구조

Chapter 5: 함수

Chapter 6: 포인터

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

Chapter 8: 오류

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

Chapter 10: Go의 동시성

Chapter 11: 표준 라이브러리

Chapter 12: 컨텍스트

Chapter 13: 테스트 작성

Chapter 14: Reflect, Unsafe, Cgo

Chapter 15: Go의 제네릭

 

파트별로 나누어 봤을때 1~5장은 Go언어에서 사용하는 기본적인 함수에 대해 설명하고 있고 6~9장은 포인터, 메서드, 패키지 같은 함수에 대해, 10~12장은 고루틴, 라이브러리, 컨텍스트에 대해, 13~15장은 완성된 프로그램 테스트 및 응답값에 대해  설명하고 있습니다.

 

개인적인 생각으로 학습은 Go언어 개발자로 취업을 희망하시거나 취업한지 얼마 되시지 않는 이제 막 개발자로 시작한 초보자이신 분들께서는 1장부터 시작하시면 좋을것 같고 어느정도 경험이 있으신 분들(Go언어 또는 다른언어 개발자 2년차~)부터는 6장까지는 쭉 보시면서 Go언어에서 사용하는 함수와 사용방법에 대해 파악 및 복습한다는 방식으로 보시고 7장부터 학습하시는 것이 좋을것 같습니다.

 

개인적으로 약간의 단점이 어쩌면 욕심일수도 있는게 좀더 많은 실습 예제가 담겨있으면 더 좋았지 않았을까라는 아쉬움이 있습니다.

 

저의 리뷰를 읽어주셔서 감사합니다. 다음에는 좀더 유용하고 좋은 책을 소개하면서 더 나은 리뷰를 통해 여러분께 책을 소개시켜드릴 수 있도록 더 노력하겠습니다.

 

 

 

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

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?