5G, IoT, í´ë¼ìš°ë“œ 컴퓨팅과 ê°™ì€ ìµœì‹ ê¸°ìˆ ì˜ ë°œì „ì´ ê°€ì†í™”ë˜ë©´ì„œ 소프트웨어 ê°œë°œì— ëŒ€í•œ 민첩성과 확장성, íš¨ìœ¨ì„±ì— ëŒ€í•œ 요구가 ê·¸ ì–´ëŠ ë•Œë³´ë‹¤ ì»¤ì§€ê³ ìžˆìŠµë‹ˆë‹¤. LG그룹 ì‚°í•˜ì˜ í•œêµ ëŒ€í‘œ ëª¨ë°”ì¼ ë° ì¸í„°ë„· 사업ìžì¸ LGìœ í”ŒëŸ¬ìŠ¤ëŠ” 모바ì¼, 홈 ë° ê¸°ì—…ì„œë¹„ìŠ¤ë¥¼ ìš´ì˜í•˜ë©°, 최근ì—는 ì¸í”„ë¼Â·ë°ì´í„°Â·í”Œëž«í¼ ì¤‘ì‹¬ì˜ B2B AI ì „ëžµìœ¼ë¡œ ê³ ê° ì„±ìž¥ì„ ì´ë„는 AI 사업ìžë¡œ ë°œë‹ì›€í•˜ê³ 있습니다.
LGìœ í”ŒëŸ¬ìŠ¤ í´ë¼ìš°ë“œ í”Œëž«í¼ ê°œë°œíŒ€ì˜ ì§„ë³´ì€ ì†Œí”„íŠ¸ì›¨ì–´ 엔지니어는 MongoDB.local Seoul 2024ì—ì„œ MongoDB Atlas를 활용한 ê°œë°œìž í”Œëž«í¼ í˜ì‹ 사례를 ê³µìœ í–ˆìŠµë‹ˆë‹¤.
LGìœ í”ŒëŸ¬ìŠ¤ëŠ” ìµœì‹ ì„œë¹„ìŠ¤ë¥¼ ì œê³µí•˜ê¸° 위한 ì• í”Œë¦¬ì¼€ì´ì…˜ 현대화 ê³¼ì •ì—ì„œ 내부 프로세스 간소화를 위한 ë…¸ë ¥ì˜ ì¼í™˜ìœ¼ë¡œ Uplus Cloud Management Platform(UCMP)ì„ êµ¬ì¶•í–ˆìŠµë‹ˆë‹¤. UCMP는 í´ë¼ìš°ë“œ 환경 ë° ì„œë¹„ìŠ¤ ì „ë°˜ì„ ê´€ë¦¬í•˜ê³ ë³´ì•ˆ ìœ„í—˜ì„ ëª¨ë‹ˆí„°ë§í•˜ë©° ì›í™œí•œ 서비스 출시ì—ë„ í™œìš©í• ìˆ˜ 있는 LGìœ í”ŒëŸ¬ìŠ¤ì˜ ë‚´ë¶€ ê°œë°œìž í”Œëž«í¼ìž…니다.
í¼ë¸”ë¦ í´ë¼ìš°ë“œ ë„ìž… ì¦ê°€ì— ë”°ë¼ LGìœ í”ŒëŸ¬ìŠ¤ëŠ” í´ë¼ìš°ë“œ 서비스ì—ì„œ ë°œìƒí•˜ëŠ” 방대한 ì–‘ì˜ ë°ì´í„°ë¥¼ 처리하기 위해 한층 ê°•í™”ëœ ì¸í”„ë¼ ë³´ì•ˆ ê¸°ëŠ¥ì´ í•„ìš”í–ˆê³ , ì´ë¥¼ 위해 MongoDBì˜ ìœ ì—°í•œ ë„í먼트 모ë¸ë¡œ 구ë™ë˜ëŠ” 멀티í´ë¼ìš°ë“œ ê°œë°œìž ë°ì´í„° 플랫í¼ì¸ MongoDB Atlas를 ë„입했습니다.
MongoDB Atlas 구축 ì „ 관계형 ë°ì´í„°ë² ì´ìŠ¤ë¥¼ ì‚¬ìš©í•˜ë˜ LGìœ í”ŒëŸ¬ìŠ¤ëŠ” í´ë¼ìš°ë“œ 환경ì—ì„œ 사용ë˜ëŠ” ë¹„ì •í˜• ë°ì´í„°ì˜ ì–‘ê³¼ ë³µìž¡ì„±ì„ ë‹¤ë£° 수 있는 ë” ì í•©í•œ ë°ì´í„°ë² ì´ìŠ¤ê°€ 필요했습니다. ê°€ë ¹ ë°ì´í„° 보안 ì ê²€ 결과를 ì œê³µí•˜ëŠ” 프ë¼ìš¸ëŸ¬(Prowler)와 ê°™ì€ ì™¸ë¶€ 시스템 사용 ì‹œ 새로운 ë²„ì „ì´ ì¶œì‹œë 때마다 달ë¼ì§€ëŠ” 구조와 형ì‹ì— 맞춰 지ì†ì ì¸ ìŠ¤í‚¤ë§ˆ ì—…ë°ì´íŠ¸ê°€ 필요해, 관계형 ë°ì´í„°ë² ì´ìŠ¤ì—서는 ìƒë‹¹í•œ ì‹œê°„ì„ íˆ¬ìž…í•´ì•¼ 했습니다.
LGìœ í”ŒëŸ¬ìŠ¤ëŠ” ì¸í”„ë¼ ë³´ì•ˆì„ ìœ„í•´ 350ê°œì˜ AWS ê³„ì •ì— ëŒ€í•œ ì ê²€ì„ ì§„í–‰í•˜ë©°, ê³„ì • 당 ì ê²€ 결과는 취약ì í•ëª©ë³„ë¡œ 최대 2,500건입니다. ê·¸ë¦¬ê³ ì „ì²´ ê³„ì •ì— ëŒ€í•œ ì •ê¸° ì ê²€ 결과는 3개월 ê°„ ì €ìž¥ë˜ëŠ”ë° ì´ë•Œ 다뤄야 하는 ì ê²€ 결과는 ë¬´ë ¤ 1,000ë§Œê±´ì— ë‹¬í•©ë‹ˆë‹¤.
ì§„ë³´ì€ ì—”ì§€ë‹ˆì–´ëŠ” “기존 관계형 ë°ì´í„°ë² ì´ìŠ¤ë¡œ ë°ì´í„°ë¥¼ 구성했다면 ì •í˜•í™”ëœ ìŠ¤í‚¤ë§ˆë¡œ ì¸í•´ ë°ì´í„° ì ê²€ ê²°ê³¼ 형ì‹ì´ 변경ë 때마다 스키마 변경 대ì‘ì— ë§Žì€ ì‹œê°„ê³¼ ë…¸ë ¥ì„ íˆ¬ìž…í–ˆì„ ê²ƒâ€ì´ë¼ë©° “MongoDBì˜ ë„í먼트 모ë¸ì€ 스키마 변경 ì—†ì´ í•„ìš”í•œ ë°ì´í„°ë¥¼ 바로 ì €ìž¥í•˜ê³ ì½ì„ 수 ìžˆê³ , ë³µìž¡í•˜ê³ ê³„ì¸µì ì¸ ë¬¸ì„œ 구조를 ìœ ì—°í•˜ê²Œ ì²˜ë¦¬í• ìˆ˜ 있어 ë¹„ì •í˜• ë°ì´í„° ì²˜ë¦¬ì— ì´ìƒì ì´ë‹¤. 방대한 ì–‘ì˜ ë°ì´í„°ë¥¼ 성능 ì €í•˜ ì—†ì´ íš¨ê³¼ì 으로 ì²˜ë¦¬í• ìˆ˜ 있는 í™•ìž¥ì„±ë„ MongoDB를 ì„ íƒí•œ ì´ìœ â€ë¼ê³ ì „í–ˆìŠµë‹ˆë‹¤.
ì§„ë³´ì€ LGìœ í”ŒëŸ¬ìŠ¤ í´ë¼ìš°ë“œ í”Œëž«í¼ ê°œë°œíŒ€ 소프트웨어 엔지니어
MongoDB Atlas ë„ìž…ì€ LGìœ í”ŒëŸ¬ìŠ¤ì˜ ë°ì´í„° 쿼리 처리 ë°©ì‹ì—ë„ íšê¸°ì ì¸ ë³€í™”ë¥¼ ê°€ì ¸ì™”ìŠµë‹ˆë‹¤. ì¸í”„ë¼ ë³´ì•ˆ ê¸°ëŠ¥ì„ ìœ„í•´ 실행ë˜ëŠ” 다양한 밀리세컨드(millisecond) ë‹¨ìœ„ì˜ ì‹¤ì‹œê°„ API ê´€ë¦¬ì— MongoDBì˜ ì§‘ê³„ 파ì´í”„ë¼ì¸(aggregation pipeline)ì„ í™œìš©í•´ 대규모 ë°ì´í„° 세트를 효율ì 으로 í•„í„°ë§, 그룹화 ë° ì²˜ë¦¬í• ìˆ˜ 있었습니다.
예를 들어 취약ì 별로 보안 ì ê²€ 결과를 집계하는 ì¿¼ë¦¬ì˜ ê²½ìš°, 비효율ì ì¸ ê·¸ë£¹í™” ë° ì§‘ê³„ 작업으로 ì¸í•´ 약 87만 ê±´ì˜ ë°ì´í„°ë¥¼ 대ìƒìœ¼ë¡œ 쿼리를 실행하는 ë° 13초가 소요ë습니다. LGìœ í”ŒëŸ¬ìŠ¤ëŠ” MongoDBì˜ ì§‘ê³„ 파ì´í”„ë¼ì¸ì„ 통해 집계 ë°©ì‹ê³¼ì˜ ì—°ê´€ì„±ì— ë”°ë¼ í•„ë“œë¥¼ ë¶„ë¦¬í•˜ê³ ì¿¼ë¦¬ë¥¼ 튜ë‹í•´ 쿼리 실행 ì‹œê°„ì„ ë¬´ë ¤ 99.11% 단축했습니다.
ì§„ë³´ì€ ì—”ì§€ë‹ˆì–´ëŠ” “MongoDB를 ì²˜ìŒ ì‚¬ìš©í•¨ì—ë„ ë¶ˆê³¼ 3ê°œì›”ë§Œì— UCMPì˜ ì¸í”„ë¼ ë³´ì•ˆ ê¸°ëŠ¥ì„ ì˜¤í”ˆí• ìˆ˜ 있었다. ì´ë ‡ê²Œ ë‹¨ê¸°ê°„ì— MongoDB Atlas를 êµ¬ì¶•í• ìˆ˜ ìžˆì—ˆë˜ ê²ƒì€ MongoDBì˜ ë‚®ì€ ëŸ¬ë‹ì»¤ë¸Œ ë•ë¶„â€ì´ë¼ë©° “MongoDB Repository와 Mongo Templateì„ ë‚´ë¶€ 시스템 í™˜ê²½ì— ë§žì¶° 커스터마ì´ì§•í•´ ì •êµí•œ ì¿¼ë¦¬ë„ ë¹ ë¥´ê²Œ ìž‘ì„±í• ìˆ˜ 있다â€ê³ ì „í–ˆìŠµë‹ˆë‹¤.
ì´ì–´ “무엇보다 간편하게 초기 ì¸í”„ë¼ë¥¼ êµ¬ì„±í• ìˆ˜ 있어 ì‹¤ë¬´ì— ë¹ ë¥´ê²Œ ì ìš©í• ìˆ˜ 있었다. MongoDB í´ëŸ¬ìŠ¤í„°ì— UCMPì˜ ë ˆí”Œë¦¬ì¹´ 세트를 ìƒì„±í•´ ê³ ê°€ìš©ì„±ê³¼ ì•ˆì •ì„±ì„ ìœ ì§€í•˜ë©´ì„œ CPU ì‚¬ìš©ëŸ‰ì— ë”°ë¼ ì‹œìŠ¤í…œì„ ì˜¤í† ìŠ¤ì¼€ì¼(auto-scale) í• ìˆ˜ 있다â€ê³ ë§ë¶™ì˜€ìŠµë‹ˆë‹¤.
앞으로 LGìœ í”ŒëŸ¬ìŠ¤ëŠ” 비용 효율화와 쿼리 최ì í™”, ë°ì´í„° 관리 ê³ ë„화를 위해 MongoDB Atlasê°€ ì œê³µí•˜ëŠ” 다양한 ê¸°ëŠ¥ì„ íƒìƒ‰í•´ 나갈 계íšìž…니다.
ì§„ë³´ì€ ì—”ì§€ë‹ˆì–´ëŠ” “스케줄ë§ì„ 통한 비용 효율화를 위해 MongoDB Atlasì˜ functions ë° triggers ê¸°ëŠ¥ì„ í™œìš©í•´ 급격한 트래픽 ì¦ê°€ë‚˜ ì •ê¸°ì ì¸ ë°°ì¹˜ ìž‘ì—…ì´ ì˜ˆì •ëœ ê²½ìš°ì—ë„ ìƒí™©ì— 맞춰 효과ì 으로 íŠ¸ëž˜í”½ì„ ê´€ë¦¬í• ê²ƒì´ë‹¤. ë˜í•œ 쿼리 성능 ê°œì„ ì„ ìœ„í•œ 권장사í•ì„ ì œê³µí•˜ëŠ” Performance Advisorë¡œ 쿼리 실행 ì‹œê°„ì„ ëª¨ë‹ˆí„°ë§í•˜ê³ ì¸ë±ìŠ¤ ì‚¬ìš©ì— ëŒ€í•œ ì¶”ì²œì„ ë°›ì•„ ë°ì´í„°ë² ì´ìŠ¤ë¥¼ 최ì í™”í• ìˆ˜ ìžˆì„ ê²ƒìœ¼ë¡œ 기대ëœë‹¤â€ê³ ë°í˜”습니다.
Source: Read More