데이터 레이크

Data Lake

도구

원천에서 나온 데이터를 가공하지 않고 형식 그대로 쌓아 두었다가, 꺼내 쓸 때 비로소 해석하는 저장소입니다.

등장 배경

분석용 데이터를 모아 두는 방식은 오랫동안 하나였습니다. 어떤 칸에 어떤 값이 들어갈지 미리 정해 두고, 그 틀에 맞게 다듬은 것만 받아들이는 데이터 웨어하우스입니다. 결제 기록이라면 결제일·계정·요금제·금액 네 칸으로 통일해 두는 식입니다. 들어간 뒤에는 바로 꺼내 쓸 수 있으니 분석하는 쪽에서는 편합니다.

문제는 틀에 맞지 않는 것이 생각보다 많다는 데 있었습니다. 서버가 한 줄씩 남기는 기록 파일, 고객이 올린 이미지, 회사마다 응답 모양이 다른 외부 서비스의 데이터는 네 칸짜리 표에 들어갈 자리가 없습니다. 틀을 새로 만들려면 무엇을 분석할지부터 정해야 하는데, 그 답을 아직 모르니 받아들이지 못하고 흘려보냅니다.

페이지덱에서도 같은 일이 있었습니다. 지현이 문서를 만들다 그만두는 사람들의 경로를 보려고 편집기 안의 동작 기록을 찾았는데, 그 기록은 서버에 30일만 남았다가 지워지고 있었습니다. 3년 치가 쌓여 있어야 할 자리에 한 달이 있었습니다. 쓸모를 몰라서 버린 것이 아니라, 받아들일 틀을 정하지 못해서 버리고 있었던 겁니다.

저장 장치 값이 싸진 것이 여기에 답을 줬습니다. 일단 전부 받아 두고 틀은 나중에 정하는 쪽이 현실적인 선택이 된 겁니다.

해결하는 문제

무엇을 분석할지 정하기 전에 데이터를 받아 두게 해 줍니다. 틀을 넣을 때 맞추지 않고 꺼낼 때 맞추기 때문입니다. 세 가지가 이 하나에서 갈라져 나옵니다.

  1. 형식이 제각각인 데이터를 받습니다. 표 모양이 아닌 것도 들어갑니다. 줄글로 남은 기록 파일, 고객 지원 대화 내용, 이미지와 음성 파일, 칸 구성이 회사마다 다른 외부 응답이 여기 해당합니다.
  2. 지금 쓸모를 모르는 데이터를 버리지 않게 됩니다. 반년 뒤 이탈 원인을 보려 할 때 과거 기록이 있는지가 분석을 할 수 있느냐 없느냐를 가릅니다. 데이터는 지나간 뒤에 만들어 낼 수 없습니다.
  3. 원천이 바뀌어도 수집이 멈추지 않습니다. 외부 서비스가 응답에 칸 하나를 더하면 정해진 틀로 받던 쪽은 적재가 실패하지만, 레이크는 모양이 달라진 채로 그냥 들어옵니다. 달라졌다는 사실은 꺼내 쓸 때 확인합니다.

페이지덱의 편집기 기록이 그 예입니다. 기록을 레이크에 쌓아 두기 시작한 뒤로는 어떤 동작을 남길지 미리 정하지 않았는데, 반년 뒤 문서 공유 기능을 고칠 때 공유 버튼을 누르고 취소한 횟수가 필요해졌습니다. 그 동작은 분석하려고 남긴 것이 아니라 그냥 같이 쌓여 있던 것이었습니다.

값을 치르는 자리는 꺼내는 쪽입니다. 넣을 때 생략한 해석이 사라진 게 아니라 읽는 사람에게 넘어간 것뿐입니다. 같은 파일을 볼 때마다 어느 칸이 계정 번호인지, 날짜가 어느 시간대 기준인지를 매번 알아내야 하고, 다섯 명이 각자 알아내면 다섯 가지 해석이 생깁니다.

대안

목적이 같은 선택지가 셋 있고, 무엇을 분석할지 이미 아는 정도에 따라 갈립니다.

  1. 웨어하우스만 둡니다. 다룰 데이터가 자기 제품의 결제와 가입 기록뿐이고 칸 구성이 안정적이라면 레이크를 따로 둘 이유가 없습니다. 열 명 규모에서 레이크를 먼저 만들면 관리할 곳만 하나 늘어납니다.
  2. 원천에 그대로 두고 필요할 때 꺼내 씁니다. 외부 서비스가 과거 데이터를 언제든 다시 내려받게 해 준다면 굳이 복사해 둘 필요가 없습니다. 다만 대부분의 서비스는 조회 기간에 제한을 두기 때문에, 90일까지만 준다면 그 90일이 사실상 보유 기간이 됩니다.
  3. 레이크와 웨어하우스를 함께 둡니다. 실무에서 가장 흔한 형태입니다. 원본은 전부 레이크에 쌓고, 그중 분석에 자주 쓰는 것만 다듬어 웨어하우스에 올립니다. 이 순서를 ELT라고 부릅니다. 먼저 적재하고 나중에 변환한다는 뜻이고, 변환을 뒤로 미룬 덕에 규칙이 틀렸다는 것을 알았을 때 원본에서 다시 만들 수 있습니다. 이 흐름 전체를 데이터 파이프라인이라고 하고, 어느 단계에 무엇을 둘지가 설계의 대부분입니다.

실무 용례

"일단 레이크에 적재는 해 두고, 웨어하우스에 올릴지는 다음 분기에 정하죠."

지금 분석하지 않더라도 기록은 남겨 두자는 제안입니다.

"그 수치 레이크에서 직접 뽑은 거라 정제 안 된 값이에요."

숫자를 그대로 믿지 말라는 경고입니다. 중복이나 실패한 요청이 섞여 있을 수 있다는 뜻입니다.

"레이크는 있는데 카탈로그가 없어서 뭐가 들어 있는지 모르겠어요."

쌓아 두기만 하고 무엇이 어디 있는지 적어 두지 않아 쓰지 못하는 상태입니다.

페이지덱은 시리즈 A 직후에 레이크를 만들었습니다. 태오가 서버 기록과 외부 결제 서비스의 응답, 고객 지원 도구의 대화 내용을 매일 한 곳으로 옮기게 해 뒀습니다. 처음 석 달 동안 이걸 꺼내 본 사람은 없었습니다.

쓸모가 드러난 건 반년 뒤였습니다. 규원이 기업 고객의 갱신율이 왜 떨어졌는지 묻자 지현이 지난 1년치 고객 지원 대화를 꺼내 요금제별로 묶어 봤습니다. 그때 만든 규칙은 기록을 쌓기 시작할 때 아무도 생각하지 않았던 것이었고, 기록이 없었다면 그 질문은 답할 방법 자체가 없었습니다.

흔한 오해

모아 두면 언젠가는 쓴다고 여기는 것이 가장 흔합니다. 저장 비용이 싸니 일단 넣자는 판단이 합리적으로 보입니다. 하지만 무엇이 들어 있고 각 칸이 무엇을 뜻하는지 적어 두지 않으면 반년 뒤에는 폴더 이름만 보고 짐작해야 하고, 만든 사람이 퇴사하면 짐작할 근거도 없어집니다. 그렇게 쓰이지 않는 채로 부피만 늘어난 상태를 데이터 늪이라고 부릅니다. 늪이 되는 것을 막는 건 저장 방식이 아니라 무엇을 넣었는지 적어 두는 습관입니다.

레이크가 있으면 분석을 바로 할 수 있다고 생각하는 것도 잦습니다. 데이터가 있다는 말과 쓸 수 있다는 말이 같아 보이기 때문입니다. 실제로는 원본 상태의 기록을 분석에 쓰려면 중복을 걷어 내고, 시간대를 맞추고, 같은 계정이 여러 값으로 들어온 것을 하나로 묶는 일이 먼저입니다. 이 몫을 아무도 맡지 않으면 분석하는 사람마다 자기 방식으로 정리하고, 같은 달 매출이 회의에 세 개 들어옵니다.

자주 헷갈리는 용어

용어무엇을 담는가데이터 레이크와의 차이
데이터 웨어하우스미리 정한 구조에 맞춰 다듬은 데이터넣기 전에 틀을 정하니 꺼낼 때 편하고 넣을 때 까다롭습니다. 레이크는 그 순서가 반대라 둘은 대개 함께 씁니다
로우 레이어손대지 않은 원본을 담는 첫 층저장소가 아니라 저장소 안쪽을 나눈 층의 이름입니다. 웨어하우스 안에도 로우 레이어가 있을 수 있고, 레이크 전체가 그 층 역할을 맡기도 합니다

같이 보면 좋은 페이지

  • 분석용 데이터 저장소

    레이크가 어느 자리의 선택지 하나인지, 형태와 계층과 모델링이 어떻게 갈리는지 먼저 봅니다

  • 데이터 웨어하우스

    함께 쓰는 짝이라 둘을 같이 보면 어디에 무엇을 둘지가 정해집니다

마지막 업데이트 2026-09-16