『Go 동시성 프로그래밍』에 온 것을 환영한다! 이 책을 선택하고, 6개 장에 걸쳐 Go에서의 동시성에 대해 함께 알아보게 된 것을 기쁘게 생각한다.
Go는 멋진 언어다. 이 언어가 처음 발표되고 세상에 나왔을 때, 큰 관심을 갖고 살펴봤던 기억이 난다. Go는 간결하고 믿을 수 없을 정도로 빠르게 컴파일되며 성능이 뛰어날 뿐만 아니라 덕 타이핑(duck typing)도 지원한다. 또한 기쁘게도 Go 언어의 동시성 기본 요소로 작업하면서 많은 영감을 받을 수 있었다. 처음으로 go 키워드를 사용해 고루틴(이후 설명할 것이다)을 생성했을 때, 바보처럼 웃지 않을 수 없었다. 다양한 언어에서 동시성 작업을 해봤지만, 이렇게 동시성을 쉽게 만들어주는 언어를 사용해본 적은 없다(이런 언어가 존재하지 않는다는 것이 아니라, 사용해본 적이 없다는 것이다). 나는 Go에서 길을 발견했다.
지난 몇 년 동안 나는 Go로 간단한 스크립트를 작성하는 수준에서 개인적인 프로젝트를 거쳐, 마침내 수십만 줄의 코드를 다루는 전문적인 프로젝트를 수행하기에 이르렀다. Go 언어 커뮤니티 역시 언어와 함께 성장했고, 함께 Go에서 동시성을 다루는 모범 사례를 발견했다. 몇몇 사람들은 자신이 발견한 패턴에 대해 이야기했다. 그러나 커뮤니티에는 Go에서 동시성을 어떻게 다뤄야 하는지에 대한 종합적인 안내가 없었다.
나는 이 점을 염두에 두고 책을 쓰기로 마음먹었다. Go 커뮤니티가 동시성 프로그래밍 요소의 사용법, 시스템에 이를 통합하기 위한 모범 사례 및 패턴, 내부적인 동작 원리를 비롯한 Go 언어의 동시성에 대한 종합적인 고급 정보에 접근할 수 있기를 원했다. 이 책을 쓰면서 이 주제들 사이에서 균형을 유지하고자 최선을 다했다.
이 책이 도움이 되기를 바란다!