데이터 파이프라인에서 멱등성이 왜 중요한가
·
Data Engineer
데이터 파이프라인을 만들다 보면 "멱등성" 이라는 단어를 한 번쯤 듣게 된다. 멱등성(Idempotency)은 같은 작업을 한 번 실행하든 세 번 실행하든 결과가 동일한 성질이다.데이터 파이프라인에서 이게 의미하는 건 단순하다. > 배치를 한 번 돌리든 세 번 돌리든, 테이블에 들어가는 데이터는 똑같아야 한다. 팀에 합류하고 얼마 안 돼서 기존 파이프라인 몇 개를 넘겨받았다. 전임자가 만들어둔 거라 구조만 훑어보고 넘어갔다. 잘 돌아가고 있었으니까. 어느 날 새벽에 그 배치가 죽었다. 네트워크 타임아웃. 재실행했다. 다음 날 아침에 분석팀에서 "데이터가 이상한 것 같다"라고 연락이 왔다. 코드를 다시 열어봤다. 간소화하면 대충 이런 형태였다.INSERT INTO analytics.daily_payment..
이커머스 데이터 파이프라인을 설계할 때 고려해야 할 것
·
Data Engineer
이커머스 데이터에는 다른 도메인이랑 다른 점이 하나 있다.한 번 집계한 숫자가 며칠 뒤에 보면 달라져 있다는 거다. 코드가 바뀐 것도 아니고, 데이터가 사라진 것도 아닌데, 어제 매출이라고 찍어둔 숫자가 오늘 보면 줄어 있을 수 있다. 이건 파이프라인 버그가 아니라 이커머스 데이터의 본질적인 특성이다.그래서 이커머스 파이프라인은 처음 설계할 때부터 이 특성을 전제로 깔고 가야한다. 이 문제를 이해하려면 먼저 이커머스 데이터가 어떻게 만들어지는지 봐야한다.로그나 클릭 같은 데이터는 한 번 발생하면 그걸로 끝이다.어제 찍힌 페이뷰작 오늘 갑자기 사라지지 않는다.그래서 어제 데이터를 한 번 집계하면 그 숫자는 영원히 그 값이다. 이커머스의 주문은 다르다.주문 한 건이 끝까지 가는 데 며칠에서 몇 주가 걸리고..
데이터 파이프라인에서 dbt의 역할
·
Data Engineer
데이터 엔지니어링을 공부하다 보면 어느 순간부터 dbt라는 단어가 자꾸 눈에 들어온다.찾아보면 "SQL 변환 도구"라는 설명이 반복되는데, 솔직히 그걸로는 감이 안왔따.그래서 이게 대체 왜 필요한 건지, 파이프라인 안에서 어떤 역할을 하는 건지 직접 정리해봤다. 데이터 파이프라인, 큰 그림부터 보자SaaS 서비스를 운영하는 회사에서 일한다고 해보자. Salesforce에서는 고객 정보가 들어오고, Stripe에서는 결재 내역에 쌓이고,자체 서비스 DB에는 유저 활동 로그가 남는다.이 데이터들은 분석팀이 쓸 수 있게 만들려면 보통 세 단계를 거친다.추출 (Extract) - 여기저기 흩어진 데이터를 끌고온다적재 (Load) - 한 곳에 모아서 저장한다변환 (Transform) - 분석할 수 있는 형태로 가..
Git 명령어 정리
·
Computer Science
1. Git이란?Git은 분산 버전 관리 시스템(DVSC) 입니다.쉽게 말해, 코드의 변경 이력을 기록하고 관리하는 도구입니다.누가, 언제 ,뭘 변경했는지 전부 추적 가능실수로 코드를 망쳐도 이전 상태로 되돌리기 가능브랜치를 활용해 기능별로 독립적인 개발 가능Git vs GitHub vs GitLab구분설명Git버전 관리 도구 (내 PC에서 동작)GitHubGit 원격 저장소 호스팅 서비스 (microsoft)GitLabGit 원격 저장소 호스팅 서비스 (자체 서버 구축 가능) - Git은 도구이고, GitHub/GitLab은 그 도구를 클라우드에서 사용할 수 있게 해주는 서비스 입니다. 2. Git 저장소의 구조Git에는 4개의 공간이 있습니다. 코드가 이 공간들을 이동하면서 관리됩니다.Working ..
UUID(Universally Unique Identifier)란?
·
Data Engineer
UUID는 128비트 길이의 고유 식별자로, 중앙 관리 시스템 없이도 전 세계적으로 유일한 ID를 생성할 수 있도록 설계되었습니다.RFC 4122 표준으로 정의되어 있으며, 일반적으로 다음과 같은 형태로 표현됩니다`550e8400-e29b-41d4-a716-446655440000`8-4-4-4-12 형식의 16진수로 구성되며, 하이픈으로 구분된 5개의 그룹으로 이루어집니다. UUID의 구조UUID는 총 128비트(16바이트)로 구성되며, 다음과 같이 분해할 수 있습니다.`xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx`time_low (32비트): 타임스탬프의 하위 32비트time_mid (16비트): 타임스탬프의 중간 16비트time_hi_and_version (16비트): 타임스탬프..
XAMPP MySQL이 “shutdown unexpectedly” — 포트 문제인 줄 알았는데, 진짜 원인은 mysql.global_priv 손상이 원인 (해결)
·
Data Engineer
오늘 오후 중에 윈도우 서버 컴퓨터가 강제 종료가 되버리는 증상이 발생하였습니다.기존의 돌리던 프로그램들은 거의 다 Linux 환경으로 옮겨놨고, 남아있던게 MySQL이랑 Apache였는데 작업 도중 서버가 다운이 되버렸습니다. 다시 부팅을 하고 XAMPP로 기존의 프로그램을 실행했는데 Apache는 잘 돌아가는 반면 MySQL의 경우에는 기존의 사용하던 3306 Port로 열리지 않고 3307로 자동으로 Port가 변경되어 열리는 현상이 발생하였습니다. [mysql] Error: MySQL shutdown unexpectedly.This may be due to a blocked port, missing dependencies, improper privileges, a crash, or a shutdo..
CDC 파이프라인이란? 실시간 데이터 동기화의 핵심 기술
·
Data Engineer
현대의 분산 시스템 환경에서 데이터는 여러 시스템과 데이터베이스에 분산되어 저장됩니다.이때 데이터의 일관성을 유지하고 실시간으로 동기화하는 것은 매우 중요한 과제입니다.CDC(Change Data Capture)파이프라인은 이러한 문제를 해결하기 위한 핵심 기술로, 데이터베이스의 변경사항을 실시간으로 감지하고 다른 시스템으로 전파하는 역할을 합니다.CDC란 무엇인가?CDC(Change Data Capture)는 데이터베이스에서 발생하는 모든 변경사항(INSERT, UPDATE, DELETE)을 실시간으로 감지하고 캡처하는 기술입니다.전통적인 배치 처리 방식과 달리, CDC는 데이터 변경이 발생하는 즉시 이를 감지하여 스트리밍 방식으로 처리합니다. CDC의 핵심 개념트랜잭션 로그 기반 감지대부분의 CDC ..
왜 우리는 유도된 선택을 할 수밖에 없는가
·
Why?
선택의 착각과 설계된 자유의지"오늘 저녁 무엇을 먹을까?" 우리는 매일 수백 가지 선택을 한다고 합니다. 레스토랑에서 메뉴를 고르고, 쇼핑몰에서 옷을 선택하고, 온라인에서 상품을 주문하죠. 그런데 정말 우리가 "선택"하고 있는 걸까요? 선택 설계의 숨겨진 손소비자는 본인이 선택했다고 느끼지만, 그 선택지가 어떻게 만들어졌는지 놓치는 경우가 많습니다.실제로는 유도된 선택을 하는 경우가 많기 때문이죠. 마케팅에서는 이것을 선택 설계 [Choice Architecture] 라고 부릅니다. 예를 들어:스타벅스에 가서 아메리카노를 주문할 때를 생각해보세요. "사이즈는 어떻게 하시겠어요?"라는 질문을 받으면, 우리는 톨(Tall), 그란데(Grande), 벤티(Venti) 중에서 선택한다고 생각합니다.하지만 실제로..
Apache Airflow란?
·
Data Engineer
"매일 오전 9시에 데이터를 추출해서 변환하고, 문제가 있으면 알림을 보내고, 성공하면 리포트를 생성해서" 이런 반복적인 작업을 수동으로 처리하고 계신가요? 개발자라면 누구나 한 번쯤은 복잡한 배치 작업들을 자동화하고 싶어했을 것입니다. Apache Airflow가 바로 이런 고민을 해결해주는 강력한 솔루션입니다. Apache Airflow란?Apache Airflow는 워크플로우를 프로그래밍 방식으로 작성, 스케줄링, 모니터링할 수 있게 해주는 오픈소스 플랫폼입니다. 2014년 Airbnb에서 복잡한 데이터 파이프라인을 관리하게 위해 개발되었고, 2016년 Apache Software Foundation에 기부되어 현재는 데이터 엔지니어링 분야의 사실상 표준으로 자리잡았습니다. 왜 Airflow가 필요..
Data Driven 이란?
·
Data Engineer
"우리는 Data Drvien 회사입니다." 이제는 이말을 하지 않는 회사가 없을 정도다.10년 전만 해도 Data Driven은 구글이나 넷플릭스 같은 빅테크 기업들만의 전유물이었다.하지만 이제는 스타트업부터 전통 기업까지, 모든 곳에서 Data Driven을 말한다. 문제는 이제 Data Drvien이 너무 당연한 말이 되버렸다는 것이다.마치 "고객을 생각합니다." 처럼 누구나 하는 말이되었다.데이터가 중요한 이유현대 사회에서 데이터의 중요성은 더 이상 설명이 필요 없을 정도다.특히 디지털 환경에서는 모든 행동이 데이터로 기록된다. 사용자가 언제 들어왔는지, 어떤 페이지를 봤는지, 얼마나 머물렀는지, 어디서 이탈했는지까지 모든 것이 숫자로 남는다. 이런 데이터들은 고객의 진짜 모습을 보여준다. 설문조..