우아한 형제들
2026-06-26 · 23일 전
한 번 성공하니 다음도 쉬울 줄 알았다: 최소주문금액바 4번의 A/B실험
들어가며 2024년 10월, 배달의민족 장보기·쇼핑 서비스에 ‘최소주문금액바’라는 스낵바 형태의 UI를 도입했습니다. 퀵커머스는 빠른 배달이 강점이지만, 그만큼 배달 비용도 높습니다. 라이더가 한 번에 배달할 수 있는 주문 수가 제한적이기 때문입니다. 그래서 퀵커머스 서비스에는 일정 금액 이상 주문해야 하는 ‘최소주문금액’이 존재합니다. 최소주문금액바는 고객이 이 기준까지 얼마나 남았는지를 쉽게 알 수 있도록 만든 기능이었어요. 우리의 목표는
FrontendMobilePerformanceUX/UI
우아한 형제들
2026-06-23 · 26일 전
사람도 AI도 놓친 번역 누락, ESLint 플러그인을 만들어 해결하기
여는 글 대 AI의 시대를 맞이하며 배달의민족 앱에 다국어 지원의 바람이 불었습니다. AI의 빠른 번역 속도는 몇 년 동안 잊혀진 다국어 지원의 실현을 앞당겼고, B마트와 장보기쇼핑을 비롯한 커머스 서비스도 예외는 아니었습니다. 이에 맞춰 커머스 웹프론트에서는 한글 문구를 체계적으로 관리 및 번역하고자, 유명한 다국어 프레임워크 i18next와 react-i18next 생태계에 기반한 커스텀 라이브러리 @lib/i18n을 구현했습니다. 그리고
AI/MLFrontendJavaScriptReactTools
우아한 형제들
2026-05-22 · 약 2개월 전
우아한공방의 새로운 동료, 시스템 맥락을 가진 챗봇서비스 개발기(feat. RAG)
AI로 생성한 이미지 들어가며 디자인시스템플랫폼팀은 코어(Core, 토큰/아이콘 과 같은 디자인 리소스, 베이스 컴포넌트 등 공통 기반을 정의하는 계층), 클레이(Clay, 코어 토큰을 기반으로 Base 컴포넌트에 테마를 적용해 사용 가능한 컴포넌트 라이브러리를 제공하는 계층), 몰드(Mold, Clay/Base컴포넌트를 기반으로 각 도메인/비즈니스 요구사항에 맞는 패턴을 라이브러리화한 계층)와 같은 계층 구조를 기반으로, 모든 플랫폼에서 일관
AI AgentDesign SystemFrontendMobileRAG
우아한 형제들
2026-04-17 · 3개월 전
하네스 엔지니어링(harness engineering)으로 팀 맞춤형 AI 환경 구축하기
개요 최근 팀에서 AI 코딩 도구를 활용하는 빈도가 늘어나면서, AI가 프로젝트의 고유한 맥락(context)과 컨벤션을 인지하지 못해 같은 설명을 매번 반복해야 하는 비효율을 자주 겪었습니다. 예를 들어 “user 조회 React Query 훅 만들어줘”라고 요청하면, 규칙을 모르는 AI는 공식 문서에 나올 법한 기초적인 형태로 코드를 짜줍니다. 결국 원하는 코드를 얻기 위해 매번 이런 설명을 덧붙여야 했습니다. 이 […] The post 하
AI/MLBackendDevOpsReactTools
우아한 형제들
2026-04-03 · 4개월 전
5년 동안 못 푼 배민 다국어 숙제, AI와 함께 한 달 만에 끝내기
들어가며 한국을 찾는 외국인이 연간 약 2천만 명을 넘어선 지금, 배민 앱은 이들을 위해 준비되어 있었을까? 메뉴를 주문하려면 우선 가게 이름과 메뉴명을 읽을 수 있어야 합니다. 하지만 한국어만 제공되는 배민 앱에서 외국인이 경험하는 첫 번째 장벽이 바로 여기 있었습니다. 배민은 이 문제를 알고 있었고, 5년 전부터 해결하려 해왔습니다. 그리고 매년 멈췄습니다. 2026년 1월, 우리는 다시 […] The post 5년 동안 못 푼 배민 다국어
AI/MLBackendFrontendTools
우아한 형제들
2026-03-24 · 4개월 전
pnpm 모노레포에서 React 19 마이그레이션하기: 숨겨진 호이스팅 레이어가 만든 타입 충돌 트러블슈팅
배경: React 19 마이그레이션과 pnpm Catalogs pnpm workspace 기반의 모노레포 환경을 구축하여 프론트엔드 애플리케이션을 운영하고 있습니다. 기존에는 모노레포 내 여러 워크스페이스(앱)의 라이브러리 파편화를 막기 위해, 모든 의존성을 최상단(root)에서 일괄 관리해 왔습니다. 이에 따라 모든 앱이 동일하게 React 18 버전을 사용하고 있었으나, 최근 React 19로의 마이그레이션을 계획하게 되었습니다. 하지만 규
FrontendTestingTools
우아한 형제들
2026-03-20 · 4개월 전
별점 뒤에 숨겨진 리뷰의 온도, LLM으로 한 끗 차이가 다른 추천 만들기
추천프로덕트팀은 데이터 기반의 추천 알고리즘과 정교한 탐색 설계를 통해 사용자가 고민 없이 최적의 맛집을 발견하도록 돕는 조직입니다. 여기에 LLM과 다양한 AI 모델을 활용해 실질적인 서비스 문제를 해결하는 AI프로덕트팀이 긴밀하게 호흡을 맞췄습니다. 이번에 소개할 내용은 위 두 팀이 협업하여 고객의 맛집 탐색 고민을 성공적으로 덜어낸 프로젝트에 대한 이야기입니다. 서비스 내에 가득한 별점 5점 리뷰들 사이에서 진짜 […] The post 별
AI/MLData AnalysisLLMRecommendation
우아한 형제들
2026-03-17 · 4개월 전
흩어져 있는 AI 자산, ‘MCP stdio’로 헤쳐모여!
그 프롬프트… 어딨더라? 우리는 여러 사람이 각자의 장비로 여러 개의 서비스와 저장소를 관리하고, 또한 여러 개의 도구를 사용합니다. 모두가 다른 환경에서 각자 작업하면서도, 일관된 방식으로 일을 하거나 결과물을 만드는 것은 아주 중요한 만큼 우리에게 익숙한 과정입니다. AI 자산이란? 여기서 자산이란 영어 단어 assets를 번역한 표현입니다. 일반적으로 쓰이는 용어는 아니나 이 문서에서는 AI 도구를 활용하기 위해 […] The post 흩
AI/MLDevOpsTools
우아한 형제들
2026-03-13 · 4개월 전
AI로 바뀐 건 업무가 아니라 사람이었습니다
시작은 옆자리 동료의 한숨이었습니다 "이번 주말도 반납해야 할 것 같아요." PM으로 일하는 동료는 일요일 밤이면 미리 출근을 했습니다. 평일에 일이 너무 많아서 불안했거든요. 특히 회의록 정리에 시간을 많이 뺏겼습니다. 회의가 끝나면 녹음 파일을 돌려보고, 내용을 정리하고, 요약해서 공유해야 하는데, 그 과정에만 30분씩 걸렸습니다. 하루에 회의가 서너 개면 정리만 하다 하루가 갑니다. 정작 중요한 기획 업무는 […] The post AI로
AI/MLCultureTools
우아한 형제들
2026-03-10 · 4개월 전
RAG, 들어는 봤는데… 내 서비스엔 어떻게 쓰지?
개요 RAG(Retrieval-Augmented Generation, 검색 증강 생성)은 LLM이 학습하지 못한 정보를 외부에서 검색하여 활용할 수 있게 하는 기술입니다. 이 글에서는 RAG이 왜 필요한지부터, 교육 운영 시스템에 실제로 적용하며 겪은 시행착오(MCP 활용 → RAG 서버 직접 구현)와 그 과정에서 정리한 6단계 구현 가이드(필요성 평가 → 요구사항 분석 → 프레임워크 결정 → 색인 → 생성 → 평가)를 다룹니다. […] The
AI/MLBackendData EngineeringPythonRAG
우아한 형제들
2026-02-03 · 6개월 전
장애 대응의 성패를 가르는 First Action: 우아한형제들의 장애 관리 라이프사이클
First Action에 따라 달라지는 장애 영향 우아한형제들의 2025년 장애를 돌아보면 인지는 비교적 빠른 편이었습니다. 그러나, 장애로 고객 경험의 악영향이 오래 이어진 사례들이 적지 않았습니다. 장애 대응 과정을 하나씩 다시 들여다보면 차이는 대부분 인지 이후 가장 먼저 어떤 조치를 취했는지, 즉 First Action(초동 조치)에서 시작됐습니다. 실제 내부적으로 약 70여 건 이상의 장애 사례를 분석한 결과, 첫 […] The pos
DevOpsMonitoringSecurity
우아한 형제들
2025-12-26 · 7개월 전
끊김 없는 사용 경험을 위하여 : 카카오톡 선물함 속 교환권을 배달의민족 주문으로 연결한 여정
배민선물하기팀은 선물하는 이의 마음과 받는 이의 즐거움을 잇는 ‘배민선물하기’ 서비스를 담당하며, 배달의민족(이하 배민) 앱 내 상품권 발행부터 외부 채널과의 유통망 연동을 관리하고 있습니다. 이번에 소개할 프로젝트는 카카오톡에서 선물 받은 브랜드 교환권을 배민 앱에 직접 등록해 결제에 사용할 수 있도록 구현한 ‘외부 교환권 연동 서비스’입니다. 카카오톡에서 선물받은 요거트아이스크림의정석 교환권을 배민 앱에 등록하여 주문하는 고객 플로우 그동안
BackendMobileUX/UI
우아한 형제들
2025-12-23 · 7개월 전
WOOWACON 2025 미니게임 WOOWA POP!
지난 WOOWACON 2025 기술 콘퍼런스에서 미니게임을 운영했습니다. 우아팝(WOOWA POP!)이라는 이름의 수박 라이크(Suika-like) 게임이었습니다. 우아콘 세션 간에 플레이할 수 있고 미션이나 상위 랭킹을 달성하면 상품을 받을 수 있었습니다. 이렇게 쓰고 보니 별로 특별할 것 없는 프로젝트처럼 보입니다. 그런데 서문을 준비하며 개연성에 대해 찬찬히 고민해보니 아주 할 말이 없는 것도 아니더군요. 작은 우려에서 시작된 우아팝 개발
BackendCultureFrontend
우아한 형제들
2025-12-19 · 7개월 전
Delivering the Future: 글로벌 해커톤 2025, 준비부터 운영까지
들어가며 딜리버리히어로는 우아한형제들을 포함해 전 세계 70여 개국에서 다양한 브랜드를 운영하고 있습니다. 국가와 시장은 서로 다르지만 ‘더 나은 고객 경험’이라는 공통된 미션을 위해 모두 각자의 자리에서 기술로 다양한 도전을 해오고 있습니다. 이런 도전들을 더 단단하게 연결하기 위한 자리로, 올해 8월 글로벌 해커톤 2025가 진행되었습니다. 딜리버리히어로 본사가 위치한 독일 베를린을 베이스캠프로, 7개 엔티티, 60개 팀, 약 […] The
AI/MLCultureTools
우아한 형제들
2025-12-16 · 7개월 전
배달의민족 주문접수 채널에 Flutter를 도입하며 고민한 것
들어가며 배달의민족 주문접수 채널은 파트너의 주문 관리를 돕기 위해 매일 수백만 건의 주문을 실시간으로 처리하며, 다양한 디바이스를 지원하고 있습니다. 점차 다양해지는 디바이스 생태계에 대응하고자, 신규 제품에 Flutter + Clean Architecture를 선택했고, 나아가 비즈니스 요구사항에 더 빠르게 대응하기 위해 웹뷰 기반 컨테이너 앱(App Shell)으로 전환까지 진행 중입니다. 이 글에서는 Flutter 도입 과정과 아키텍처
ArchitectureFrontendMobileTools
우아한 형제들
2025-12-11 · 7개월 전
“함께 구매하면 좋은 상품” 추천 모델 고도화
배달의민족에서는 음식 배달뿐만 아니라 장보기도 당일 배송이 가능하다는 사실, 알고 계셨나요? 배민의 장보기·쇼핑 서비스는 배민B마트를 비롯해 마트, 편의점, 꽃, 전자제품 등 다양한 셀러가 입점해 있어 다양한 물건을 빠르게 받아보실 수 있는데요. 고객이 서비스에 진입한 순간부터 구매를 완료하는 여정까지 최적의 상품을 발견할 수 있도록 개인화 추천, 함께 본 상품 추천, 실시간 트렌드 랭킹, 장바구니 추천, 결제 […] The post “함께 구
AI/MLData AnalysisRecommendation
우아한 형제들
2025-12-10 · 7개월 전
우리는 코드처럼 문화도 리팩토링한다
팀 소개 커머스웹프론트개발팀(이하 “커머프팀”)은 배달의민족의 모든 커머스 서비스와 플랫폼은 물론, 백오피스부터 뒷단의 물류시스템에 이르기까지 웹 클라이언트 영역을 담당하는 거대한 규모의 팀입니다. 각기 다른 서비스를 담당하던 팀이 모여 하나의 큰 팀을 이루었고, 배달의민족이 꿈꾸는 커머스의 새로운 챕터를 열기 위한 힘찬 발걸음을 내디뎠습니다. 팀의 키를 잡은 초보 팀장은 얼마 못 가 혼자서는 이 거대한 조직의 복잡도를 감당해 […] The p
BackendCultureFrontend
우아한 형제들
2025-12-05 · 8개월 전
잃어버린 접근성을 찾아서
개발한 서비스의 접근성을 직접 확인해 보신 적 있나요? 바쁜 일정 속에 각종 요구사항을 반영하다 보면, 접근성은 흔히 ‘언젠가 챙겨야 할 착한 일’ 정도로 치부되곤 합니다. 부끄럽지만 저희도 마찬가지였습니다. 그러나 접근성을 소홀히 하면 실제 사용 과정에서 예상보다 큰 불편이 생길 수 있습니다. 가령 상품을 구매하고자 화면을 수백 번 터치해야 한다면, 과연 그 서비스를 정상적인 서비스라고 부를 […] The post 잃어버린 접근성을 찾아서 f
FrontendTestingUX/UI