[go] Go 언어의 채널

Go 언어는 동시성을 처리하는 기능이 강점으로, 다양한 채널 패턴을 제공합니다. 채널은 고루틴 사이에서 데이터 전달을 위한 통로로 활용됩니다.

채널 기본

채널은 make 함수를 통해 생성되며, chan 키워드와 데이터 타입으로 정의됩니다.

ch := make(chan int)

채널의 송수신

채널은 <- 연산자로 데이터를 주고받습니다. 아래는 송신과 수신의 예제입니다.

// 채널에 데이터 송신
ch <- 10

// 채널에서 데이터 수신
val := <- ch

채널 닫기

채널을 더 이상 사용하지 않을 때는 close 함수를 사용하여 닫을 수 있습니다.

close(ch)

채널 select 패턴

여러 채널을 동시에 처리하기 위해 select 문을 사용할 수 있습니다.

select {
  case msg1 := <-ch1:
    fmt.Println("수신한 메세지:", msg1)
  case msg2 := <-ch2:
    fmt.Println("수신한 메세지:", msg2)
}

Go 언어를 사용하여 채널을 활용하는 것은 동시성 및 병행성을 높이는 데 큰 도움이 됩니다.


참고: Go 언어 공식 문서