반응형

신입 데이터 아키텍처로서 첫 프로젝트를 진행하며 요즘 가장 많이 접하고 있는 용어가 ‘워크플로우(Workflow)’이다. 현재 진행중인 단위테스트에서도 가장 많이 이용되고 있는 부분이 워크플로우이며, 이러한 과정에서 개념을 확실히 알고 넘어가는 것이 중요하다고 생각했다. 마침 본 챕터에서 워크플로우에 대한 설명과 필요한 이유에 대해 서술하고 있으니 제대로 배워보도록 하자.
1. 워크플로우 관리
오늘날과 같은 빅데이터 시대에서는 직접 눈으로 가늠할 수 없을 정도의 방대한 양의 데이터가 쏟아지고 있다. 그만큼 대량의 데이터 처리는 안정적이면서 자동적으로 진행되는 기술이 필요해졌고 이를 위해 등장하게 된 것이 ‘워크플로우’이다.
1-1. 워크플로우의 등장
- 정해진 업무 프로세스를 원활하게 진행할 수 있도록 업무의 흐름을 관리하고 도와주는 구조를 ‘워크플로우 관리(workflow management)’라고 한다.
- 워크플로우 관리 도구의 가장 큰 역할은 ‘정기적으로 태스크를 실행 ’하고 ‘비정상적인 상태를 감지하여 해결 ’하는 것이다. 참고로 ‘태스크(task)’는 전체 데이터 처리 흐름에서 발생하는 각각의 개별 처리 과정을 의미한다.

1-2. 워크플로우 관리 도구의 필요성
워크플로우 관리 도구는 크게 아래의 3가지 부분을 담당하며, 이러한 업무 덕분에 우리는 대량의 데이터를 보다 쉽게 수집하고 처리할 수 있게 되는 것이다. 그리고 이러한 도구를 통해 데이터 수집 과정에서 발생하는 문제를 빠르게 인지하고 해결을 할 수 있게 된다.
- 정기적인 스케줄을 실행하고 실행 결과를 사용자에게 전달한다.
- 정해진 태스트 간의 관계에 따라 순서대로 모든 태스크를 빠짐없이 실행한다.
- 태스크 과정에서 오류가 발생하면 사용자에게 문제를 보고하여 재실행할 수 있도록 도와준다.
1-3. 워크플로우 관리 도구의 종류
(1) 선언 형(declarative) 워크플로우 관리 도구
- XML, YAML 등의 서식으로 워크플로우를 기술하는 방식
- 제공되는 기능 만으로 태스크를 정의할 수 있기에 유지 보수성이 높음
(2) 스크립트 형(scripting) 워크플로우 관리 도구
- 스크립트 언어를 사용하여 워크플로우를 정의하는 방식
- 변수나 제어 구문을 사용하여 프로그래밍을 통해 태스크를 정의할 수 있음
1-4. 워크플로우 관리 도구 오류와 해결방법
- 데이터 처리를 안정적으로 하기 위해 사용되는 것이 워크플로우 도구라고 하였지만 과연 100% 안정적이라고 할 수 있을까? 이 질문에 대한 답은 ‘No’이다.
- 데이터를 다루는 환경에서는 [일시적인 네트워크 장애 / 하드웨어 장애 / 스토리지 용량 부족 / 쿼리 성능 저하] 등의 다양한 문제가 발생할 수 있기 때문에 이러한 상황에서 워크플로우가 절대적으로 안정적이다라고 말할 수는 없다. 그럼 우리는 어떻게 해야할까?
- 이 질문에 대한 답은 ‘문제 상황의 원인을 신속히 인지하고 해결하는 것 ’이다. 그리고 발생할 수 있는 오류에 대한 대처 방법을 미리 결정해 두는 것도 하나의 방법이 될 수 있다. 워크플로우 실행에서 발생할 수 있는 오류와 이를 신속히 회복할 수 있는 방법을 다음장에서 배워볼 것이다.
📘참고 서적: [빅데이터를 지탱하는 기술]
니시다 케이스케 지음 / 정인식 옮김
반응형
'[기술서적]' 카테고리의 다른 글
| [빅데이터를 지탱하는 기술] Chapter5.빅데이터의 파이프라인 - (2) (0) | 2023.06.02 |
|---|---|
| [빅데이터를 지탱하는 기술] Chapter4.빅데이터의 축적 - (3) (0) | 2023.06.01 |
| [빅데이터를 지탱하는 기술] Chapter4.빅데이터의 축적 - (2) (0) | 2023.06.01 |
| [빅데이터를 지탱하는 기술] Chapter4.빅데이터의 축적 - (1) (0) | 2023.06.01 |
| [빅데이터를 지탱하는 기술] Chapter3.빅데이터의 분산 처리 - (2) (0) | 2023.06.01 |