티스토리 뷰
go의 소개서 같은 책인데, go의 시스템 적인 부분은 없어서 아쉽다. 처음 go가 어떤거구나 볼 만데, 이미 책 발행일이 좀 지나서 예제 코드는 안돈다.ㅋㅋ
전문가를 위한~ 시리즈 같은 책이 있으면 보고 싶다.
c -> cpp -> java -> python 순서로 언어를 접했던 내가 보기엔 현대적인 모습의 c 같았다.
c 개발자가 개발에 참여했다고 하는데, python은 싫어, 하지만 c를 좀 python 같이 사랑받게 만들어보고 싶어! 쉽게 쓰고싶어! 라는 생각으로 만든 것 같다. go는 c를 python 처럼 쓰는 것 같은 느낌?
심지어 c를 연동하는 과정은 주석으로 c코드를 넣게되어있다.
클래스 개념은 명시적으로는 없고, c의 함수 포인터 처럼 쓴다.
타입을 변수명 뒤에 표현하는 부분이나, 접근 제한자가 없으나 그렇다고 header file이 있진 않은 모습은 python처럼 느껴졌다. (다른 스크립트 언어는 잘 몰라서..)
c에다 gc를 붙였고, 고루틴이란 개념이 있다.
고루틴과 채널이 바로 다른 언어와 구분되게 하는 특징이다
카프카를 중간 큐로 사용하는 데이터 스트림 프로세싱과 유사한 async, pipelining 패러다임이 녹아있다!
고루틴은 async하게 도는 하나의 태스크이며, 채널을 정의해 중간 결과물의 큐로 사용한다. 이 채널은 심지어 채널을 넘기는 큐로 사용될 수 도 있다.
로드밸러서 개발할 때 스레드 컨트롤, 워커 스레드 정지들을 컨트롤하기 위해 들인 노력들에 비하면 비슷한 구조를 매우 간단하게 구현할 수 있을 것 같다. (성능은 모르겠지만..)
이 책의 예제 코드로 다음 링크를 남기며..
https://github.com/pyrasis/golangbook/blob/master/Unit%2067/chat.go