데이터 엔지니어링에 대한 인사이트 갖기

// 데이터 엔지니어 병아리 탈출기 // 첫번째

SoniaComp
7 min readDec 26, 2021

// 데이터 엔지니어 병아리 탈출기 // 시리즈

‘풀스택 엔지니어’에서 ‘데이터 엔지니어’로 이직을 한 후, 스스로 부족함을 많이 느꼈다. 클라우드와 웹 개발을 공부할 때 Medium 블로그에서 공부한 것들을 정리하고 공유하는 것이 도움이 많이 됐었는데, 이번 시리즈를 통해 데이터 엔지니어로 한번 더 성장하고 싶다.

데이터 엔지니어링.. 쉽지 않네 ㅠㅜ

이번 시리즈는 다음과 같이 구성된다.

1. 데이터 엔지니어링에 대한 인사이트 갖기
(1) 데이터 엔지니어링의 역사
(2) 데이터의 개념과 종류
(3) 데이터 처리 방식: 일괄처리, 실시간 처리
(4) 데이터 파이프라인 - Dataflow Orchestration
2. 대표적인 데이터 프레임워크
(1) Apache Hadoop
(2) Apache Spark: 데이터 병렬-분산 처리
(3) Apache Hive
(4) Apache Storm
(5) Apache Flink & Kafka: 실시간 빅데이터 처리
(+) Livy, Delta Lake
3. 다양한 데이터 Solution 익히기
(1) Airflow: 데이터 오케트레이션
(2) Elastic Search(ELK)
(3) Druid
(4) Superset
(5) Tableau
(6) Presto
(7) Kinesis
4. 퍼블릭 클라우드 솔루션
(1) AWS: Data 수집 - 저장 - 처리 - 분석 - 시각화
(2) AWS 솔루션 Upgrade: 비용 최적화 등
(3) GCP: Data 수집 - 저장 - 처리 - 분석 - 시각화
(4) GCP 솔루션 Upgrade: 비용 최적화 등
5. 데이터 엔지니어링 아키텍처 설계
(1) 시스템 설계 패턴: 확장성, 안정성
(2) 디자인 패턴: 확장성, 코드 유지보수성
(3) 알고리즘과 자료구조: 대규모 트래픽과 데이터 처리
(4) 데이터 모델과 트랜잭션 디자인
(5) 개발 프로세스 운영 관리 및 배포 시스템 디자인

왜 데이터 엔지니어링을 알아야 하는가?

출처: http://data-intelligence.io/?fbclid=IwAR2Jmgat1lMCxl1zMbC-8WPQkCz7Nlb-4XuHjyaRZ1l6DqYqeJh1NPBW3jQ

현대적인 온라인 서비스의 3요소인 인공지능/클라우드/모바일의 중심에는 데이터가 있다. 모바일 앱으로 수많은 데이터를 수집할 수 있게 되었고, 클라우드 컴퓨팅 파워로 이런 데이터를 저장하고 처리할 수 있게 되었다. AI 를 통해 데이터를 활용한 다양한 지능형 서비스가 나오게 되었다.

데이터의 개념과 종류

데이터 종류

  • 정량적 데이터
  • 정성적 데이터

데이터 형식

  • 정형 데이터(구조화된 데이터)
  • 비정형 데이터
  • 반정형 데이터(반구조화)

위에 대한 설명을 아래 링크에서 볼 수 있다.
(참고로 내가 번역 오픈소스 컨트리뷰션 한 링크다! 😉)

데이터 처리 방식

참고 블로그: joonhwan.github.io

  • 일괄 처리: 일정 시간 범위 내의 데이터 포인트
    “Window of Data” 로 처리
    → “Large Volumes of Data”용
  • 실시간 처리: 특정 시각의 데이터 포인트. “Fast Data”. 실제 처리를 위해 마이크로 배치 스타일 혹은 실시간 으로 처리된다.
    → “Large Quantities of Data”용

데이터 파이프라인

데이터 파이프라인은 Source 에서 Destination 으로 데이터를 이동하는 수단입니다. 그 과정에서 데이터라 변환되고 최적화되어 비즈니스 통찰력을 개발하는 데 사용할 수 있고, 분석할 수 있는 상태에 도달합니다.

데이터 파이프라인의 이점

해당 데이터를 분석하려면 전체 데이터 세트에 대한 단일 보기가 필요합니다. 해당 데이터가 여러 시스템 및 서비스에 있는 경우 심층 분석에 적합한 방식으로 결합해야 합니다. 데이터 흐름 자체는 신뢰할 수 없습니다. 한 시스템에서 다른 시스템으로 전송하는 동안 손상이나 병목 현상이 발생할 수 있는 지점이 많습니다.
=> 프로세스에서 대부분의 수동 단계를 제거하고, 한 단계에서 다른 단계로 원활하고 자동화된 데이터 흐름을 가능하게 합니다. 데이터 기반 의사 결정을 더 빠르게 내리는 데 도움이 되는 실시간 분석에 필수적입니다.

데이터 파이프라인 세가지 필수 요소

  1. Source
    데이터의 출처. DBMS, IoT 센서 등
  2. Processing Steps
    데이터 소스에서 데이터를 추출하고 비즈니스 요구에 따라 조직 및 변경한 다음 목적지에 보관.
  3. Destination
    일반적으로 분석을 위한 데이터 레이크 또는 데이터 웨어하우스

Data Pipeline VS ETL

ETL(Extract, Transform, Load) 시스템은 소스에서 데이터를 이동하고 데이터를 변환한 다음 대상으로 데이터를 로드한다는 점에서 일종의 데이터 파이프라인입니다. 그러나 ETL은 일반적으로 하위 프로세스일 뿐입니다. 파이프라인의 특성에 따라 ETL이 자동화되거나 전혀 포함되지 않을 수 있습니다. 반면에 데이터 파이프라인은 한 위치에서 다른 위치로 데이터를 전송하는 데 관련된 전체 프로세스라는 점에서 더 광범위합니다.

특징

  • 지속적이고 확장 가능한 데이터 처리
  • 클라우드의 탄력성과 민첩성
  • 데이터 처리를 위한 격리되고 독립적인 리소스
  • 민주화된 데이터 액세스 및 셀프 서비스 관리
  • 고가용성 및 재해 복구

맺음말

옛날에 야곰님의 가르침 중 지금까지도 도움이 되는 말씀이 있다.
> 하나의 역사를 알면, 그것이 왜 존재하는지를 깊이 있게 이해할 수 있다.

이 글을 통해 데이터 엔지니어링 기술을 본격적으로 알아보기 전에, 데이터 엔지니어링에 대해 마음과 머리가 말랑말랑해졌으면 좋겠다. 다른 생각해볼 점들이 있다면 언제든지 댓글로 공유해주세용!! 😚

--

--

SoniaComp

Data Engineer interested in Data Infrastructure Powering Fintech Innovation (https://www.linkedin.com/in/sonia-comp/)