모든 블로그
당근마켓

당근마켓

블로그 방문

최신 게시글 (20)

2월 27일

AI

2조 토큰을 카테고리 분류에 쓰면서 알게된 것들

LLM 기반 택소노미 관리 시스템 구축과 운영 경험을 정리했습니다. Dataflow·BigQuery 기반 파이프라인과 LLM-as-judge 평가로 품질과 비용을 관리합니다.

#BigQuery#LLM#프롬프트
125000

2월 27일

AI

‘로컬’ 슈퍼 앱에서 장기 유저 모델링은 어떻게 달라질까?

장기 유저 로그로 Transformer 기반 유저 임베딩을 학습해 추천·광고에 적용했습니다. 지역 제약을 반영한 RCBS와 콘텐츠 임베딩으로 negative·cold item 문제를 해결해 지표를 개선했습니다.

#Transformer#유저 임베딩#contrastive learning
39000

2월 27일

프론트엔드

200MB 모듈을 팀 단위로 해결하기: 당근 숏폼팀의 On-demand Dynamic Feature Module 도입

당근 숏폼팀은 200MB 편집 모듈의 SO 파일만 On-demand DFM으로 분리해 글로벌 사용자 용량 부담을 낮췄습니다. 코드와 DI는 base에 두어 운영 안정성 확보했습니다.

#Android#DFM#SO files
42000

2월 23일

프론트엔드

웹뷰 엔지니어를 위한 iOS Webview Input 경험 개선기

iOS 웹뷰에서 input 포커스 시 발생하는 화면 밀림 문제를 네 가지 시도로 해결하려 시도했습니다. 최종적으로 opacity 트릭으로 밀림을 차단해 유저 입력 경험을 개선했습니다.

#iOS#keyboard#webview
19000

1월 23일

백엔드

서버를 위한 Redux: Node.js 이벤트 소싱 라이브러리 개발기

이 글에서는 당근이 TypeScript 퍼스트 이벤트 소싱 라이브러리 Ventyd를 개발한 과정을 소개했습니다. Redux와 유사한 패턴으로 서버와 클라이언트에서 도메인 로직을 공유하고 감사·롤백·알림 등 복잡한 요구사항을 관리한다고 설명합니다.

#TypeScript#redux#Node.js
85000

1월 15일

아키텍처

당근페이 백엔드 아키텍처가 걸어온 여정

당근페이 백엔드가 계층형에서 헥사고날을 거쳐 클린 아키텍처·모노레포로 진화했습니다. 도메인 분리와 배포 독립성 확보 과정을 공유합니다.

#Java#Spring#monorepo
329000

1월 12일

백엔드

Building Event Center: Karrot’s User Event Management Platform

이 글은 이벤트 로깅 관례를 표준화하고 Event Center라는 UI 기반 어드민을 구축한 과정을 설명합니다. Git 기반 스키마 관리를 UI로 전환하고 명명 규칙·CLI 도구로 자동화했습니다.

#BigQuery#GCP#user-events
27000

1월 8일

백엔드

당근의 사용자 행동 로그 관리 플랫폼: 이벤트센터 개발기

당근은 코드 기반 이벤트 스키마 관리를 UI 기반 이벤트센터로 전환하여 운영 효율을 개선했습니다. 이벤트 정의부터 QA, BigQuery 적재와 플랫폼별 타입 안전 코드 생성을 자동화했습니다.

#BigQuery#Logging#GCP
75000

1월 2일

백엔드

Standardizing User Activation: How We Built a Shared Data Layer at Karrot

Karrot는 사용자 활성화를 Stock·Flow로 표준화한 공통 레이어를 구축했습니다. Fact 기준 고정과 FirstLast로 비용과 신뢰성 문제 해결했습니다.

#Airflow#dbt#activation-layer
57000

1월 2일

백엔드

당근은 왜 User Activation을 전사 공통 데이터 레이어로 만들었을까?

당근은 Activation을 전사 공통 레이어로 만들어 활성 상태와 전이 제공했습니다. Fact 기반 3개 모델과 스냅샷 방식으로 비용·신뢰성·생산성 문제 해결했습니다.

#retention#dbt#user activation
107000

12월 22일

AI

Karrot’s GenAI Platform

Karrot가 LLM Router, Prompt Studio, KarrotChat으로 GenAI 확장 사례 정리. 중앙 게이트웨이·무코드 실험·내부 에이전트 플랫폼 제공.

#GenAI#LLM Router#Prompt Studio
89000

12월 19일

AI

당근의 GenAI 플랫폼

당근은 LLM Router, Prompt Studio, KarrotChat으로 계정 관리·실험·배포·운영 문제 해결. MCP 허브와 Agent로 비개발자도 데이터 분석·업무 자동화 가능.

#BigQuery#GenAI#LLM Router
69000

12월 16일

데브옵스

Running Elasticsearch on Kubernetes the Easy Way, Part 2 — Data Node Warm-Up

롤링 재시작 시 캐시 손실로 인한 검색 지연과 장애 원인 분석. search-coordinator로 워밍업된 노드만 트래픽 처리해 배포 안정성 확보.

#Elasticsearch#Kubernetes#warm-up
69000

12월 15일

데브옵스

당근 검색 엔진, 쿠버네티스로 쉽게 운영하기 2편 — 데이터 노드 웜업 적용

롤링 리스타트로 인한 캐시 미스와 샤드 부하 집중으로 레이턴시·가용성 문제 발생. search-coordinator로 웜업된 노드만 서빙하도록 하여 안전한 배포 환경 확보.

#Elasticsearch#Kubernetes#Redis
89000

12월 9일

백엔드

Karrot’s Journey to CDC with MongoDB

Karrot는 MongoDB Change Stream과 Flink CDC로 DB 부하를 줄이고 BigQuery 적재를 안정화. 초기 스냅샷은 Spark로 처리하고 시간별 CDC 배치로 2시간 SLO 충족.

#BigQuery#Spark#MongoDB
33000

12월 8일

백엔드

매번 다 퍼올 필요 없잖아? 당근의 MongoDB CDC 구축기

당근 데이터 가치화 팀은 MongoDB 데이터를 BigQuery로 안정적이고 효율적으로 적재하기 위해 Flink CDC 기반 파이프라인을 구축했습니다. 이를 통해 DB 부하를 낮추고 2시간 내 데이터 전달 SLO를 충족하며, 스키마 변화와 데이터 정합성 문제도 효과적으로 관리하고 있습니다.

#BigQuery#MongoDB#CDC
147000

12월 5일

백엔드

Mapping Karrot’s Data: How We Built Column-Level Lineage

Karrot 데이터 팀은 SQL 파싱을 활용해 컬럼 단위 데이터 계보를 구축하여 데이터 흐름과 영향 분석을 상세하게 파악할 수 있게 했습니다. 이 방법은 기존 테이블 단위 계보의 한계를 극복하고 데이터 신뢰성과 투명성을 크게 향상시켰습니다.

#data#BigQuery#SQL
30000

12월 4일

백엔드

당근 데이터 지도를 그리다: 컬럼 레벨 리니지 구축기

당근은 BigQuery 쿼리 로그를 SQL 파싱해 컬럼 레벨 데이터 리니지를 구축하여 데이터 의존성을 세밀하게 추적합니다. 이를 통해 데이터 신뢰성을 높이고 문제 해결 시간을 단축하는 효과를 얻었습니다.

#BigQuery#SQL#automation
70000

11월 27일

AI

The Journey to Daangn Pay’s AI-Powered FDS: From Building a Rule Engine to Applying LLMs

Daangn Pay는 유연한 룰 엔진을 기반으로 하는 FDS를 구축하여 금융 사기를 실시간으로 탐지합니다. 이후 LLM을 도입해 사기 평가의 속도와 일관성을 크게 향상시켰습니다.

#AWS#LLM#FDS
45000

11월 24일

백엔드

당근페이 AI Powered FDS로 가는 여정: 룰엔진구축부터 LLM 적용까지

당근페이는 룰엔진 기반 이상거래 탐지 시스템을 구축하고, LLM과 RAG 기술을 도입해 사기 판단의 정확성과 효율성을 높였습니다. 앞으로 AI 안전장치 강화와 탐지 데이터 활용 고도화를 통해 금융 서비스 안전성을 지속 개선할 계획입니다.

#AWS#LLM#RAG
107000