🐹 Go에서의 채널(Channel) 활용 방법

Go 문법

초급 난이도
문법 타입
11/13 등록일

Go에서의 채널(Channel) 활용 방법

초급
태그
기초 문법 입문 동시성 채널
## 개요
채널은 Go 언어에서 goroutine 간의 데이터 전송 및 동기화에 사용되는 핵심 기능입니다. 여러 goroutine이 동시에 작업을 수행할 때, 채널을 통해 안전하게 데이터를 공유하고 통신할 수 있습니다.

## 주요 특징
- 비동기식 데이터 전송
- 고립된 메모리 공간을 제공하여 동시성 문제 방지
- nil 체크로 사용 여부 확인 가능
- 버퍼링 기능으로 성능 최적화 가능

## 사용법
채널은 `make(chan 타입, [버퍼 크기])` 문법으로 생성됩니다. 채널에 데이터를 전송할 때는 `<-` 연산자를 사용하며, 수신 시에는 `<-`로 값을 받습니다.

## 주의사항
- 채널을 사용하지 않을 경우 nil 체크를 통해 오류 방지
- 버퍼 크기를 지정하지 않으면 기본적으로 비버퍼드 채널이 생성됨으로써 데이터 전송 속도가 저하될 수 있음
- 무한 대기 상태(예: `<-ch`)는 프로그램 종료를 방해할 수 있으므로 반드시 처리 필요

## 관련 문법
- Goroutine: 채널과 함께 사용되는 병렬 처리 기능
- Select 문: 여러 채널에서 데이터를 선택적으로 읽거나 쓸 수 있는 구조
코드 예제
package main

import "fmt"

func main() {
	ch := make(chan int)

go func() {
		ch <- 42
	}()

	result := <-ch
	fmt.Println("받은 값:", result)
}
등록일: 2025년 11월 13일 02:31
언어 정보
언어
Go
카테고리
System
인기도
#8
학습 팁
코드를 직접 실행해보세요
변수를 바꿔가며 실험해보세요
오류가 나도 포기하지 마세요
다른 예제도 찾아보세요