프로필사진
DevOps 부트캠프 기록일지
DevOps_04_김재환
04_Study(파이프라인)
04_Study(파이프라인)

2023. 3. 10. 09:40부트캠프/DevOps (TIL)

파이프라인

데이터 처리 단계의 출력이 다음 단계의 입력으로 이어지는 형태로 연결된 구조를 가리킨다. 이렇게 연결된 데이터 처리 단계는 한 여러 단계가 서로 동시에, 또는 병렬적으로 수행될 수 있어 효율성의 향상을 꾀할 수 있다. 각 단계 사이의 입출력을 중계하기 위해 버퍼가 사용될 수 있다.

 

대표적인 파이프라인 구조는 다음과 같은 것이 있다.

  • 명령어 파이프라인: 같은 CPU 회로 안에서 여러 명령어들이 단계적으로 수행되는 것을 가리킨다. 각 명령어는 다시 페치, 디코딩, 연산 등의 세부 주기로 나뉘어 각 파이프라인 단계에 의해 수행된다.
  • 그래픽스 파이프라인: 대부분의 그래픽 카드는 그래픽 처리 과정을 3차원 사영, 윈도 클리핑, 셰이딩, 렌더링 등으로 나누어 각각의 하부 모듈에서 병렬적으로 수행한다.
  • 소프트웨어 파이프라인: 한 소프트웨어의 출력이 자동으로 다른 소프트웨어의 입력으로 연결될 경우 이를 소프트웨어 파이프라인이라고 한다. 유닉스 계열 운영체제에서 사용되는 파이프가 대표적이다.

이중에서 linux에 사용할 파이프 용어의 정의는 소프트웨어 파이프라인인 것 같습니다.

 

파이프프로세스1의 출력 스트림을 프로세스2의 입력 스트림으로 사용할 때 파이프 기호 | 를 사용하여 아래와 같은 형식으로 작성합니다.

 

$ process1 | process2

 

예를 들어 터미널에서 '/bin'으로 이동하여 'ls -l'을 작성하면 많은 파일이 나타납니다. 이 중에서 ssh라는 문자열을 포함한 것들만 확인 하려고 합니다.

 

다시 말해, ls -l 명령으로 표준 출력을 하고, 출력 된 내용을 ssh 이라는 인자를 전달 받는 grep 명령에 표준 입력으로 전달시키는 파이프를 만들어 보겠습니다.

 

$ ls -l | grep ssh

이와 같이 프로세스 간 입/출력을 연결 하고 싶으면 파이프 |를 이용합니다.

 

이처럼 입/출력을 연결하여 자료를 간편화 등 자주 사용되기 때문에 꼭 알아둬야 합니다.

 

출처 : https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%B4%ED%94%84_(%EC%9C%A0%EB%8B%89%EC%8A%A4)