싱크 (컴퓨팅)

컴퓨팅에서 싱크(sink) 또는 데이터 싱크(data sink)는 일반적으로 데이터 흐름의 대상을 의미한다.

싱크(sink)라는 단어는 컴퓨팅에서 여러 용도로 사용된다. 소프트웨어 공학에서 이벤트 싱크는 다른 객체나 함수로부터 이벤트를 수신하는 클래스 또는 함수를 의미하며, 싱크는 또한 유향 비순환 그래프에서 다른 노드로 이어지는 추가 노드가 없는 노드를 지칭하는 등 여러 용도로 사용될 수 있다.

 소프트웨어 공학에서 
이벤트 싱크(event sink)는 다른 객체나 함수로부터 들어오는 이벤트를 수신하도록 설계된 클래스 또는 함수이다. 이는 일반적으로 C++에서 콜백으로 구현된다. 객체 지향 언어인 자바나 C# 등은 이벤트를 델리게이트 함수로 보낼 수 있도록 함으로써 싱크에 대한 내장 지원을 제공한다.

공식적인 정의가 부족하기 때문에 싱크는 종종 게이트웨이와 혼동되기도 한다. 게이트웨이는 유사한 구성이지만 후자는 일반적으로 종단점이거나 이기종 시스템 간의 양방향 통신을 허용하는 반면, 싱크는 단순히 이벤트 입력 지점에 불과하다. 이는 C++ 및 하드웨어 관련 프로그래밍에서 자주 볼 수 있으며, 따라서 개발자의 명명법 선택은 싱크에서 작동하는 에이전트가 싱크 콘텐츠의 생산자인지 소비자인지에 따라 달라진다.

 그래프 이론에서 

유향 비순환 그래프에서 소스 노드는 다른 노드로부터 들어오는 연결이 없는 노드(꼭짓점이라고도 함)를 의미하며, 싱크 노드는 나가는 연결이 없는 노드이다.

유향 비순환 그래프는 명령어 스케줄링, 신경망 및 데이터 압축에 사용된다.

 스트림 처리에서 

GStreamer, 펄스오디오 또는 파이프와이어와 같이 스트림을 사용하는 여러 컴퓨터 프로그램에서 싱크는 데이터 스트림을 소비하는 파이프라인의 시작점인 반면, 소스는 데이터 스트림을 방출하는 종점이다(종종 데이터에 대한 일부 처리 기능을 수행한 후).

펄스오디오 사운드 시스템의 오디오 파이프라인이 한 예이다. 마이크와 같은 입력 장치는 소비를 위해 싱크로 데이터를 보내는 오디오 장치이다. 오디오 신호는 오디오 소스로 사용 가능하며, 볼륨 조절과 같은 오디오 처리가 적용되었을 수 있다. 일반적으로 오디오 믹싱과 같은 다른 단계를 거치게 된다. 이런 방식으로 볼륨 조절 처리는 싱크를 통해 오디오 샘플을 수신하고, 이를 소스에서 방출하며, 이 소스는 믹서 싱크에 연결되어 오디오를 믹싱하고, 최종적으로 처리된 오디오를 소스에서 방출한다. 펄스오디오에서는 출력 소스라고 부른다. 이러한 파이프라인의 구성 및 연결은 복잡하고 동적일 수 있다.

싱크와 소스라는 용어는 혼란스러울 수 있지만, 시스템의 진입점(소스)과 종료점(싱크)을 특별히 지칭한다. 이 용어는 전기 공학과 같은 다른 분야에서 사용되는 용어와 정확히 유사하다.

 기타 용례 

'싱크'라는 단어는 업계에서 입력과 출력 모두에 사용되어 왔다. 모바일 싱크는 무선 센서 네트워크에서 자료를 기지국(싱크)으로 전송할 때 다중 홉 통신을 위해 센서 에너지를 절약하는 데 제안되었다.

 같이 보기 
 네트워크 흐름
 이벤트 기반 아키텍처

 각주 

분류:네트워크
분류:객체 지향 프로그래밍
분류:네트워크 이론