Data Engineering 이란

유승선 ·2023년 2월 25일
1

SQL, JPQL

목록 보기
6/8
post-thumbnail

항상 백엔드 개발자만 꿈 꾸어왔던 내가 새로운 목표를 가지게 되었다. 현재 회사에서 우연치 않게 데이터 엔지니어링 포지션을 맡게되면서 인입되는 정말로 많은 데이터를 대상으로 DE 작업을 인수인계 받고 작은 업무부터 시작하다보니 흥미가 생겼다.

내가 가진 백엔드 지식과 함께 DE 포지션으로의 전환을 위해서 조금 더 기록을 할 예정이다.

데이터 엔지니어란?

  • 데이터를 활용하는 모든 사람들을 위해 데이터를 저장, 가공 처리하는 직군

  • 우리가 물을 사용할 수 있도록 배관을 만들어주는 배관공분들과 맥락이 같다 (물 = 데이터, 배관 = 데이터 ETL 파이프라인)

데이터 엔지니어를 이해하기 위한 배경

  • 현재 사용되고 있는 많은 앱/웹 서비스 (카카오톡, 유투브 등) -> Database에 저장되고 있다. (MySQL, PostgreSQL 등)

운영되고 있는 Database는 서비스를 위한 데이터를 저장하고, 장애가 나면 안되지만 복잡한 연산의 쿼리를 날리고 연산이 심해진다면 Database 서비스가 정상적으로 동작하지 않을 수 있다.

따라서, Database 보다 Data Warehouse (데이터 창고)에 데이터를 저장하는 추세다.

데이터 엔지니어 업무 -1) ETL 파이프라인

  • ETL 파이프라인 : Extract, Transform, Load

E -> 서비스의 로그 데이터 추출
T -> 데이터를 잘 사용할 수 있도록 변환해준다. (CSV -> JSON 형식)
L -> 변환한 데이터를 데이터 웨어하우스에 로드

데이터 처리 방식 - 배치 / 실시간

데이터를 처리하는 대표적인 2가지 방법

배치 (Batch)

  • 1시간에 1번씩, 1일에 1번씩
  • 특정 시간에 1번씩 진행하는 방식
  • 매일 아침 9시에 배달해주세요 (샐러드 등 정기 서비스)

실시간 (Realtime, Streaming)

  • 요청시 바로 바로
  • 실시간으로 데이터 처리
  • 주문 요청하면 바로 만들어서 배송해주세요 (배달 서비스)

데이터 엔지니어 업무 -2) 데이터 분석을 더 쉽게 할 수 있는 환경(인프라) 구축

데이터 웨어하우스란 많은 양의 데이터를 관리하기 쉽게 만들어진 거대한 데이터베이스라고 생각할 수 있다.

그런데 데이터 웨어하우스에 데이터를 옮기면 끝인걸까?
데이터 웨어하우스에는 수많은 Table이 존재하고, 데이터 분석을 하는 사람들이 SQL 쿼리문을 작성하게 된다.

그러나, 비즈니스에 따라 다르겠지만,

  • 10개 이상의 Table을 Join 하는 경우도 있을거고
  • 사람마다 Where 절을 누락하는 경우도 있고
  • SQL 쿼리를 실행할 때 실행 시간이 오래걸릴 수도 있다

이런 경우를 해결하기 위해서 사진에 보이는 데이터 마트(Data Mart) 를 구축한다.

  • 간단하게 SQL JOIN 한 결과를 Batch로 Table에 저장한다
  • 특정 목적, 도메인에 맞는 마트 구축한다.

그 외에, 시각화를 위해서 Tableau 같은 기술을 사용하기도 하지만, DE의 업무는 환경을 만들어주고 시각화 같은 경우는 DA의 영역이 맞다.

데이터 엔지니어 업무 -3) Data Product 개발

Data Product : Data 관련 제품 서비스

같은 경우가 있다. DE의 역활이 데이터만 손보는게 아니고 점점 소프트웨어 개발자의 영역까지 확장한다고 생각하면 된다.

데이터 엔지니어의 필요 역량

  • 데이터 엔지니어링 역량 (대용량 데이터 처리, Database, 네트워크 등 종합적인 역량)
  • 개발 역량(Python, Java)
  • 클라우드, Docker, Kubernetes
  • 백엔드 개발자의 필요 역량과 유사

마지막 문장이 좀 중요한거같다. 결국 상황마다 사용되는 기술은 다르기에 어떤 기술 스택을 사용할때 어떤 상황이여서 이런 기술을 사용했다를 설명하는게 더 좋은거같다.

정리하자면...


출처:
카일 유투브

profile
성장하는 사람

0개의 댓글