오늘의집 렌즈 - 텍스트를 넘어 이미지로 확장되는 검색 경험
이미지와 상품을 연결하는 오집렌즈의 첫 걸음
2025년 12월 2일Jaiden, Yuri

오집렌즈 서비스

▲ (왼쪽부터) 오집렌즈 서비스, 박스 수동 조절 기능, 유저 가이드


이 조명 어디 거예요?

오늘의집은 집들이, 노하우 등 다양한 라이프스타일 콘텐츠를 통해 유저가 자신의 취향을 발견하고, 그에 맞는 상품으로 집을 꾸밀 수 있도록 영감을 제공해 왔습니다. 이 과정에서 다양한 유저들의 의견을 꾸준히 살펴보고 있으며, 유저들로부터 가장 많은 요청을 받은 기능이 바로 ‘이미지를 기반으로 상품을 찾는 서비스’입니다.

▲ (왼쪽부터) 오늘의집 유저 보이스, 이미지 속 상품을 궁금해하는 유저 사례, 오집렌즈 검색 결과
▲ (왼쪽부터) 오늘의집 유저 보이스, 이미지 속 상품을 궁금해하는 유저 사례, 오집렌즈 검색 결과


오늘의집에는 다양한 스타일링샷과 감도 높은 인테리어 사진이 가득하기 때문에, 유저들은 다른 사람들의 집에 놓인 상품이 무엇인지 자연스럽게 궁금증을 갖게 됩니다. 이를 위해 오늘의집에서는 이미지 속 플러스 태그를 통해 상품을 확인할 수 있는 기능을 제공하고 있지만, 태그가 없는 상품이나 비슷한 상품을 찾아보고 싶다는 요청은 꾸준히 이어져 왔습니다.

최근 들어 강력한 이미지 인코더 백본 모델들이 등장하면서 이미지의 세밀한 특징을 보다 정확하게 이해하는 것이 가능해졌고, 내부에서도 ‘오집렌즈’에 대한 기대가 크게 높아졌습니다. 이러한 니즈를 바탕으로 초기 데모를 빠르게 구현해 확인해 보았고, 결과는 예상보다 훨씬 큰 호응을 얻었습니다. 😆 이렇게 초기 데모에서 충분한 가능성을 확인한 뒤, 본격적인 서비스 개발이 진행되었습니다.


오집렌즈 시스템 개발

오집렌즈는 3개월의 짧은 기간 동안 앱, 백엔드, ML, ML Platform, 디자인, DA, QA, 운영, UXR 등 다양한 오늘의집 팀원들이 참여하여 빠르게 만들어진 서비스입니다.

▲ (왼쪽부터) 오집렌즈 다이어그램, Figma 작업창, Mobile API
▲ (왼쪽부터) 오집렌즈 다이어그램, Figma 작업창, Mobile API


특히 개발을 마무리한 뒤 이어진 2주간의 짧은 QA 기간에는 총 76건의 이슈를 신속하게 해결했는데요. 그 결과 거래액은 5.24% 증가, 커머스 이익은 11.78% 상승하는 성과를 달성했습니다. 🚀 이는 오늘의집 팀원들의 노력과 Mobile API, SuperRoot, SDUI(오늘의집 Serving Platform을 통해 비효율성 해소하기), MSC(개인화 추천 시스템 #3. 모델 서빙) 등 오늘의집이 구축해 온 탄탄한 아키텍쳐가 있었기에 가능했습니다.

오집렌즈에는 수많은 기능이 담겨 있지만, 이번 글에서는 그중에서도 특히 ML 관점에서 도전적이었던 문제들을 어떻게 해결했는지에 초점을 맞춰 소개하려고 합니다.


서비스 레벨의 요구사항들

이미지 속 상품을 찾는 기능을 서비스 레벨로 구현하기 위해서는 다양한 요소에서 고민이 필요합니다.


오늘의집 도메인에 적합한 객체를 빠르게 탐지하기

객체 탐지는 오래전부터 활발히 연구되어 왔으며, 상업 서비스에서도 널리 활용되고 있습니다. 크게 실시간 모델과 Transformer 기반 Open Vocabulary 모델로 나눌 수 있습니다.

  • 실시간 객체 탐지 모델 : YOLO(RedMon et al, 2015), DETR(Facebook, 2020) 계열이 대표적이며 빠르고 실용적입니다. 다만 사전에 정해진 Object Class만 추론한다는 한계가 있습니다.
  • Open Vocabulary 모델 : Grounding-DINO(IDEA, 2023), OWLv2(DeepMind, 2023) 등이 있으며 자연어를 기반으로 다양한 객체를 탐지할 수 있어 도메인 제약이 적습니다. 하지만 아키텍처가 복잡하고 무겁다는 단점이 있습니다.

대부분의 오픈소스 모델은 오늘의집처럼 라이프스타일 혹은 인테리어 중심 도메인에 적합하지 않은 객체 클래스를 포함하고 있고, 텍스트 컨텍스트 길이도 짧았기에 원하는 수준의 표현력을 확보하기 어려웠습니다. 이에 검색팀은 유저들의 상품 태그 클릭 로그를 기반으로 실제로 관심이 높은 객체를 수집하고, 여기에 카테고리 정보까지 함께 활용해 오늘의집에 최적화된 객체 클래스를 새롭게 정의했습니다.

▲ 오늘의집 유저들이 많이 찾는 소파, 조명, 거울 등을 탐지한 결과
▲ 오늘의집 유저들이 많이 찾는 소파, 조명, 거울 등을 탐지한 결과


▲ 카테고리 정보를 사용하여 상품을 정확하게 탐지한 결과
▲ 카테고리 정보를 사용하여 상품을 정확하게 탐지한 결과


실시간 객체 탐지 모델은 속도 면에서는 유리하지만, 탐지의 정밀도와 표현력에서 아쉬움이 있다는 문제가 있었습니다. 이에 검색팀은 다양한 자연어를 기반으로 탐지가 가능한 모델들을 폭넓게 비교했으며, 그 결과 Grounding-DINO가 오늘의집 도메인에 가장 적합하다고 판단해 오프라인 배치 추론 DAG를 구축했습니다.

추론된 객체 탐지 결과는 Key-Value Store에 저장하고, 검색 서버에서는 이를 우선적으로 조회하는 방식을 적용해 서비스 품질과 응답 효율을 동시에 확보했습니다.

▲ 오집렌즈 객체 탐지 플로우
▲ 오집렌즈 객체 탐지 플로우


다양한 해상도와 비율 속에 숨겨진 상품을 찾는 강력한 비전 인코더

이미지 속에서 다양한 크기·형태로 존재하는 상품과 그와 유사한 대체 상품을 정확하게 찾아내기 위해서는, 여러 해상도와 종횡비의 이미지를 안정적으로 처리할 수 있는 백본 모델이 필수적입니다. 특히 인테리어 사진은 특성상 소파 위에 놓인 담요나 쿠션처럼 작은 소품이 다른 물체에 가려지거나, 조명·협탁·가구 등이 복잡하게 배치된 장면이 많습니다. 때문에 특정 객체를 정확히 집어내는 강력한 Localization 능력이 요구됩니다.

최근 DinoV3(Meta, 2025) 등 강력한 이미지 백본 모델들이 등장하면서 여러 모델을 비교 실험했고, 그 결과 SigLIP2(DeepMind, 2025) NaFlex가 가장 적합한 베이스라인이라는 결론에 도달했습니다. SigLIP2 모델은 기존 SigLIP 모델에 DinoV2의 Self-Distillation(EMA Teacher)과 Masked Prediction을 결합해 Dense Feature 표현을 강화했으며, 특정 객체를 보다 정확히 인식할 수 있도록 Location-Aware Captioner를 도입해 Localization 성능을 끌어올렸습니다. 또한 SigLIP2-NaFlex 모델의 경우 NaViT(DeepMind, 2023)와 FlexiViT(Google, 2023)를 결합한 구조로, 최대패치수(256)를 기준으로 이미지들의 종횡비를 유지하면서 리사이징을 하는 방식으로 다양한 해상도와 종횡비를 처리하였습니다. 실제로도 WebLI 데이터셋(10B images, 12B alt-texts, 109 languages) 학습 과정에서 57.3% 이상이 정사각형이 아닌 다양한 해상도 이미지를 포함해 폭넓은 상황을 학습했습니다.

▲ Patch n' Pack: NaViT, a Vision Transformer for any Aspect Ratio and Resolution (DeepMind, 2023)
▲ Patch n' Pack: NaViT, a Vision Transformer for any Aspect Ratio and Resolution (DeepMind, 2023)


객체 탐지와 비전 모델의 어려운 서비스 문제들

실제 서비스 환경에서는 유저가 올리는 이미지의 맥락이 매우 다양하고, 여러 상품이 겹쳐 등장하기 때문에 예외 상황이 빈번하게 발생합니다. 이로 인해 Object Detection과 Vision Encoder 모두에서 다양한 형태의 어려움이 나타났습니다.

이미지 검색 과정에서는 객체가 서로 겹치거나, 크기가 너무 작거나, 이미지 가장자리에 일부만 노출되는 등 다양한 공통 문제가 발생합니다. 이러한 문제들을 해결하기 위해 여러 가지 트릭과 후처리 방식을 적용해 결과를 정제했습니다. 예를 들어, 객체 탐지 분야에서 널리 사용되는 NMS(Non-Maximum Suppression) 알고리즘을 활용해 동일한 객체가 여러 번 탐지될 경우 유사도가 가장 높은 후보만 남겨 중복을 최소화했습니다. 또한 이미지 좌표를 0~1 범위로 정규화해 비율 기반 Threshold와 Margin을 적용함으로써 유저가 실제로는 보기 어려운 객체들을 효과적으로 필터링했습니다.

특히 오늘의집 이미지의 경우 독특한 디자인의 상품을 탐지하지 못하거나, 다른 상품에 일부 가려진 경우(예: 소파 위 담요처럼 형태가 흐려지는 경우) 원하는 상품을 찾기 어려운 사례가 많았습니다. 이런 문제는 단순 모델 개선만으로 해결되기 어렵기 때문에 여러 접근법을 함께 고려해야 합니다. 예를 들어 유저 인터랙션 로그를 활용하여 모델을 Fine-Tuning, 객체 탐지 모델의 Label 정보를 가이드로 활용한 멀티모달 검색, 또는 상품 카테고리 기반 후보군 필터링 등 서비스 도메인에 최적화된 다양한 방법을 적용할 수 있습니다.

오집렌즈는 현재 이러한 다양한 전략을 계속 실험하고 있으며, 앞으로도 새로운 기능을 단계적으로 도입해 실제 사용 환경에서의 탐지 안정성과 검색 편의성을 꾸준히 높여 나갈 계획입니다.


ML 파이프라인

사용자 경험을 극대화하기 위해 오집렌즈는 실시간 검색을 목표로 설계되었습니다. 기존에도 Elasticsearch를 활용해 빠른 벡터 검색을 제공할 수 있었지만, 보다 벡터 검색에 최적화되고 인덱스 운영 효율이 높은 Milvus를 도입하는 것이 더 적합하다고 판단했습니다.

Milvus는 Elasticsearch처럼 분산 환경을 기본 지원해 서빙까지 빠르게 구성할 수 있었고, 여기에 더해 gRPC 및 Float16 등을 지원해 속도와 리소스 효율 모두에서 유리한 구조를 갖추고 있습니다. 반면, 스키마 제약이 더 엄격하고 Upsert 시 벡터 데이터가 반드시 필요하다는 단점이 있었습니다. 실제 Production 환경에서 HNSW 인덱스를 활용해 서빙해 본 결과, 평균 10ms 이하의 응답 속도를 안정적으로 달성할 수 있었습니다.

한편 Vision Encoder와 Object Detection 모델은 GPU 사용 효율을 높이기 위해 Triton Inference Server 위에 배치하여 하나의 GPU에서 두 모델을 동시에 관리했습니다. Dashboard 구성, Warm-Up 적용, Dynamic Batch 처리, 배포 자동화 등 다양한 최적화 작업은 ML Platform 팀의 지원을 통해 빠르게 해결할 수 있었습니다.

▲ ML Offline/Online Pipeline
▲ ML Offline/Online Pipeline


유저 행동 로그 분석을 통한 오집렌즈의 반복적 개선

오늘의집에서는 그동안 검색이나 추천과 같은 기능에서 이미지 피처를 간접적으로 활용해 왔습니다. 그러나 오집렌즈가 도입되면서, 이미지 자체에서 발생하는 유저 인터랙션을 로깅하는 것이 서비스 개선의 핵심 요소로 자리 잡았습니다.

유저는 이미지 검색 화면에서 렌즈 박스를 원하는 위치로 옮기거나 크기를 조정할 수 있고, 검색 결과를 확인하면서 스크롤, 클릭, 스크랩, 다음 이미지로 이동 등 다양한 움직임을 보입니다. 이 과정에서 쌓이는 로그들은 유저의 만족과 불편을 암묵적으로 표현하는 매우 풍부한 신호 데이터입니다. 따라서 ML 관점에서 다음과 같은 정보를 중점적으로 수집하고 분석할 수 있도록 로깅 체계를 설계했습니다.

  • 유저가 가장 많이 선택한 Bounding Box는 무엇인지? 어떤 영역이 실제 관심 상품인지?
  • 클릭, 스크랩 등 인터랙션이 많이 발생한 Bounding Box는 무엇인지? 모델이 잘 맞춘 영역과 그렇지 못한 영역은 어떤 것인지?
  • 유저가 많이 인터랙션한 상품은 무엇인지, 그 상품은 검색 결과의 어느 위치에 있었는지? 상품 위치와 유저 행동을 결합해 비전 모델 개선 방향을 도출할 수 있을지?

이러한 로그들은 오집렌즈의 정확도 향상뿐 아니라, 앞으로 진행될 다양한 ML 개선 작업의 핵심 기반이 됩니다.

▲ 오집렌즈 객체 탐지 결과와 유저가 수동으로 박스를 조절한 예시
▲ 오집렌즈 객체 탐지 결과와 유저가 수동으로 박스를 조절한 예시


일례로 오집렌즈의 객체 탐지 결과와 유저가 수동으로 박스를 조정한 데이터를 비교하면, 유저가 실제로 어떤 객체를 찾고 싶어 했는지에 대한 명확한 의도를 파악할 수 있습니다. 이렇게 축적된 로그는 유저 맥락에 따라 객체 우선순위를 조정하거나 Object Detection 결과를 보정하여 검색 단계를 축소하는 데 직접 활용됩니다. 또한 이미지 유사도 모델을 오늘의집 도메인에 맞춰 정교하게 Fine-Tuning할 수 있는 중요한 훈련 데이터로 활용되어, 오집렌즈의 품질을 지속적으로 끌어올리는 기반이 되고 있습니다.


오집렌즈의 다음 여정 : 더 넓은 지면, 더 새로운 경험으로

오집렌즈는 개발부터 ABT까지 매우 빠른 속도로 진행되었으며, 현재는 일부 지면에서 유저가 올린 사진을 기반으로 상품을 검색할 수 있도록 서비스가 배포된 상태입니다. 홈, 커뮤니티, PDP(Product Detail Page) 등 다양한 지면으로 적용 범위를 넓혀가고 있으며, 유저가 직접 사진을 촬영해 상품을 찾는 기능을 포함해 여러 새로운 경험도 실험 중입니다.

오늘의집 검색팀은 유저의 검색 경험을 더 풍부하게 만들기 위해 다양한 아이디어를 적극적으로 시도하고 있습니다. 오집렌즈는 텍스트 기반 검색을 넘어, 이미지를 활용한 새로운 검색 흐름을 제공했다는 점에서 큰 의미가 있습니다. 앞으로도 공간에 어울리는 다양한 상품과 인테리어를 발견할 수 있도록 더 과감한 아이디어를 형태로 구현해 나가고 있으니 많은 관심 부탁드립니다.

오늘의집에서 당신을 찾고 있습니다!
Senior Backend Engineer, Tech Lead & Manager, CommerceSenior Frontend Engineer, Tech Lead & Manager, CommerceSenior Backend Engineer, ContentSenior Backend Engineer, AdsSenior Backend Engineer, Core PlatformSenior Frontend Engineer, Client FoundationSenior Machine Learning Engineer, Vision/GenAISenior Machine Learning Engineer, RecommendationSenior iOS Engineer, Client FoundationSenior Android Engineer, Client FoundationBackend Engineer, ContentBackend Engineer, CommerceBackend Engineer, AdsFrontend Engineer, CommerceFrontend Engineer, Interior & LifeFrontend Engineer, Client FoundationFrontend Engineer, GenAI/3D InteriorFrontend Engineer, UserFullstack Engineer, Life ServiceFullstack Product Engineer, AI AgentMachine Learning Engineer, ML PlatformMachine Learning Engineer, SearchMachine Learning Engineer, RecommendationMachine Learning Engineer, Recommendation (전문연구요원)Cloud EngineerSenior Data Analytics EngineerData Analytics EngineerAI Solutions EngineerQA EngineerQA Engineer, AutomationQA Assistant (계약직)[오늘의집페이] Backend Engineer[오늘의집페이] Fullstack Engineer
목록으로 돌아가기