소개
이번 챌린지에서는 고루틴 사이에서 정수를 전달하는 간단한 데이터 처리 파이프라인을 구축하여 Go 언어 채널의 강력한 기능을 실습해 봅니다. 버퍼가 있는 채널을 생성하고, 1 부터 5 까지의 숫자를 채널에 기록한 다음, 기록된 순서대로 각 숫자를 읽어와 출력하는 프로그램을 작성해야 합니다.
간단한 채널 데이터 파이프라인 구축하기
이번 챌린지에서는 고루틴 간에 정수를 전송하는 간단한 데이터 처리 파이프라인을 만들어 Go 채널의 활용법을 익힙니다.
과제
- 용량이 5 인 정수형 버퍼 채널을 생성하세요.
- 채널에 1, 2, 3, 4, 5 숫자를 차례대로 기록하세요.
- 채널에서 각 숫자를 읽어와 기록된 순서대로 출력하세요.
요구 사항
- 파일 경로는
~/project/data_pipeline.go를 사용하세요. make(chan int, 5)를 사용하여 버퍼 채널을 생성하세요.- 채널 전송 연산자
<-를 사용하여 숫자를 채널에 기록하세요. - 채널 수신 연산자
<-를 사용하여 채널에서 숫자를 읽으세요. fmt.Println()을 사용하여 각 숫자를 출력하세요.- 모든 숫자가 완전히 기록되고 읽혔는지 확인하세요.
실행 예시
프로그램 실행:
go run data_pipeline.go
예상 출력:
1
2
3
4
5
힌트
- 채널에 값을 보낼 때는
ch <- value형식을 사용합니다. - 채널에서 값을 받을 때는
value := <-ch형식을 사용합니다. - 버퍼 채널을 사용하면 데이터가 가득 차기 전까지 블로킹 없이 여러 값을 보낼 수 있습니다.
- 필요한 경우 모든 값을 기록한 후 채널을 닫을 수 있습니다.
요약
정리하자면, 이번 챌린지에서는 채널을 활용하여 간단한 데이터 처리 파이프라인을 구축하는 Go 프로그램을 작성해 보았습니다. 버퍼 채널을 생성하고, 1-5 까지의 숫자를 기록한 뒤, 이를 순서대로 읽어와 출력하는 과정을 통해 동시성 프로그래밍의 기초를 다졌습니다.



