# 불변 그래프와 Clojure: Nubank의 1억 3,100만 고객 규모 확장 비결
Nubank은 Clojure, Datomic, 불변 데이터를 활용해 단 12년 만에 1억 3,100만 고객을 달성했습니다. 이 스택은 4,000개의 마이크로서비스, 하루 720억 개의 Kafka 이벤트, 25억 건의 Datomic 트랜잭션을 처리합니다. 이 접근법은 복잡성을 줄이면서도 별도의 인프라 없이 내장된 감사 추적 기능을 제공합니다.
브라질 은행 환경과 Nubank의 출발
브라질 은행 시장은 5대 대형 은행이 신용 시장의 84%를 장악하며 연 이자율이 최대 450%에 달하는 상황이었습니다. 약 3,400만 명의 성인이 은행 계좌가 없었고, 계좌 개설에만 몇 달이 걸렸습니다. 2013년, David Vélez(Sequoia Capital), Cristina Junqueira(Itaú), Edward Wible(Princeton)로 이뤄진 팀이 모바일 앱으로 수수료 없는 신용카드를 출시하며 Nubank을 시작했습니다. 초기 한도는 10달러 정도로 낮았습니다.
시드 펀딩: 200만 달러. 이후 폭발적인 성장이 이어졌습니다: 2019년 1,200만 고객, 2021년 IPO 시 4,800만 고객, 2024년 1억 고객, 2025년 1억 3,100만 고객(브라질 성인 인구의 62% 차지). 입소문 추천이 성공의 핵심 동력이었습니다.
뱅킹 시스템에서 가변 데이터의 함정
가변 데이터는 감사(audit)를 악몽으로 만듭니다. 규제 당국은 고객의 정확한 상태—신용 한도, 점수 모델, 입력 데이터—를 언제든 요구합니다. 전체 이력이 없으면 분쟁이 발생합니다. 머신러닝 모델은 업데이트 후 재현이 불가능해집니다.
감사 테이블, 트리거, 버전 관리 같은 전통적 해결책은 비즈니스 가치 없이 수천 줄의 코드를 쌓아 올립니다.
불변 접근법: 모든 변경은 타임스탬프가 붙은 새로운 사실입니다. 언제든 특정 시점의 상태를 쿼리할 수 있습니다. 감사는 무료, 재현성은 보장됩니다.
왜 Datomic과 Clojure인가
CTO Edward Wible은 Out of the Tarpit에서 영감을 받아 최소한의 가변 상태를 우선시했습니다. 그는 Rich Hickey가 만든 불변 데이터베이스 Datomic을 선택했는데, EAVT(Entity-Attribute-Value-Transaction) 형식입니다.
- 아무것도 삭제되지 않습니다.
- 모든 변경은 시간 기반 사실입니다.
- 상태는 Git처럼 시간 슬라이스입니다.
Datomic은 Clojure로 이어졌습니다. 팀은 OOP와 RDBMS를 버렸습니다. 기술 스택: Clojure(백엔드), Kafka(비동기), Datomic(데이터), Flutter(모바일), AWS/K8s(인프라).
2025년 규모: 4,000개 마이크로서비스, 하루 720억 Kafka 이벤트, 하루 25억 Datomic 트랜잭션, 85+ K8s 클러스터, 하루 50+ 배포(마스터에서 프로덕션까지 30분).
Nubank은 2020년 Clojure/Datomic 창작자 Cognitect를 인수했고, Hickey가 합류했습니다. Datomic은 2023년 Apache 2.0으로 완전 오픈소스화되었습니다.
Rich Hickey의 철학
Rich Hickey는 Clojure를 홀로 2.5년 만에 만들었습니다. Simple Made Easy의 핵심 아이디어:
- Simple은 얽히지 않은 것; easy는 익숙한 것. 업계는 단순성을 편의와 맞바꿉니다.
- 객체가 아닌 값. 시간은 사실의 연속입니다.
- 정체성은 상태의 연속; 사실은 불변이어야 합니다.
함의:
- 락/뮤텍스 없음, 동시성 처리 사소함.
- 결정론적 테스트.
- Git 같은 데이터베이스: 시간 여행 내장.
Victor Oliveira에 따르면, Hickey의 영향은 언어를 넘어 소프트웨어 설계를 재정의합니다.
Nubank 아키텍처에서 Conway의 법칙
Conway의 법칙(1968): 시스템은 조직의 커뮤니케이션 구조를 반영합니다. 세 팀이 세 패스 컴파일러를 만듭니다; 고립된 그룹은 투박한 인터페이스를 만듭니다.
Nubank은 스택 중심으로 조직을 의도적으로 구성했습니다: 작은 크로스펑셔널 팀, 통일된 기술. 이로 복잡성을 낮추며 1억 3,100만 고객 규모로 확장했습니다.
주요 교훈:
- 불변성은 감사 인프라를 없애 준법성을 단순화합니다.
- Datomic의 EAVT + 시간 = 뱅킹 데이터용 Git.
- Clojure + Conway의 법칙으로 4,000개 서비스에서 단순성 실현.
- Nubank의 성장은 고스케일 핀테크에서 함수형 프로그래밍의 효과를 증명합니다.
- Datomic 오픈소싱으로 채택 확대.
— Editorial Team
아직 댓글이 없습니다.