디스커버리 Go 언어 - 구글 Go 언어 가독성 승인자가 알려주는 실전 Go 언어의 재발견

1

Go 언어의 문법을 가장 쉽게 설명한 책이다. 특히 고루틴과 채널에 관한 설명과 예제가 좋기 때문에 Go 언어에 관심있다면 꼭 읽어볼 필요가 있다.

2

챕터8의 ‘실무패턴’은 2~3번 정도 읽어볼 필요가 있다. 우리가 당연하게 받아들이고 있는 몇가지 것들을 Go 언어에서 구현하는 방법을 소개하고 있기 때문에 가장 흥미로웠다.


  1. Go 표준 라이브러리에 따로 스택 자료구조가 들어 있지는 않습니다. 이미 슬라이스로도 충분히 구현이 가능하기 때문입니다. 스택에 집어넣는 것은 append를 이용하면 되고, 스택에서 빼내는 것은 마지막에 있는 것을 제거하는 것으로 가능합니다.

  2. 코드의 덩어리를 만든 다음에 그것을 호출하고 귀환할 수 있는 구조를 서브룬틴이라고 부릅니다. 큰 프로그램을 서브루틴으로 구분하면 코드를 재사용하여 중복된 코드를 줄일 수 있고, 서브루틴의 내부와 외부를 분리하여 생각할 수 있어서 코드를 추상화하고 단순화할 수 있습니다.

  3. […] 포인터를 넘겨주고 있을까요? 그 이유는 이 함수가 넘겨준 슬라이스의 값을 변경해야 하기 때문입니다.

  4. 동시성은 병렬성과는 다르지만 동시성이 있어야 병렬성이 생기게 됩니다.

  5. […] 넘겨받는 함수에서 받은 채널은 반대 방향으로 이용할 수 없으니 채널을 이용한 프로그래밍을 단순하게 하고, 실수를 방지해줍니다. 적극적으로 이용하시기를 권장드립니다.

  6. […] 채널을 이용하는 방법에 몇 가지 장점이 있습니다. 1) 생성하는 쪽에서는 상태 저장 방법을 복잡하게 고민할 필요가 없다 2) 받는 쪽에서는 for의 range를 이용할 수 없다 3) 채널 버퍼를 이용하면 멀티 코어를 활용하거나 입출력 성능상의 장점을 이용할 수 있다.

Written on May 14, 2016