더북(TheBook)

표 5-2에 정리한 세 기능은 파이프라인 형태로 연결되어야 한다.

그림 5-3 세 기능을 파이프라인으로 연결

첫 번째 단계의 실행 결과가 두 번째 단계의 입력으로 전달되고, 두 번째 단계의 실행 결과가 세 번째 단계의 입력으로 전달되도록 채널로 각 함수를 재구성해 보자.

1. find(path string) <-chan string

2. grep(pattern string, in <-chan string) <-chan string

3. display(in <-chan result)

함수 세 개를 다음과 같이 채널로 연결해 보자.

path, pattern := parseArgs()

ch1 := find(path)

ch2 := grep(pattern, ch1)

display(ch2)

find() 함수의 결과는 grep() 함수의 매개변수로 전달되고, grep() 함수의 결과는 display() 함수의 매개변수로 전달되므로 코드를 다음과 같이 작성할 수 있다.

path, pattern := parseArgs()

display(grep(pattern, find(path)))

셸 명령어를 파이프로 연결한 것과 형태가 유사하다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.