모든 블로그
당근마켓

당근마켓

도메인medium.com
주요 카테고리 백엔드 · AI · 프론트엔드

활동 요약

대표 인기 포스트구글처럼 복잡한 권한 쉽게 관리하기 feat. GraphQL525 조회
최근 30일
2개
평균 조회
149
누적 조회
13,734
전체 글
92개
마지막 발행
2026. 11. 3.
블로그 방문

당근마켓 기술 블로그 글 (92)

AI

모두가 데이터를 다루는 AI 시대, 지난 1년간 데이터 팀은 어떻게 달라졌을까?

데이터가치화팀이 지난 1년간 AI를 업무와 플랫폼에 통합한 변화를 정리했습니다. 반복 작업은 빨라졌지만, 검증과 데이터 기반의 중요성은 더 커졌습니다.

#MCP#BigQuery#LLM
12800

데브옵스

Our Journey to Autoscaling EKS Node Groups for Job Workloads

Job 워크로드는 중단에 취약해 EKS 노드그룹 오토스케일링이 어려웠습니다. 이를 해결하기 위해 PodAffinity로 bin-packing을 유도하고, 애노테이션으로 축소 중 종료를 막았습니다.

#AWS#EKS#Kubernetes
3900

데브옵스

Job 워크로드를 위한 EKS Node Group 오토스케일링 도입기

Job 워크로드를 위한 EKS Node Group 오토스케일링 적용 과정을 정리한 글입니다. Bin-packing과 강제 종료 방지, kubelet maxPods 조정까지 함께 다뤘습니다.

#EKS#Kubernetes#AWS
7400

AI

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

당근에서 택소노미와 LLM 분류 파이프라인을 어떻게 운영했는지 정리한 글입니다. 정확도와 비용의 균형, 평가 체계, 확장 전략을 함께 다뤘습니다.

#LLM#BigQuery#Kafka
18600

AI

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

당근의 지역 기반 추천 시스템에서 장기 유저 로그를 Transformer로 학습해 공통 임베딩을 만들었습니다. 이를 홈피드, 후보, 광고에 적용해 학습 신호와 온라인 지표를 함께 개선했습니다.

#ML#Transformer#추천
8700

프론트엔드

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

비디오 편집 모듈의 200MB 용량을 줄이기 위해 On-demand DFM을 도입했습니다. 기능 코드는 base에 두고 SO 파일만 분리해 글로벌 사용자 부담과 운영 복잡도를 함께 낮췄습니다.

#Android#DFM#Hilt
8400

프론트엔드

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

iOS 웹뷰에서 input focus 시 화면이 밀리는 문제를 여러 방식으로 개선한 과정을 정리했습니다. 최종적으로는 opacity 트릭으로 자동 스크롤을 막아 입력 경험을 안정화했습니다.

#iOS#WebView#input
11100

백엔드

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

이 글은 CRUD 중심 서버 설계의 한계를 보완하기 위해 이벤트 소싱과 Ventyd를 소개했습니다. 배포 추적과 게임 상태 관리 사례로 TypeScript 기반 도메인 로직 공유 방식을 설명했습니다.

#node.js#TypeScript#Redux
11600

아키텍처

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

당근페이 백엔드가 계층형 아키텍처에서 헥사고날 아키텍처를 거쳐 클린 아키텍처와 모노레포로 진화한 과정을 소개했습니다. 서비스 성장에 따른 결합도와 배포 복잡도를 줄이기 위해 도메인 분리와 의존성 역전을 강화했습니다.

#Layered Architecture#Hexagonal Architecture#Clean Architecture
43600

프론트엔드

Building Event Center: Karrot’s User Event Management Platform

대규모 사용자 이벤트를 더 일관되고 안전하게 관리하기 위해 Event Center를 구축했습니다. 기존 Git 기반 스키마 관리의 복잡도와 명명 불일치를 UI 기반 플랫폼으로 해결했습니다.

#BigQuery#GCP#GCS
4200

프론트엔드

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

당근은 사용자 행동 로그가 커지며 코드 기반 스키마 관리의 한계를 겪었습니다. 이벤트센터를 만들어 전사 공통 규칙과 UI 기반 자동화로 로그 관리 효율을 높였습니다.

#BigQuery#GCP#TypeScript
11400

아키텍처

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

카라트는 사용자 활성화 분석을 공통 Activation Layer로 표준화했습니다. 팀별 ad hoc 쿼리 대신 DBT 기반 모델로 신뢰성과 운영 안정성을 높였습니다.

#DBT#Airflow#ETL
8200

백엔드

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

당근이 User Activation을 전사 공통 데이터 레이어로 만든 배경과 구조를 설명했습니다. 상태와 전이 분석을 위해 신뢰성, 비용, 생산성을 함께 고려한 설계였습니다.

#DBT#Airflow#SQL
13600

AI

Karrot’s GenAI Platform

Karrot이 GenAI 도입 확산을 위해 LLM Router, Prompt Studio, KarrotChat을 구축한 과정을 소개했습니다. 계정·비용 관리부터 실험, 에이전트 실행, 장애 대응까지 통합한 플랫폼 구조를 설명했습니다.

#LLM#MCP#prompt
12300

AI

당근의 GenAI 플랫폼

당근은 GenAI 활용 확산에 맞춰 LLM Router, Prompt Studio, KarrotChat으로 공통 플랫폼을 구축했습니다. 이를 통해 AI API 통합 관리, 빠른 실험과 배포, 사내 Agent 활용을 지원했습니다.

#LLM#MCP#BigQuery
14000

데브옵스

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

Elasticsearch 롤링 재시작 시 캐시 미준비 노드로 트래픽이 유입돼 지연과 장애가 발생하는 문제를 다뤘습니다. search-coordinator 프록시로 워밍업 완료 노드에만 검색 트래픽을 보내는 구조를 소개했습니다.

#Elasticsearch#Kubernetes#ECK
9300

데브옵스

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

Elasticsearch 데이터 노드 재시작 시 캐시 미적재로 레이턴시가 급증하는 문제를 다뤘습니다. search-coordinator와 웜업 절차로 배포 중에도 안정적으로 트래픽을 받도록 개선했습니다.

#Kubernetes#Elasticsearch#Redis
10400

백엔드

Karrot’s Journey to CDC with MongoDB

Karrot가 MongoDB 적재 방식의 한계를 해결하기 위해 CDC를 도입한 과정을 공유했습니다. 변경 로그 기반으로 BigQuery 적재를 구성하되, 초기 스냅샷은 별도 도구 활용을 검토했습니다.

#MongoDB#BigQuery#CDC
5800