
전 세계 어디에서든 동시에 문서를 열고, 누군가는 제목을 바꾸고, 누군가는 체크박스를 누르고, 또 누군가는 이미지를 옮기고 있어도… 노션은 거의 지연 없이 모든 변화를 실시간으로 반영합니다.
수억 명이 사용하는 서비스에서 이런 일이 가능하다는 게 믿기세요?
사실 노션 내부에서는 매초 수십만 개 이상의 “블록”이 생성·수정·삭제되며, 이 모든 움직임이 마치 거대한 오케스트라처럼 정확한 타이밍으로 조율되고 있습니다.
그럼에도 노션은 ‘빠르고’, ‘끊기지 않고’, ‘무너지지 않습니다’.
왜일까요?
그 비밀은 우리가 평소에는 거의 생각하지도 않는 아키텍처 설계 방식에 숨어 있습니다.
이번 글에서는
- 노션의 블록 기반 데이터 구조,
- 480→960개로 확장된 초거대 샤딩 구조,
- Kafka·Hudi·Snowflake로 구축된 실시간·대용량 파이프라인,
- 서비스 중단 없이 시스템을 교체하는 Dark Read 전략
이 모든 것을 하나씩 뜯어보며, 노션이 어떻게 ‘빅테크급 기술 스택’을 갖추게 되었는지 완전히 해부해보려 합니다.
노션이 왜 빠른지, 그리고 어떻게 전 세계 수억 명의 실시간 협업을 버티는지 궁금했다면—
지금부터 그 비밀을 함께 파헤쳐보시죠!
🧱
노션의 정보는 ‘레고 블록’처럼 저장돼요!
- 노션의 글 한 줄, 체크박스 하나, 사진 하나… 모두 레고 블록처럼 따로따로 저장돼요.
- 그래서 노션 페이지 하나를 열면, 사실은 200~400개 블록이 모여 있는 레고 집을 열고 있는 거예요.
- 각각의 블록은 “나는 텍스트!”, “나는 이미지!” 같은 자기 소개(ID)를 갖고 있어요.
⚠️
처음에는 블록이 너무 많아져서 컴퓨터가 힘들어했어요
- 노션은 한때 모든 블록을 한 개짜리 초거대 상자(Postgres DB) 안에 넣고 있었어요.
- 근데 블록이 200억 개까지 늘어나자…
→ 상자가 너무 꽉 차서 꺼내기도 어렵고 넣기도 느려졌어요.
🔀
그래서 ‘샤딩’이라는 마법으로 여러 상자로 나눴어요
- “큰 상자 하나” 대신,
“작은 상자 480개”로 쪼개어 저장하는 방식이 바로 샤딩(Sharding)이에요. - 각 상자는 워크스페이스 ID 기준으로 자동으로 나뉘어요.
- 상자를 들고 있는 컴퓨터도 처음엔 32대였는데, 나중에는 96대로 늘려 더 안정적이 됐어요.
👉 비유하면
“한 반에 1000명을 넣지 말고, 반을 30개 만들어 나누자!” 같은 개념이에요.
❄️
분석용 데이터는 Snowflake·S3·Spark가 처리해요
- 노션의 실시간 데이터는 Postgres가 처리하지만,
분석(통계·리포트)은 훨씬 다른 방식이 필요해요. - 그래서 데이터를
→ Fivetran으로 가져오고
→ Snowflake라는 분석용 창고에 넣고
→ Spark로 변환해서 사용해요.
즉, “실시간 작업용 상자”와 “분석용 상자”를 아예 따로 둔 것이에요.
🔥
실시간으로 생기는 많은 데이터를 Kafka + Hudi + S3가 처리
- 누군가 노션에 글을 쓰거나 지우면,
그 변화가 카프카(Kafka)라는 쿨러에 “새 데이터 있어요!” 하고 빠르게 전달돼요. - Hudi는 “아, 이 블록은 수정됐네? 버전 2로 저장할게!” 같은 버전 관리 담당자예요.
- 모든 데이터는 결국 S3라는 초대형 창고에도 저장돼요.
👉 쉽게 말하면
“실시간 소식은 Kafka → 정리와 기록은 Hudi → 보관은 S3” 구조예요.
🚦
접속이 너무 많으면? pgBouncer가 교통 정리!
- 많은 사람이 동시에 노션을 열면 DB가 “잠깐만!” 하면서 버벅일 수 있어요.
- 그래서 pgBouncer라는 “교통 경찰”이
“너부터! 그 다음 너!” 하며 순서를 조절해줘요. - 샤드가 많아질수록 pgBouncer도 여러 팀으로 나뉘어 일해요.
🔄
놀라운 무중단 전환: ‘Dark Read’
- 노션은 새 시스템을 바로 쓰지 않아요.
- 대신 사용자가 모르게 뒤에서 몰래 테스트해요.
→ 이걸 Dark Read(다크 리드)라고 해요. - 사용자가 요청하면 그 요청을
“기존 시스템”에도 보내고
“새 시스템”에도 보내서 결과를 비교해봐요. - 충분히 안정적이다 싶을 때
→ 조금씩 진짜 트래픽을 넘기기 때문에 거의 멈추지 않는 전환이 가능해요.
핵심 요약
노션은 레고 블록처럼 데이터를 쪼개 저장하고, 여러 상자로 나누고, 실시간·분석·백업 시스템을 따로 운영하며, 몰래 테스트하는 방식으로 멈추지 않는 서비스를 만든다.
우리는 이제 노션이 왜 빠르고, 왜 무너지지 않는지 이해했습니다.
그리고 이것은 하나의 중요한 질문을 던지게 합니다.
“그렇다면 일반 기업의 시스템은 노션과 무엇이 다를까?”
일반 기업도 데이터베이스, 데이터레이크, ETL 파이프라인을 사용합니다.
하지만 노션은 완전히 다른 구조와 요구 조건을 가지고 있죠.
실시간 협업, 블록 기반 데이터 구조, 초거대 사용자 트래픽…
무엇이 그 차이를 만들었을까요?
📌 다음 글에서는,
‘일반 기업 vs 노션’ — 데이터 구조·트래픽·샤딩·실시간성의 차이를 비교해볼 예정입니다.
관심 있다면 이어서 확인해보세요!
'Analysis' 카테고리의 다른 글
| 일반 기업은 모르는 노션의 진짜 기술력: 데이터 처리 방식 완전 비교 (3) | 2025.12.12 |
|---|