
이번엔 Go의 동시성의 가장 기초가 되는 블록을 소개하려 한다. 이름하여 Goroutines, 고루틴이라고 하겠다. 아주 쉽다. Let it "go" // Declare your function func WhateverYouWant() {...} // Let it "Go" go WhateverYouWant() 고루틴이라 불리는 이것들은 마치 스레드, 프로세스 같은 것을 떠올리면 비슷한 느낌이지만, 엄연히 다르다. 이름이 다르지 않은가? 스레드와 같이 하나의 함수를 다른 고루틴들과 함께 동일한 주소 공간에서 실행한다. 단 스레드의 관리를 OS가 한다면, 고루틴은 Go런타임이 관리한다. 여기서 말하는 "관리"는 실행, 생성 등의 Scheduling, 이에 동반되는 Context Switch 그에 필요한 레지..

Concurrency of Go의 첫 번째, Syntax이다. Go의 동시성이 짱짱인 이유는 언어 레벨에서 지원하기 때문이야!라고 인트로에서 열심히 주장했으므로, 실제로 그런지 한 번 Go syntax를 상세히 까보자. * Go 스펙의 전체 내용은 https://golang.org/ref/spec 에서 확인 가능하다 소스 코드를 읽고 컴파일하기 위해서는 정해진 규칙들이 있다. 예를 들어 C언어의 경우 세미콜론(;)을 끝에 붙인다던가 그중에서 Go의 동시성에 관한 문법들에는 다음과 같은 것들이 있다. - Go statements - Channel types - Send statements - Receive operator - Select statements - For statements with range..

요즘 개발자라면 한 마리 정도 키워본다는 귀요미 쥐가 있다. 이름은 Gopher. Google에서 발표한 프로그래밍 언어 Go의 상징이다. 현재 현업에서 사용하고 있으며 매우 만족도가 높아 이를 널리 퍼뜨리고자 Let it GO 시리즈를 시작해보려한다. (노래제목같다고? 이미 패러디도 있다. Write in Go: https://youtu.be/LJvEIjRBSDA ) 자 그럼 시작해보자. 이 Go라는 언어는 Stackoverflow survey에서 3년 연속 "Most Wanted Languages" 부문 Top 3에 들어간 대단히 핫한 언어 중 하나인데, 뭐가 좋길래 이렇게 핫할까? 멀리 갈 것 없이 위키피디아에 Go를 검색해보면 바로 첫 문단에 등장한다. 3가지로 요약이 되는데, 1. GC (Gar..