콘텐츠 바로가기
본문 바로가기


블로그 전체검색
Go 언어를 활용한 네트워크 프로그래밍

[도서] Go 언어를 활용한 네트워크 프로그래밍

애덤 우드벡 저/김찬빈 역

내용 평점 5점

구성 평점 5점

 

 

세상에는 정말 무수한 수의 프로그래밍 언어가 존재하지만, 그 중에선 든든한 백그라운드를 지닌 언어들이 있습니다.

예를 들면, Apple에서 만든 Swift, 그리고 Google에서 만든 Go언어가 그러합니다.

 

Apple은 과거 iOS 어플리케이션 개발 등의 목적으로 사용되던 Objective-C를 대체하기 위해 자체적으로 Swift를 내놓았고, 몇 년이 지나지 않아 Swift는 iOS/MacOS의 주 개발 언어로 자리 잡았습니다.

이와 비슷하게, 구글이 2017년에 공개한 크로스 플랫폼 앱 프레임워크, Flutter 또한 Google이 자체적으로 개발한 언어인 Dart를 사용하고 있습니다. 이런 IT 대기업이 개발하고 유지보수하는 언어는 아무래도 타 언어에 비해 훨씬 더 효과적으로 유저층을 확보할 수 있고, 안정적인 유지보수 또한 기대할 수 있습니다.

 

Go언어 역시 Google에서 만들어진 언어로, 영미권에선 흔히 Golang으로 부르고 있습니다. 

Go는 고루틴을 내장하여 병렬 프로그래밍, 이벤트 처리 등에서 강점을 지니고 있을 뿐만 아니라, 언어 자체적으로도 성능이 매우 좋은 편입니다. 이 때문에, 백엔드 개발에서 일부분을 대체하여 사용되는 등, 일부 분야에서는 꽤나 빈번히 사용되는 것으로 알려져 있습니다.

 

또, 쿠버네티스와 도커의 개발에 일부 사용되기도 하였으며, 구글의 내부 서비스 개발에서도 지속적으로 Go언어가 사용되고 있다고 합니다. 이처럼, Go언어는 사용자 풀이 크지는 않지만, 소수의 개발자 들에 의해서 지속적으로 사용되고 있는 언어입니다. 결국 국내에서 Go언어를 실무 활용하는 분들의 대부분은 네트워크 프로그래밍을 위해 사용하고 있다고 하는데요. 

 

시중에 Go언어 도서가 몇 권 정도 출판되기는 하였으나, 아쉬운 점 중 하나는, 바로 Go언어를 네트워크 프로그래밍에 활용할 수 있도록 하는 지침서가 마땅히 없다는 것입니다. 이 부분에서, 본 도서는 굉장한 강점을 지닙니다.

 

 

 

역자님의 머리말에서도 알 수 있듯이, Go언어는 서버 사이드에서 활발히 사용되고 있는 언어입니다. 성능과 생산성을 모두 잡았다는 점에서, 현대적인 언어라고도 할 수 있습니다.

 

 

 

Go언어를 활용하는 네트워크 프로그래밍 책이지만, 네트워크 이론에 대해서도 비교적 충실히 다루어주고 있습니다. 앞 부분에서는 네트워크 전공을 들었던 분들이라면, 반가울 내용들이 여기저기 보이고 있습니다. 웹 개발자라면 반드시 알아야 할 네트워크 이론에 대해서 다시 한번 머릿 속에 쭉 정리해본다는 느낌으로 읽어도 좋을 내용들입니다.

 

저 역시 과거에 컴퓨터 네트워크 전공을 수강했으나, 한 학기 내내 이론만을 공부하다보니 다소 이해가 부족했던 부분이 많았던 것 같습니다. 그런 점에서, 본 도서의 이론 파트는 좀 더 신선했고, 더 알기 쉬웠습니다.

 

 

Echo 프레임워크를 사용해서 Go언어로 간단한 에코 서버를 구현하는 예제입니다. 이처럼, 기초적인 내용부터 차근차근 Go언어로 만들면서 Go언어에 대한 이해도, Go 네트워크 프로그래밍에 대한 이해도를 차츰 높여갈 수 있습니다.

다만, Go언어 문법에 대한 서술은 없으므로, 반드시 Go언어 문법에 대한 학습이 진행 된 이후여야 할 것입니다.

 

 

 

후반부에는 마치 부록처럼, AWS, GCP, Azure 클라우드에서 Go언어를 활용하는 방법이 기술되어 있습니다.

개인적으로 무척 반가운 부분이었는데요. AWS Lambda와 Go를 사용하여 서버리스 어플리케이션을 배포한다던가 하는 작업은 아무래도 시행착오가 많이 필요한 부분이다보니, 익혀두면 나중에 분명 시간을 절약할 수 있을 것이라 생각 되었습니다. 마지막 파트로 들어가기에도 참 좋은 내용이었다고 생각합니다.

 

본 도서는 단순히 Go언어, 네트워크 프로그래밍, 두 가지 만을 다루는 책은 아닙니다. 상당한 부분을 통해 네트워크 이론 자체를 다루고 있기 때문에, 네트워크 프로그래밍 with Go언어, 컴퓨터 네트워크, 오히려 이렇게 두 키워드로 정의내려 볼 수 있을 것 같습니다.

 

오히려, Go언어에 이제 막 관심을 가지고 문법을 익힌 상태에서, Go로 뭘 해볼지 모르겠다는 분들에게 도움이 될 것 같습니다. 혹은, 네트워크 이론을 학습해야 할 필요성을 느낌과 동시에, Go에도 관심이 있는 개발자 분들에게도 큰 도움이 되리라 생각합니다. 모쪼록, 개발자라면 한번 쯤 읽어봐서 손해 볼 내용이 전혀 없는 도서입니다. 특히 웹 개발자 분들에게 강력하게 추천드립니다!

 

 

 

본 리뷰는 제이펍의 리뷰어 프로그램 <믿고 보는 제이펍IT 전문서 리뷰어 2기>의 일환으로, 무상으로 도서를 증정 받고 작성된 리뷰임을 고지합니다.



출처: https://goaloflife.tistory.com/224 [Reader]


https://goaloflife.tistory.com/224
 
취소

댓글쓰기

저장
덧글 작성
0/1,000

댓글 수 0

댓글쓰기
첫 댓글을 작성해주세요.

PRIDE1