ì¹´ì…°ì–´ë§(car-sharing)ì´ë¼ëŠ” í˜ì‹ ì ì¸ ëª¨ë¹Œë¦¬í‹° 문화를 í•œêµì— ì •ì°©ì‹œí‚¨ ì˜ì¹´ëŠ” 차량 ê³µìœ ë¥¼ 넘어 í¼ìŠ¤ë„ 모빌리티, 주차, 숙박 ì˜ˆì•½ì„ ì•„ìš°ë¥´ëŠ” 종합 모빌리티 í”Œëž«í¼ ê¸°ì—…ìœ¼ë¡œ ì§„ë³´í•˜ê³ ìžˆìŠµë‹ˆë‹¤. ì´ ë³€í™”ì˜ ì¤‘ì‹¬ì—는 ê¸°ìˆ ê³¼ ë°ì´í„°ë¥¼ 통해 ê³ ê°ì—게 편리한 서비스를 ì œê³µí•˜ê¸° 위한 ì˜ì¹´ì˜ 지ì†ì ì¸ ë…¸ë ¥ì´ ìžˆìœ¼ë©°, 2023ë…„ 5ì›” ì„ ë³´ì¸ ìˆ™ë°• 예약 서비스 ‘ì˜ì¹´ìŠ¤í…Œì´â€™ëŠ” ê·¸ 대표ì ì¸ ì˜ˆìž…ë‹ˆë‹¤.
ì›í™œí•œ 예약 ê²½í—˜ì„ ì œê³µí•˜ëŠ” ê²ƒì€ ê²°ì½” 간단하지 않았습니다. 사용ìžê°€ 예약 가능한 숙소를 í•œ ëˆˆì— íŒŒì•…í•˜ê³ ë§žì¶¤í˜• 숙소를 추천 ë°›ì„ ìˆ˜ 있는 스마트한 검색 ì—”ì§„ì„ êµ¬ì¶•í•˜ê¸° 위해서는 ì˜ì¹´ìŠ¤í…Œì´ê°€ ë³´ìœ í•œ ìžì²´ ì¸ë²¤í† 리 외ì—ë„ íƒ€ì‚¬ 숙박 예약 서비스 채ë„ì˜ ë°ì´í„°ë¥¼ 통합하는 ê³¼ì •ì´ í•„ìš”í–ˆìŠµë‹ˆë‹¤. ê·¸ë¦¬ê³ ê°ê¸° 다른 형ì‹ê³¼ ë°ì´í„° 구조를 사용하는 타사 채ë„ì˜ ì •ë³´ë¥¼ 매ë„럽게 취합하기 위해 ì´ë¥¼ 통합 ê´€ë¦¬í• ìˆ˜ 있는 ë°ì´í„°ë² ì´ìŠ¤ê°€ 필요했습니다.
ì˜ì¹´ì˜ 양준ì˜, ì°¨í˜„ì² ì†Œí”„íŠ¸ì›¨ì–´ 엔지니어는 MongoDB.local Seoul 2024ì—ì„œ MongoDB Atlas Search를 통한 ì˜ì¹´ìŠ¤í…Œì´ì˜ ë¹ ë¥´ê³ íš¨ìœ¨ì ì¸ ê²€ìƒ‰ 엔진 구축 사례를 소개했습니다.
ì–‘ì¤€ì˜ ì—”ì§€ë‹ˆì–´ëŠ” “ë„í먼트 ë°ì´í„°ë² ì´ìŠ¤ 모ë¸ì˜ ìœ ì—°í•œ 스키마를 기반으로 í•œ MongoDB Atlas Search는 개발ìžê°€ ì‚¬ì „ ì •ì˜ëœ ê²½ì§ëœ ë°ì´í„°ë² ì´ìŠ¤ êµ¬ì¡°ì— ì œí•œ 받지 ì•Šê³ ë‹¤ì–‘í•œ ë°ì´í„° 형ì‹ì„ ê´€ë¦¬í• ìˆ˜ 있다는 ì ì—ì„œ 효과ì ì´ë‹¤. ë˜í•œ ìƒ¤ë”©ì„ í†µí•œ ìˆ˜í‰ í™•ìž¥ì„ ì§€ì›í•´ ì˜ì¹´ê°€ ë³´ìœ í•œ ëŒ€ëŸ‰ì˜ ë°ì´í„°ë¥¼ 여러 ì„œë²„ì— ë¶„ì‚°í•´ 효율ì 으로 ì²˜ë¦¬í•˜ë©´ì„œë„ ê²€ìƒ‰ ì„±ëŠ¥ì„ ê³ ì†ìœ¼ë¡œ ìœ ì§€í• ìˆ˜ 있다â€ê³ 설명했습니다.
ì–‘ì¤€ì˜ ì˜ì¹´ 소프트웨어 엔지니어
ì˜ì¹´ íŒ€ì´ ë½‘ì€ MongoDB Atlas Searchì˜ ë˜ ë‹¤ë¥¸ ê°•ì ì€ ë°”ë¡œ í’부한 쿼리 기능입니다. MongoDB ë°ì´í„°ë² ì´ìŠ¤ ë¬¸ì„œì— ëŒ€í•œ ê³ ê¸‰ 검색 ê¸°ëŠ¥ì„ ì œê³µí•˜ëŠ” MongoDB Atlas Search를 통해 íŒ€ì€ í…스트 검색, í•„í„°ë§, ëží‚¹ 등 다양한 ì¡°ê±´ê³¼ ì—°ì‚°ìžë¥¼ 사용한 복합 쿼리를 ìž‘ì„±í• ìˆ˜ 있었습니다. ë¿ë§Œ ì•„ë‹ˆë¼ í‚¤ì›Œë“œ, í™”ì´íŠ¸ìŠ¤íŽ˜ì´ìŠ¤(whitespace)부터 í•œêµì–´ ê²€ìƒ‰ì„ ìœ„í•œ 노리(nori)까지 다양한 분ì„기(analyzer)를 지ì›í•œë‹¤ëŠ” ì ë„ íš¨ìœ¨ì ì´ê³ ì‚¬ìš©ìž ì¹œí™”ì ì¸ ê²€ìƒ‰ 환경 êµ¬ì¶•ì— í° ë„ì›€ì´ ë습니다.
ì°¨í˜„ì² ì—”ì§€ë‹ˆì–´ëŠ” “ì˜ì¹´ìŠ¤í…Œì´ëŠ” MongoDB Atlas Searchë¡œ 다양한 숙박 서비스 채ë„ì´ ì œê³µí•˜ëŠ” ë°ì´í„°ë¥¼ 통합해, 사용ìžì˜ ê²€ìƒ‰ì¡°ê±´ì— ë§žì¶° í•„í„°ë§ëœ 결과를 ì œê³µí•œë‹¤â€ë©° “나아가 지ì—별 검색 ê¸°ëŠ¥ì„ ì œê³µí•˜ê¸° 위해 ì œì£¼, ì†ì´ˆ 등 ì§€ì— ë‹¨ìœ„ë¡œ ë¦¬ì „ 코드를 ì •ì˜í•˜ê³ , ìŠ¤í”„ë§ ë°°ì¹˜(Spring Batch)를 사용해 검색용 ë°ì´í„°ë² ì´ìŠ¤ë¥¼ ë§¤ì¼ ìƒˆë²½ì— ì •ê¸°ì 으로 ì—…ë°ì´íŠ¸í•˜ë©° ìµœì‹ ìˆ™ì†Œ ì •ë³´ë¥¼ ì œê³µí•˜ê³ ìžˆë‹¤â€ê³ ë§ë¶™ì˜€ìŠµë‹ˆë‹¤.
ì°¨í˜„ì² ì˜ì¹´ 소프트웨어 엔지니어
프로모션과 ê°™ì´ íŠ¹ì • ì´ë²¤íŠ¸ê°€ ì ìš©ëœ ìˆ™ì†Œ 목ë¡ì„ í•„í„°ë§í•˜ëŠ” ê¸°ëŠ¥ë„ MongoDBì˜ ìœ ì—°í•œ 검색 아키í…처를 통해 쉽게 êµ¬í˜„í• ìˆ˜ 있었습니다. ì˜ì¹´ê°€ ì§ì ‘ 관리하는 ì´ë²¤íŠ¸ ë°ì´í„°ì˜ 경우, íŒ€ì€ ê°„ë‹¨í•˜ê²Œ 필드값과 어그리게ì´ì…˜(aggregation) ì¡°ê±´ì„ ì¶”ê°€í•˜ëŠ” ê²ƒë§Œìœ¼ë¡œë„ ì „ì²´ 시스템 ì—…ë°ì´íŠ¸ ì—†ì´ ì‰½ê²Œ í•„í„°ë§ ê¸°ëŠ¥ì„ ì œê³µí• ìˆ˜ 있었습니다.
ì˜ì¹´ íŒ€ì€ MongoDB Atlas Search 구축 후 검색 기능 ë¿ë§Œ ì•„ë‹ˆë¼ ì„±ëŠ¥ 측면ì—ì„œë„ íšê¸°ì ì¸ íš¨ê³¼ë¥¼ ê²½í—˜í•˜ê³ ìžˆìŠµë‹ˆë‹¤. ì°¨í˜„ì² ì—”ì§€ë‹ˆì–´ëŠ” “260MB ì¸ë±ìŠ¤ ê·œëª¨ì— ë‹¬í•˜ëŠ” 5만 ê°œì˜ ë°ì´í„°ì— 대한 검색 성능과 ì‚¬ìš©ìž ê²½í—˜ì„ ëª¨ë‹ˆí„°ë§í•œ ê²°ê³¼, í•œ 달 ê°„ 사용ìžì˜ 약 90%ì—게 í‰ê· 11.6ms, 99%ì—게는 18.9ms ì´ë‚´ì— ì‘ë‹µì„ ì œê³µí•˜ë©° 놀ëžë„ë¡ ë¹ ë¥¸ 성능 ê°œì„ ì„ ì´ë¤˜ë‹¤â€ê³ ë°í˜”습니다.
ì˜ì¹´ìŠ¤í…Œì´ëŠ” 최근 주요 랜드마í¬ë‚˜ 여행 ë™ì„ ì— ë§žì¶° 숙소를 ê²€ìƒ‰í•˜ë ¤ëŠ” 사용ìžê°€ ëŠ˜ì–´ë‚¨ì— ë”°ë¼ MongoDB Atlas Searchì˜ geoWithin operator를 사용한 새로운 ì§€ë„ ê¸°ë°˜ 검색 ê¸°ëŠ¥ë„ ê°œë°œí•˜ê³ ìžˆìŠµë‹ˆë‹¤.
ì–‘ì¤€ì˜ ì—”ì§€ë‹ˆì–´ëŠ” “MongoDB Atlas Search 기반으로 구축한 다양한 검색 ê¸°ëŠ¥ì€ í–¥í›„ ì˜ì¹´ìŠ¤í…Œì´ì˜ 비즈니스 ì„±ìž¥ì— ë”°ë¼ ë” ë§Žì€ í˜ì‹ ì„ ê°€ëŠ¥ì¼€ í• ê²ƒâ€ì´ë¼ë©° â€œì• í”Œë¦¬ì¼€ì´ì…˜ì— ê°•ë ¥í•˜ê³ ìœ ì—°í•œ 검색 ê¸°ëŠ¥ì„ í†µí•©í•˜ê³ ìž í•˜ëŠ” 개발ìžë¼ë©´ MongoDB Atlas Search는 ì¢‹ì€ ì„ íƒì§€ê°€ ë 수 있다â€ê³ 강조했습니다.
Source: Read More