시스템 클래스 CONCATENATED-STREAM — 연결 스트림
시스템 클래스 CONCATENATED-STREAM — 연결 스트림
여러 입력 스트림을 이어 붙여 마치 "하나의 긴 스트림"처럼 읽고 싶을 때가 있죠. 그럴 때 쓰는 타입이 CONCATENATED-STREAM(연결 스트림)입니다. 이 타입이 어떻게 동작하는지 정리한 페이지예요.
클래스 우선순위 목록
concatenated-stream, stream, t
본문 (Description)
연결 스트림(concatenated stream) 은 입력 스트림으로, 0개 이상의 다른 입력 스트림들을 묶어 만든 복합 스트림(composite stream)입니다. 연결 스트림에서 읽을 수 있는 데이터의 순서는, 각 구성 스트림에서 읽을 수 있는 데이터의 순서를 그대로 이어 붙인 것과 같아요.
데이터 흐름은 이렇게 진행됩니다.
- 연결 스트림에서 입력을 읽으면 첫 번째 연결된 입력 스트림부터 읽기 시작해요.
- 그 스트림이 파일 끝(end of file
[1])에 도달하면, 그 스트림은 버려지고 다음 입력 스트림으로부터 이어서 읽습니다. - 이런 식으로 스트림을 하나씩 소진해 나가죠.
여기서 중요한 점이 하나 있어요. 연결된 각 입력 스트림의 파일 끝은 항상 연결 스트림이 눈에 안 보이게(invisible) 처리합니다. 즉 연결 스트림의 사용자(client)가 파일 끝을 목격하는 순간은 오직 이럴 때뿐이에요 — 더 이상 데이터를 얻을 수 있는 남은 입력 스트림이 없는데도 연결 스트림에서 데이터를 얻으려 시도했을 때만 그렇습니다. 그 외에는 중간 스트림들이 끝났다고 해서 연결 스트림 전체가 끝난 것처럼 보이지 않는 거죠.
더 알아보기 (Learn more)
- 원문: System Class CONCATENATED-STREAM
concatenated-stream-streams: Function CONCATENATED-STREAM-STREAMSmake-concatenated-stream: Function MAKE-CONCATENATED-STREAM