본문 바로가기

Study/Data Engineering

[데이터 파이프라인 핵심 가이드] 1. 데이터 파이프라인 소개

본 포스팅은 위키북스 사의 "데이터 파이프라인 핵심 가이드"의 내용을 정리한 글입니다.

 

1. 데이터 파이프라인 소개

1 - 1. 데이터 파이프라인이란?

데이터 파이프라인은 다양한 소스에서 새로운 가치를 얻을 수 있는 대상으로 데이터를 옮기고 (load) 변환하는 (transform) 일련의 과정이다.

데이터 파이프라인은 Rest API와 같은 단일 소스에서 데이터를 추출하고 데이터 웨어하우스의 SQL 테이블과 같은 다른 대상으로 데이터를 로드하는 간단한 구조의 파이프라인부터 추출된 데이터에 대한 유효성 검사, 가공 과정, 머신러닝 모델 추론과 같은 과정들이 추가되는 복잡한 구조의 파이프라인까지 다양한 복잡성을 가진다.

필자가 진행했던 프로젝트의 데이터 파이프라인

실제로 필자가 수행했던 프로젝트에서도 클라이언트로부터 받은 사용자 데이터를 가공하여 AI 모델 추론을 거친 뒤 데이터베이스에 적재하는 복잡한 과정을 거치게 된다.

즉, 데이터 파이프라인의 복잡성은 원본 데이터의 크기와 상태, 구조 및 분석 프로젝트의 요구사항에 따라서 달라진다.

 

1 - 2. 누가 파이프라인을 구축할까?

데이터 파이프라인은 데이터를 다루는 누구라도 구축하지만, 주로 데이터 엔지니어가 구축하게 된다.

데이터 엔지니어의 목적은 단순히 데이터를 데이터 웨어하우스에 로드하는 것이 아니라 데이터를 통해서 통찰력을 만들어내는 데이터 과학자 및 분석가와 긴밀히 협력하여 그들이 분석에만 집중할 수 있도록 확장 가능한 프로덕션 상태로 전환하는 것이다.

데이터 엔지니어의 특정 기술은 조직에서 사용하는 기술 스택에 따라서 달라지지만, 몇가지 공통적인 보유 기술이 있다.

 

1. SQL과 데이터 웨어하우징 기초

데이터베이스를 다루기 위해서는 쿼리하는 방법을 알아야 하고 SQL은 이를 가능하게 하는 보편적인 언어다. 단순히 SQL을 다루는 것뿐만 아니라 고성능의 SQL 작성법과 데이터 모델링의 기본 사항을 이해해야한다.

데이터 팀 내에 데이터 웨어하우징 전문가가 있다고 해도 웨어하우징에 대한 기본 지식을 갖춘 데이터 엔지니어가 더 나은 파트너가 될 수 있다.

2. 파이썬, 자바

데이터 팀에서 좋은 툴을 보유하고 있다고 해도 코드 없이 작업을 수행할 수는 없다. 주로 파이썬과 자바가 사용되며 최근에 고와 같은 언어도 등장하고 있다.

3. 분산 컴퓨팅

데이터의 양이 많아지면서 분산 컴퓨팅 플랫폼이 사용되기 시작했다.

분산 컴퓨팅은 여러 시스템의 성능을 결합하여 대량의 데이터를 효율적으로 저장, 처리 및 분석할 수 있다.

4. 기본 시스템 관리

데이터 엔지니어는 리눅스 명령줄에 능숙해야 하며 응용 프로그램 로그 분석, 크론 작업 예약, 방화벽 및 기타 보안 설정의 문제 해결과 같은 작업을 수행할 수 있어야 한다.

클라우드 제공업체에서 작업하는 경우에도 해당 기술을 사용해서 클라우드 서비스와 함께 데이터 파이프라인을 배포하게 된다.

5. 목표 지향적 사고방식

소프트 스킬에 해당될 것 같은데, 데이터 엔지니어는 팀의 분석가와 데이터 과학자와 정기적으로 소통하고 협업하기 때문에 목표 지향적 사고 방식 즉, 파이프라인을 구축하는 이유를 알고 있으면 더 나은 아키텍처적인 결정을 내릴 수 있다.

 

1 - 3. 왜 데이터 파이프라인을 구축할까?

데이터 과학자 및 분석가는 데이터를 분석하여 비즈니스적인 통찰력을 제공하는데 전문성이 있다. 그러므로 이들이 원본 데이터를 수집하고 처리하는데 시간을 낭비하기 보다는 잘 정제된 데이터를 통해서 분석 업무만을 수행하는 것이 훨씬 더 비용 효율적일 것이다.

따라서 이들이 데이터를 더 가치있고 효율적으로 사용할 수 있도록 하기 위해서 데이터 파이프라인 구축이 필요하다.

 

다음 포스팅인 2장 최신 데이터 인프라에서는 데이터 파이프라인 생태계를 구성하는 요소들(데이터 웨어하우스, 오케스트레이션 등)에 대해서 대략적으로 설명할 예정이다. 다음 포스팅에서 만나요✋