Developers Haven

(DH)블로그는 개발자들이 기술 정보를 찾아볼 수 있는 안식처가 되고 싶음을 희망하여 시작하게 되었습니다. 공부한 내용과 성장 과정을 기록해두었으니 편히 둘러보시길 바랍니다.

Welcome to DH's Blog

[기술서적]

[빅데이터를 지탱하는 기술] Chapter5.빅데이터의 파이프라인 - (1)

DH’s Blog 2023. 6. 2. 06:20
반응형

 

 

신입 데이터 아키텍처로서 첫 프로젝트를 진행하며 요즘 가장 많이 접하고 있는 용어가 ‘워크플로우(Workflow)’이다. 현재 진행중인 단위테스트에서도 가장 많이 이용되고 있는 부분이 워크플로우이며, 이러한 과정에서 개념을 확실히 알고 넘어가는 것이 중요하다고 생각했다. 마침 본 챕터에서 워크플로우에 대한 설명과 필요한 이유에 대해 서술하고 있으니 제대로 배워보도록 하자.

 

1. 워크플로우 관리

오늘날과 같은 빅데이터 시대에서는 직접 눈으로 가늠할 수 없을 정도의 방대한 양의 데이터가 쏟아지고 있다. 그만큼 대량의 데이터 처리는 안정적이면서 자동적으로 진행되는 기술이 필요해졌고 이를 위해 등장하게 된 것이 ‘워크플로우’이다.

 

1-1. 워크플로우의 등장

  • 정해진 업무 프로세스를 원활하게 진행할 수 있도록 업무의 흐름을 관리하고 도와주는 구조를 ‘워크플로우 관리(workflow management)’라고 한다.
  • 워크플로우 관리 도구의 가장 큰 역할은 ‘정기적으로 태스크를 실행 ’하고 ‘비정상적인 상태를 감지하여 해결 ’하는 것이다. 참고로 ‘태스크(task)’는 전체 데이터 처리 흐름에서 발생하는 각각의 개별 처리 과정을 의미한다.

 

 

1-2. 워크플로우 관리 도구의 필요성

워크플로우 관리 도구는 크게 아래의 3가지 부분을 담당하며, 이러한 업무 덕분에 우리는 대량의 데이터를 보다 쉽게 수집하고 처리할 수 있게 되는 것이다. 그리고 이러한 도구를 통해 데이터 수집 과정에서 발생하는 문제를 빠르게 인지하고 해결을 할 수 있게 된다.

  • 정기적인 스케줄을 실행하고 실행 결과를 사용자에게 전달한다.
  • 정해진 태스트 간의 관계에 따라 순서대로 모든 태스크를 빠짐없이 실행한다.
  • 태스크 과정에서 오류가 발생하면 사용자에게 문제를 보고하여 재실행할 수 있도록 도와준다.

 

 

1-3. 워크플로우 관리 도구의 종류

(1) 선언 형(declarative) 워크플로우 관리 도구

  • XML, YAML 등의 서식으로 워크플로우를 기술하는 방식
  • 제공되는 기능 만으로 태스크를 정의할 수 있기에 유지 보수성이 높음

 

(2) 스크립트 형(scripting) 워크플로우 관리 도구

  • 스크립트 언어를 사용하여 워크플로우를 정의하는 방식
  • 변수나 제어 구문을 사용하여 프로그래밍을 통해 태스크를 정의할 수 있음

 

 

1-4. 워크플로우 관리 도구 오류와 해결방법

  • 데이터 처리를 안정적으로 하기 위해 사용되는 것이 워크플로우 도구라고 하였지만 과연 100% 안정적이라고 할 수 있을까? 이 질문에 대한 답은 ‘No’이다.
  • 데이터를 다루는 환경에서는 [일시적인 네트워크 장애 / 하드웨어 장애 / 스토리지 용량 부족 / 쿼리 성능 저하] 등의 다양한 문제가 발생할 수 있기 때문에 이러한 상황에서 워크플로우가 절대적으로 안정적이다라고 말할 수는 없다. 그럼 우리는 어떻게 해야할까?
  • 이 질문에 대한 답은 ‘문제 상황의 원인을 신속히 인지하고 해결하는 것 ’이다. 그리고 발생할 수 있는 오류에 대한 대처 방법을 미리 결정해 두는 것도 하나의 방법이 될 수 있다. 워크플로우 실행에서 발생할 수 있는 오류와 이를 신속히 회복할 수 있는 방법을 다음장에서 배워볼 것이다.

 

 

 

 

 

📘참고 서적: [빅데이터를 지탱하는 기술]
니시다 케이스케 지음 / 정인식 옮김

 

 

반응형