도메인 지식을 LLM에게 어떻게 먹일 것인가. 이 질문에 대해 한 달간 세 가지 시도를 했고, 두 번 갈아엎었습니다. 이 글은 LLM Wiki를 RAG와 혼합해, 문서가 늘어도 적은 비용으로 질 좋은 컨텍스트를 제공하기까지 과정에서 겪은 시행착오들입니다. 들어가며 안녕하세요. 딜리버리프…
1. 서론 안녕하세요. 컬리 데이터서비스개발팀의 ML Engineer 윤준호입니다. 분명 ‘배송 완료’ 알림을 받았는데 문 앞이 텅 비어있거나, 다른 곳으로 잘못 배송되어 당황했던 경험이 한 번쯤 있으신가요? 컬리의 배송은 ‘정확성’이 곧 고객 경험과 비용으로 직결됩니다. 잘못된 주소지…
화요일 아침, 헬스장. 벤치프레스 첫 세트를 쉬는 동안, 어제의 과제 현황과 오늘 챙길 일이 정리된 브리핑 한 장을 읽습니다. 오늘 예정된 중요한 회의 준비를 클로드 코드의 Remote Control(원격으로 AI 세션에 접속해 대화하는 기능)로 던져놓고 다음 세트에 들어갑니다. 세트를…
1편에서는 개발자의 역할이 오케스트레이터로 옮겨가는 이유, AI의 5가지 실패 패턴, 그리고 읽기:쓰기 = 10:1 인사이트를 다뤘습니다. 2편에서는 이 원리를 실제 업무에 적용하는 구체적인 실행 프로세스 — 지식 축적 시스템, Task DAG, Branch Hunt, Ralph Loo…
지난 3월 1달 간, AI 토큰 사용 전사 1위가 되었습니다. 지난 53일 동안 AI와 148,000번 넘게 대화했습니다. 그 과정에서 하나 깨달은 게 있는데요. 생산성 차이는 AI를 ‘많이’ 쓰는 데서 오는 게 아니라, AI가 ‘어떻게’ 일하게 하느냐에서 온다는 것이었습니다. 이 글은…
들어가며 안녕하세요. SCM프로덕트개발의 이창섭입니다. 2026년 컬리의 첫 번째 기술 블로그를 제가 작성하게 되는군요. 모두 새해 복 많이 받으세요. 2025년 한 해는 컬리에게도, SCM프로덕트에게도 많은 변화가 있었던 한 해였습니다. 기존의 컬리는 1P(First-Party, 직매…
컬리의 입고 시스템이 외부 인입 데이터를 안전하게 동기화하는 방법 아웃박스 패턴과 재시도 토픽으로 외부 채널 입고 정보를 안전하게 동기화하기 들어가며 안녕하세요. SCM프로덕트개발의 이창섭입니다. 2026년 컬리의 첫 번째 기술 블로그를 제가 작성하게 되는군요. 모두 새해 복 많이 받으…
OMS에서 Claude AI를 활용하여 변화된 업무 방식 PM 1명과 엔지니어 3명이 12개 MSA를 운영하는 OMS팀이 Claude AI를 도입하여 16명 규모의 조직처럼 일하게 된 과정을 소개합니다. - 💬 들어가며 - 📌 AI 도입 전: OMS 팀은 어떻게 일했나? - 📌 AI 도…
💬 들어가며 안녕하세요. OMS팀 이준환입니다. 현재 OMS팀에서는 Claude Code(v2.0.72, Opus 4.5)를 활용하여 업무를 진행하고 있습니다. 이번 글에서는 Claude AI를 도입하여 OMS팀이 어떻게 협업하며 업무 방식을 변화시켰는지 소개하려고 합니다. 본 글은 지…
디자인 컴포넌트 라이브러리를 ‘실제 사용 방식’에 맞게 다시 설계한 이야기 디자인 컴포넌트 라이브러리 빌드 및 구조 개선기 - 들어가며 - 🧩 무엇이 문제였을까 - 🌱 Kitchen은 어떻게 시작되었을까 - 🔄 상황은 어떻게 달라졌을까 - 🔍 원인은 어디에 있었을까 - 🧭 구조를 다시…
들어가며 안녕하세요. 프로덕트웹개발2팀의 권가은입니다. 🙂 디자인 시스템은 한 번 만들고 끝나는 것이 아니라, 실제 서비스 안에서 사용되며 지속적으로 변화해야 합니다. 시간이 지나면, 이런 발전 과정에서 설계 당시의 구조를 그대로 유지하기가 점점 어려워집니다. 사용 방식이 달라질수록 기…
Claude Code를 활용한 예측 가능한 바이브 코딩 전략 에이전트 주도 개발에서 발생하는 문제를 해결하고, 컨텍스트를 정밀하게 관리하는 방법 - 바이브 코딩이란? - Claude Code 5분 만에 시작하기 - 1. 바이브 코딩의 여정: 문제와 해결의 반복 - 2. 왜 이런 문제가…
작성 환경: Claude Code 2.0.67, Claude Opus 4.5 (claude-opus-4-5-20251101) Claude Code와 LLM은 빠르게 발전하고 있어 일부 성능, 기능, UI가 변경될 수 있습니다. 최신 정보는 공식 문서를 참고하세요. 바이브 코딩이란? 바이…
개발자의 시간을 벌어주는 두 가지 도구: 잘 쓴 테크 스펙, 그리고 AI 컬리 프로덕트 웹개발 팀의 테크 스펙 정착기와 AI 자동화 시도 - 1. 들어가며: 문서, 꼭 써야 하나요? - 2. 테크 스펙이란 무엇인가요? - 3. 무엇이 좋아졌나요? - 4. 실전 사례: 상품 쿠폰 프로젝트…
안녕하세요. 컬리 프로덕트 웹개발 한승희입니다. 오늘은 컬리 상품 코어 프론트엔드 팀이 2023년 도입해 이제는 개발 문화의 핵심으로 자리 잡은 ‘테크 스펙(Tech Spec)‘과 더불어, 최근 시도 중인 AI 자동화에 대해 이야기 해보려 합니다. 1. 들어가며: 문서, 꼭 써야 하나요…
들어가며 안녕하세요, 컬리 SCM 프로덕트 개발팀의 박지환입니다. 이번 글에서는 레거시 기반의 원천 데이터를 어떻게 이벤트 기반 구조로 전환했는지, 그리고 스파이크성 트래픽을 안정적으로 집계하기 위해 Kafka Streams의 윈도우(Window) 를 어떻게 도입했는지에 대해 이야기해보…
Kafka Streams 윈도우 도입기 재고 정산 처리에 Kafka Streams window를 도입하며 겪은 이야기 들어가며 안녕하세요, 컬리 SCM 프로덕트 개발팀의 박지환입니다. 이번 글에서는 레거시 기반의 원천 데이터를 어떻게 이벤트 기반 구조로 전환했는지, 그리고 스파이크성 트…
“FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory” 들어가며 안녕하세요. 컬리 프로덕트웹개발 팀의 박성욱입니다. 번들 크기 81% 감소, 빌드 시간 48% 감소, 개발 서버 시작 속도 46…
빌드가 터졌다: 5년 된 CMS 프로젝트의 Webpack4 → Vite 전환 CMS의 개발환경 변화 여정을 공유합니다. - 들어가며 - 0. 배포는 됐는데 화면이 안 나와요 - 1. Webpack4, 5년간 무슨 일이 있었나 - 2. OOM: 더 이상 미룰 수 없는 신호 - 3. 왜 V…
안녕하세요. 컬리 데이터서비스개발팀의 Data Scientist 명우민입니다. 오늘 뭘 살지 고민하다가, 생각보다 시간이 훌쩍 지나버린 경험이 있으신가요? 최근 커머스 플랫폼에서는 방대한 상품 선택지로 인해 이와 같은 정보 과부하가 쉽게 발생합니다. 검색만으로는 탐색 비용이 높고, 인기…
개인화 추천 시스템 1편 - 유저의 행동은 “언어”일까? : Collaborative Embedding 구축기 (feat. Knowledge Distillation) 팀 내에서 범용 개인화 추천 시스템을 구축하며 온라인 A/B 테스트와 CRM 캠페인 테스트에서 비교적 좋은 성과를 확인해…
개요 - 퍼플 박스 배송 완료 사진의 수기 검수 비용을 93% 절감 - 퍼플 박스와 종이봉투 배송 유형 추적 자동화 - 데이터 엔진을 활용해 적은 라벨링 비용으로 객체 탐지 학습 데이터 확보 - 라벨 개선 및 재학습 주기를 통해 목표 모델 성능 달성 - [Update] 비닐 상태 배송…
배송 완료 사진 속 객체 탐지를 통한 수기 검수 비용 줄이기 팀 내에서 배송 완료 사진 속 객체 탐지(퍼플 박스, 종이봉투)를 통해 수기 검수 비용을 감소 시킨 내용을 다루고자합니다. 개요 - 퍼플 박스 배송 완료 사진의 수기 검수 비용을 93% 절감 - 퍼플 박스와 종이봉투 배송 유형…
들어가며 안녕하세요. 컬리 핀테크그룹 김재민입니다. 처음에는 컬리 내부 스터디에서 ‘핀테크그룹의 BFF’를 소개해달라는 요청이 있어, 공부도 할 겸 발표를 자처하며 문서를 작성하기 시작했습니다. 작성하다 보니 GraphQL 기반 BFF를 도입·운영하며 얻은 인사이트가 컬리 구성원 이외에…
nginx 설정 없이 우아하게 서비스 점검하기 (下) 리뉴얼된 AccessBlock 개요 지난 편에는 저희가 이 AccessBlock 을 도입하게 된 계기와 사용하는 도중 어떤 니즈가 있었고 어떤 아쉬움으로 인해 계속해서 점진적으로 시스템을 어떻게 바꿔왔는지를 말씀드렸습니다. 이어서 이…
개요 지난 편에는 저희가 이 AccessBlock 을 도입하게 된 계기와 사용하는 도중 어떤 니즈가 있었고 어떤 아쉬움으로 인해 계속해서 점진적으로 시스템을 어떻게 바꿔왔는지를 말씀드렸습니다. 이어서 이번 리뉴얼은, 도출한 내용들을 최종 정리하여 완전체로 거듭나기 위해 공을 좀 들여 보…
도입 계기 여러분! 적치 작업을 멈춰주세요!!!📢📢 때는 2022년 7월, 제가 컬리의 입고프로덕트개발팀에 처음 합류한 어느 날이었습니다. 얼마 전까진 이방인이었다가 이제 막 컬리의 일원이 되어 낯선 환경에 한창 어리둥절하고 있을 때, 슬랙 한 켠에서 알림이 계속해서 울립니다. “📢 여…
nginx 설정 없이 우아하게 서비스 점검하기 (上) AccessBlock, 그 시작과 진화의 여정 도입 계기 여러분! 적치 작업을 멈춰주세요!!!📢📢 때는 2022년 7월, 제가 컬리의 입고프로덕트개발팀에 처음 합류한 어느 날이었습니다. 얼마 전까진 이방인이었다가 이제 막 컬리의 일원…
우리 팀에도 Jarvis 가 생겼다 – 생성형 AI 로 만든 에러 분석가 이야기 팀 내에서 생성형 AI 를 활용한 사례를 공유합니다. - 왜 에러 로그는 항상 늦게 처리되는가? - 에러 로그 분석 자동화, 우리는 이렇게 구성했습니다. - 다음 목표는? 지나간 해결 방법 학습과 미지의 영…
왜 에러 로그는 항상 늦게 처리되는가? 안녕하세요. 컬리의 배송 시스템을 맡고 있는 딜리버리프로덕트의 김성준입니다. 개발자인 우리는 하루하루 개발을 하다 보면 수많은 에러 로그와 마주치게 됩니다. 이 로그들은 마치 복잡한 숲 속에서 길을 안내하는 작은 이정표 같습니다. 그러나 문제는,…
딜리버리 암호화 모듈 개발기 딜리버리에서 사용하고있는 암호화모듈을 개발한 경험을 공유합니다. 들어가며 안녕하세요. 딜리버리플랫폼개발팀 강준영입니다. 2023년 9월 새로운 배송시스템을 오픈했었는데요, 이때 사용했던 암호화 모듈을 개발했던 경험을 공유드리고자 합니다. 왜 암호화 모듈을 직…
들어가며 안녕하세요. 딜리버리플랫폼개발팀 강준영입니다. 2023년 9월 새로운 배송시스템을 오픈했었는데요, 이때 사용했던 암호화 모듈을 개발했던 경험을 공유드리고자 합니다. 왜 암호화 모듈을 직접 개발했을까요? 당시, 다음과 같이 암호화 모듈에 바라는 점들을 수집했었습니다. - 암/복호…
OMS의 최적화된 마이크로서비스 아키텍처 디자인 판매몰과 컬리 풀필먼트의 게이트웨이의 역할로써 OMS의 아키텍처 디자인의 변화 과정을 소개합니다. - 들어가며 - 판매처 목록에 컬리몰도 포함이 되어있네? - 데이터 다양성에 대한 전략적 접근: 최소 동기화 & 재가공 서빙 - OMS 마이…
들어가며 안녕하세요. OMS팀 이준환입니다. OMS 시스템은 각 판매처의 결제완료 주문을 생산 및 배송할 수 있도록 컬리 풀필먼트가 이해할수 있는 주문 정보로 변환하는 역할을 하고 있습니다. 일종의 주문 인터프리터의 역할이라고 생각하시면 좋을 것 같습니다. 이 외에도 OMS는 각 판매처…
딜리버리 프로덕트 개발팀의 개발 문화 - 주니어 디버깅 스터디 주니어 개발자의 성장을 목표로 진행한 에러 디버깅 스터디 과정을 소개합니다. - 들어가며 - 스터디 구성 (Overview) - [이론 스터디] 1. 에러 알림 대응 프로세스 - [이론 스터디] 2. ‘디버깅 마인드셋: 디버…
들어가며 안녕하세요. 딜리버리 프로덕트 개발팀에서 일하고 있는 한경훈입니다. 개발자라면 프로덕션에 배포 후 예상치 못한 에러가 발생하거나, 한밤중에 긴급한 장애 알람을 받는 상황을 종종 겪습니다. 이러한 에러는 때로는 서비스의 안정성과 직결되는 중요한 문제가 되기도 합니다. 이러한 상황…
Kafka Connect로 DB 데이터 쉽게 연동하기 Kafka Connect와 JDBC 커넥터를 이용해 DB 데이터를 쉽게 Kafka로 전송하는 방법과 발생 가능한 문제를 해결하는 방법을 공유합니다. 안녕하세요. 컬리 데이터서비스개발팀 김소라입니다. 현재 컬리는 다양한 서비스와 시스템…
안녕하세요. 컬리 데이터서비스개발팀 김소라입니다. 현재 컬리는 다양한 서비스와 시스템 운영을 위해 여러 종류의 데이터베이스를 사용하고 있습니다. 하지만 각 데이터베이스의 구조와 처리 방식이 달라 관리가 복잡하고 활용하기 어렵기 때문에, 데이터를 하나의 분석 플랫폼으로 통합하는 다양한 파…
물류의 물짜도 모르던 OMS PM의 OMS 구축기 - 1. 현재를 모르면 미래도 없다: As-Is 먼저 명확히 파악하기 - 2. 데이터를 파악하며 도메인 지식을 넓히다: 거미줄처럼 얽혀있는 데이터들 - 3. 사용자(고객) 인터뷰 중 깨달음을 얻다: SOMS는 생산할 수 있는 주문의 “양…
안녕하세요. 컬리의 OMS (Order Management System)의 Product Manager로 일하고 있는 염태환입니다. 2022년 1월 OMS라는 팀이 컬리에서 처음으로 생기고, 제가 해당 도메인의 첫 PM 역할을 하면서 해당 시스템이 과거 어떤 모습으로 존재했고 현재까지…
주소정제 서비스 내재화 - 5화 ( 어질어질한 변화구들 ) 복합건물 (아파트, 다세대 주택) 주소정제 정복 - 복합건물이 단일건물보다 어려운 이유 - 복합건물의 경우 반드시 정확한 상세'동' 을 찾아야할까? - 복합건물 정제 결과에 '정확도 레벨'의 개념을 도입 - 복합건물 주소정제의…
주소정제 서비스 내재화 - 2화 ( 그럴싸한 계획 ) 손 안대고 코풀기 전략의 한계 앞서 1화에서는 도로명 주소의 특징과 컬리에서 주소정제가 어떤 의미를 갖는지에 대한 설명이었습니다. 그리고 건물은 단독건물과 복합건물로 나누어 생각해볼 수 있었습니다. 상세주소를 참고해야 정확한 건물정보…
주소정제 서비스 내재화 - 3화 ( 노가다의 달달한 열매 ) 전국 약 1080만개의 건물DB 완성 - 건물 DB 만들기 (전국의 모든 건물의 데이터 적재) - 세종특별자치시 건물 데이터는 완벽했나? - 하루에도 수십개의 건물이 생기고 철거되기도 할 텐데, 건물 DB 최신화 방법은? -…
주소정제 서비스 내재화 - 마지막 화 ( 엔드 게임 ) 유종의 미 그리고 회고 최초 문제정의 후 약 10개월 간의 여정끝에 단독건물, 복합건물 모두 안전하게 정제 가능했고 외부업체 호출량은 1%도 되지않는 수준으로 개선이 되었습니다. 거의 다 왔지만 외부업체 api를 호출해야만 하는 명…
주소정제 서비스 내재화 - 1화 ( 줄줄 새는 돈 ) 문제인식과 컬리에서의 주소 정제의 목적 - 컬리에서의 주소정제는 왜 필요해? - 최초 문제인식 - 현재의 대한민국의 주소 체계 - 그럼 주소정제의 목적을 주소지의 정확한 위치정보를 얻는 과정이라고 정의할 수 있을까? - 도로명 주소에…
주소정제 서비스 내재화 - 4화 ( 슬픈예감 ) 단독건물 주소정제 정복 (feat.전라북도와 부천시의 습격) - 흥미로운 통계 - 주소정제 2.0 설계 - AddressSeachParam 생성 과정 - 휴먼 에러를 보상하기 위한 로직이 몇개 보이는데, 그럼에도 모든 케이스를 커버하긴 힘…
최초 문제정의 후 약 10개월 간의 여정끝에 단독건물, 복합건물 모두 안전하게 정제 가능했고 외부업체 호출량은 1%도 되지않는 수준으로 개선이 되었습니다. 거의 다 왔지만 외부업체 api를 호출해야만 하는 명확한 상황이 아직 2가지가 남아있었습니다. - 지번 주소 요청 처리 - LOW…
안녕하세요. OMS 팀 이준환입니다. OMS 팀은 서비스의 고도화를 위해 23년 1월부터 딜리버리 팀이 관리하던 TAM (Transportation Area Management) 서비스를 인계받게 되었습니다. TAM 서비스에는 컬리의 배송사 정책과 함께 주문 이행을 위한 필수 데이터가…
앞서 4화에서 단독건물을 어떻게 처리했는지에 대한 내용을 설명했습니다. 중간에 전라북도특별자치도, 부천시의 대규모 변경이 있었지만 미리 잘 대응을 한 결과 무탈하게 지나갔던 사건도 소개했습니다. 단독건물을 대부분 커버했음에도 여전히 40% 정도의 트래픽은 외부업체 api를 호출할 수 밖…
3화에서는 주소정제 1.0의 실패를 인정 후 전국의 건물 약 1080만개를 DB화 과정에 대한 설명이었습니다. 노가다의 결과로 전국의 건물 DB가 완성이 되었습니다. 👏👏 자 이제 재료는 준비되었고 남은건 잘 설계하고 안전한 랜딩 방법을 계획한 후 개발만 잘하면 되겠지요. 다시 1화의…
2화에서는 손안대고 코풀기 설계였던 주소정제 1.0 개발 과정과 발생한 장애상황에 대한 내용이었습니다. 일단 주소정제 1.0 에서 추가적인 장애가 발생하지 않았기에 롤백없이 운영하면서 새로운 방법을 찾는 것으로 팀 내 결정이 되었습니다. 3화는 23년 8월 ~ 9월 중순까지 약 1.5개…
앞서 1화에서는 도로명 주소의 특징과 컬리에서 주소정제가 어떤 의미를 갖는지에 대한 설명이었습니다. 그리고 건물은 단독건물과 복합건물로 나누어 생각해볼 수 있었습니다. 상세주소를 참고해야 정확한 건물정보, 위경도를 알수 있는 복합건물은 일단은 제외하고, 기본주소의 건물번호까지의 정보만으…
딜리버리 프로덕트 개발팀의 개발문화 - 로그 & 알람편 딜리버리 프로덕트 개발팀에서 안정적인 서비스 제공을 위한 고군분투기 인사! 안녕하세요 컬리 새벽배송의 핵심!! 딜리버리 프로덕트에서 열쒸미 프로덕트를 만들고 있는 김태훈입니다. 새벽배송, 컬리나우, 택배 등 라스트마일의 모든 것을…
인사! 안녕하세요 컬리 새벽배송의 핵심!! 딜리버리 프로덕트에서 열쒸미 프로덕트를 만들고 있는 김태훈입니다. 새벽배송, 컬리나우, 택배 등 라스트마일의 모든 것을 경험하고 싶은 분은 언제든 환영입니다! 앞서 말씀드린 대로, 저희 팀은 고객에게 다양한 스타일의 라스트마일 서비스를 제공하기…
들어가며 안녕하세요. 컬리 핀테크개발팀 이경훈입니다. 2024년 컬리에 합류하여 지류 상품권 프로젝트, AML 프로젝트를 거치며 여러 종류의 배치 애플리케이션을 개발했습니다. spring-batch를 이용해 배치 애플리케이션을 개발한 경험은 처음이라 시행착오를 겪으며 재미있게 만들었습니…
MySqlPagingQueryProvider 살펴보기 JdbcPagingItemReader와 MySqlPagingQueryProvider를 사용할 때 주의사항 - 들어가며 - spring-batch 의 기본 구조와 Chunk 단위 처리 - 첫 번째 이슈 : MySqlPagingQuery…
Spring Boot 버전업 중 알게된 Java 버전별 캡슐화 정책 강화 자바 모듈 시스템의 변화로 인한 직렬화 문제를 분석하면서 알게된 내용을 공유합니다. 1. 들어가며 안녕하세요. 딜리버리 프로덕트에서 간선 서비스를 개발하고 있는 고산하입니다. 지난 상반기, 컬리에서는 전사적으로 A…
1. 들어가며 안녕하세요. 딜리버리 프로덕트에서 간선 서비스를 개발하고 있는 고산하입니다. 지난 상반기, 컬리에서는 전사적으로 AWS MSK의 버전업이 진행되었는데요. 이에 따라 Kafka 클라이언트와의 호환성을 유지하기 위해서 Spring Boot의 버전업이 필요하게 되었습니다. 이번…
분산 시스템 환경에서 Kafka Consumer 오프셋 이동하기 Spring Kafka 활용한 오프셋 이동 및 메시지 재처리 방법 들어가며 안녕하세요. 컬리 주문플랫폼개발 팀의 이보람입니다. Kafka Consumer를 운영하다 보면 간혹 예기치 못한 문제로 인해, 또는 의도적으로 메시…
들어가며 안녕하세요. 컬리 주문플랫폼개발 팀의 이보람입니다. Kafka Consumer를 운영하다 보면 간혹 예기치 못한 문제로 인해, 또는 의도적으로 메시지를 재처리해야 할 때가 있습니다. 이 글에서는 Spring Kafka를 활용하여 오프셋을 이동해 메시지를 재처리하는 방법에 대해…
컬리의 새로운 배송 시스템 구축 과정과 우리가 배운점 컬리의 새로운 배송 시스템 구축 과정과 프로젝트에서 얻은 교훈을 소개합니다. - 들어가며 - 새로운 배송 시스템 설계 - 우리가 일한 방식 - 점진적 시스템 전환을 위한 아키텍처 설계 - 점진적 시스템 전환을 위한 계획 - 3주간의…
들어가며 새로운 배송 시스템 구축 배경 안녕하세요. 컬리 딜리버리프로덕트개발팀에서 일하고 있는 한경훈입니다. 컬리는 샛별배송 서비스를 통해 업계에 혁신적인 변화를 일으키며 고객들에게 높은 가치를 제공해왔습니다. 샛별배송은 밤 11시 이전에 주문된 상품을 다음날 아침 7시 전까지 신속하게…
엑셀 업로드 중 발생한 Zip Bomb 에러 파헤치기! 🥊 Zip Bomb 에러 소개 및 해결 방법 공유 Zip Bomb 문제 해결 여정에 오신 것을 환영합니다! 안녕하세요. 딜리버리프로덕트개발팀 최지수입니다. 제가 유지 보수하는 시스템에는 고객사가 엑셀 파일을 업로드하여 배송 요청을…
Zip Bomb 문제 해결 여정에 오신 것을 환영합니다! 안녕하세요. 딜리버리프로덕트개발팀 최지수입니다. 제가 유지 보수하는 시스템에는 고객사가 엑셀 파일을 업로드하여 배송 요청을 할 수 있는 기능이 있습니다. 최근 이 기능에서 예상치 못한 에러가 발생했는데, 바로 “Zip Bomb”…
하이버네이트의 시간은 거꾸로 간다 스프링부트 버전을 업그레이드하는 과정에서 발견된 버그 해결기 사건의 발단 저희 딜리버리 프로덕트 개발팀은 AWS MSK 버전 업그레이드에 대응하기 위해 관리 중인 시스템들의 스프링부트 버전을 3.x대로 업데이트했습니다. 이미 다른 프로젝트에서 스프링부트…
사건의 발단 저희 딜리버리 프로덕트 개발팀은 AWS MSK 버전 업그레이드에 대응하기 위해 관리 중인 시스템들의 스프링부트 버전을 3.x대로 업데이트했습니다. 이미 다른 프로젝트에서 스프링부트 버전업을 경험한 데다, 팀원들이 겪었던 이슈들을 잘 정리한 문서 덕분에 큰 어려움 없이 작업을…
컬리의 Virtual 물류 센터 Picking 공정 시뮬레이션의 구축부터 활용까지 안녕하세요, 컬리 데이터서비스개발팀의 Data Scientist 박수형입니다. 최근 다양한 산업 분야에서 모델링 및 시뮬레이션(M&S) 기반의 디지털 트윈을 활용해 복잡한 비즈니스 문제를 효과적으로 해결하…
안녕하세요, 컬리 데이터서비스개발팀의 Data Scientist 박수형입니다. 최근 다양한 산업 분야에서 모델링 및 시뮬레이션(M&S) 기반의 디지털 트윈을 활용해 복잡한 비즈니스 문제를 효과적으로 해결하는 사례가 늘고 있습니다. 디지털 트윈의 근간이 되는 시뮬레이션 기술은 실제 시스템…
LLM Application 구축 도전기 (feat. 소중한 고객님들의 리뷰) - 1부 Prompt Engineering을 활용한 비정형 데이터 검수 실험 안녕하세요, 커머스 프로덕트 주문플랫폼개발 팀 소속 박재현입니다. 작년부터 Gen AI 기술이 주목을 받으며, 2024년에는 실제…
안녕하세요, 커머스 프로덕트 주문플랫폼개발 팀 소속 박재현입니다. 작년부터 Gen AI 기술이 주목을 받으며, 2024년에는 실제 운영 환경에서 LLM 서비스를 구성하려는 시도들이 많아졌습니다. 이런 시도들의 일환으로 컬리 커머스 프로덕트 팀에서도 다양한 실험을 진행했습니다. 그 중 한…
Vertex AI Search를 활용한 결과 없는 검색 개선하기 AI SaaS 도입으로 검색 경험을 개선한 사례 소개 안녕하세요. 컬리 데이터서비스개발팀의 Product Manager 권수영, ML Engineer 한수진입니다. 저희 팀은 컬리에 적합한 AI 기술 리서치와 서비스 도입을…
안녕하세요. 컬리 데이터서비스개발팀의 Product Manager 권수영, ML Engineer 한수진입니다. 저희 팀은 컬리에 적합한 AI 기술 리서치와 서비스 도입을 위한 다양한 프로젝트를 진행하고 있으며, 이번 글에서는 그 중 하나인 검색 기능 개선을 위한 Google Vertex…
안녕하십니까 컬리 데이터서비스개발팀 데이터 엔지니어 김영준입니다. 컬리에서는 수많은 데이터 파이프라인과 MLOps, BI (Business Intelligence) 등 다양한 분야에서 워크플로 관리 플랫폼인 Airflow를 사용하고 있습니다. 최근 그중 데이터 파이프라인에 사용하던 Ai…
🤷♀️ 데이터 있어요? 안녕하세요, 회원마케팅서비스 개발을 담당하고 있는 호선우입니다. 회원 데이터가 Master DB 에 INSERT 되었고 Slave DB 에서도 SELECT 하면 조회되는데, Master DB 의 다른 Session 으로 SELECT 하면 데이터가 조회되지 않는 이…
데이터가 있었는데요, 아니 없어요 COMMIT, MVCC 그리고 SET AUTOCOMMIT 🤷♀️ 데이터 있어요? 안녕하세요, 회원마케팅서비스 개발을 담당하고 있는 호선우입니다. 회원 데이터가 Master DB 에 INSERT 되었고 Slave DB 에서도 SELECT 하면 조회되는데,…
함께 구매하면 좋은 상품이에요! - 장바구니 추천 개발기 2부 보완재 추천 모델을 서빙하기 위한 아키텍처 소개 소개 안녕하세요. 컬리 데이터서비스개발팀에서 일하고 있는 백엔드 개발자 최재형, 김수지, 데이터 엔지니어 이상협, ML 엔지니어 구국원입니다. 이전 글에서는 장바구니 추천 모델…
소개 안녕하세요. 컬리 데이터서비스개발팀에서 일하고 있는 백엔드 개발자 최재형, 김수지, 데이터 엔지니어 이상협, ML 엔지니어 구국원입니다. 이전 글에서는 장바구니 추천 모델을 개발하는 과정에서 고민한 내용을 설명드렸습니다. 그리고 이러한 고민 끝에 만들어진 모델의 부가가치를 실제 컬…
함께 구매하면 좋은 상품이에요! - 장바구니 추천 개발기 1부 보완재 추천 모델을 적용하고 성과를 거둔 사례 소개 소개 안녕하세요. 컬리 데이터서비스개발팀에서 일하고 있는 머신러닝 엔지니어 구국원, 데이터 사이언티스트 박수형입니다. 저희 팀은 컬리의 다양한 영역에 머신러닝을 도입하여 여…
소개 안녕하세요. 컬리 데이터서비스개발팀에서 일하고 있는 머신러닝 엔지니어 구국원, 데이터 사이언티스트 박수형입니다. 저희 팀은 컬리의 다양한 영역에 머신러닝을 도입하여 여러 지표들을 개선하기 위한 시도를 지속하고 있습니다. 그중에서 추천은 컬리에서의 상품 탐색 및 구매 의사 결정을 보…
고객에게 뚜렷한 경험을: 컬리의 후기 이미지 처리 기술 안녕하세요. 데이터서비스개발팀 소속 Data Scientist 안은정입니다. 여러분들은 컬리에서 상품을 구매할 때 어떤 부분을 고려하시나요? 저는 상품을 구입하기 전에 구매 후기를 꼭 확인하는데요. 그렇게 후기를 보고 구매를 한 상…
안녕하세요. 데이터서비스개발팀 소속 Data Scientist 안은정입니다. 여러분들은 컬리에서 상품을 구매할 때 어떤 부분을 고려하시나요? 저는 상품을 구입하기 전에 구매 후기를 꼭 확인하는데요. 그렇게 후기를 보고 구매를 한 상품들은 잘 샀다는 느낌을 받은 적이 많습니다. 컬리 고객…
안녕하세요. 프로덕트 디자인팀 (이하 프디팀) 디자이너 임효연입니다. 오늘은 프디팀의 ‘퀵메뉴(Quick-Menu)’ 제작기에 대해 이야기해 보려고 합니다. 컬리의 퀵메뉴는 어떤 기능인가요? 컬리의 메인 배너 하단에 위치한 퀵메뉴는 컬리에서 제공하는 다양한 서비스, 이벤트 페이지 등의…
컬리가 상품을 고객에게 빠르게 전달하는 똑똑한 방법 최적화 기법을 활용한 배송 효율화 사례 소개 안녕하세요. 컬리 데이터서비스개발팀 구병주입니다. 컬리는 매일 다양하고 많은 상품들을 전국 각지에 배송하고 있습니다. 배송 차량이 상품을 싣고 고객 분들께 향하는 과정을 어떻게 하면 더 효율…
안녕하세요. 컬리 데이터서비스개발팀 구병주입니다. 컬리는 매일 다양하고 많은 상품들을 전국 각지에 배송하고 있습니다. 배송 차량이 상품을 싣고 고객 분들께 향하는 과정을 어떻게 하면 더 효율적으로 해낼 수 있을지 컬리는 항상 고민하고 있는데요. 이번 글에서는 최적화 기법을 활용하여 배송…
후기 서비스 AWS Opensearch 도입기 위기에서 기회를 만들어 낸 후기 서비스 이야기 들어가며 안녕하세요! 현재 후기 서비스를 개선하고 보살피고 있는 백엔드 개발자입니다. 우리 컬리에서는 좋은 품질의 고급 식재료와 밀키트, 와인 그리고 전통주와 더불어 다양한 뷰티 제품들을 고객들…
들어가며 안녕하세요! 현재 후기 서비스를 개선하고 보살피고 있는 백엔드 개발자입니다. 컬리의 후기 서비스 (좌) 후기 목록 (우) 우리 컬리에서는 좋은 품질의 고급 식재료와 밀키트, 와인 그리고 전통주와 더불어 다양한 뷰티 제품들을 고객들에게 선보이고 있습니다. 하지만, 좋은 상품들에…
BULK 처리 Write에 집중해서 개선해보기 애플리케이션, DB 모두 행복한 BULK 처리 BULK 처리 개선해보기 안녕하세요, 컬리 파트너서비스개발팀에서 백엔드 개발을 하고 있는 유형환입니다. 업무 중에 경험했던 BULK 처리 개선에 관해 공유해 보려 합니다. BULK처리는 일반적으…
BULK 처리 개선해보기 안녕하세요, 컬리 파트너서비스개발팀에서 백엔드 개발을 하고 있는 유형환입니다. 업무 중에 경험했던 BULK 처리 개선에 관해 공유해 보려 합니다. BULK처리는 일반적으로 Spring Batch와 많이 엮이지만 API, Consumer 등 여러 애플리케이션에서도…
컬리로그팀이 직접 고객을 만나고 리서치를 진행한 이야기: 컬리 푸드 페스타에서 프로덕트 조직의 엔지니어가 고객을 직접 만나고 인터뷰한 이유 | ✅ | 고객이 가지고 있는 진짜 문제를 찾고 해결하기 위해 프로덕트를 개발하는 팀이 직접 유저를 만나고 대화했습니다. 사무실 밖으로 나가서 우리…
| ✅ | 고객이 가지고 있는 진짜 문제를 찾고 해결하기 위해 프로덕트를 개발하는 팀이 직접 유저를 만나고 대화했습니다. 사무실 밖으로 나가서 우리는 무엇을 얻을 수 있었을까요? | 이 글은 컬리 프로덕트 조직의 컬리로그팀이 지난 7월에 개최되었던 컬리 푸드 페스타 행사에 참여하여 고객…