Post

MongoDB Local Seoul 2025 후기

MongoDB Local Seoul 2025 후기

미루고 미루다 연휴를 맞아 MongoDB 2025 후기를 올립니다

기억에 남는 것

기조연설

  • 8.0에 새로 도입된 쿼리 차단 필터, 클러스터 전체에 대한 ReadTimeout
  • 8.0에서 샤드키를 선택하지 않고도 샤딩 가능
  • Resharding이 필요할 때 최대 50배 더 빠르게 가능 -> 피크 수요를 위해 확장/축소 원활히 가능
  • 8.0에서 데이터를 암호화해서 저장하고, 암호화된 데이터를 검색할 수 있는 기능
  • IntelliJ 플러그인 지원 -> 네이티브 MongoDB
  • VSCode + Copilot 통합 쿼리 작업 가능

기업용 검색 : MongoDB를 통해 하이브리드 검색을 도입하는 방법

  • 8.1 이후 버전에서 $rankFusion 를 통해 벡터검색+전문검색이 가능함

MongoDB 데이터 모델링의 기초와 방법론

  • RDBMS는 데이터 모델링 -> 워크로드 정의 하는 반면, MongoDB에서는 워크로드를 먼저 정의한 뒤 데이터를 모델링한다.
  • 워크로드란 어플리케이션이 데이터에 말을 거는 방식으로, 어플리케이션이 데이터에게 말을 거는 방식. 가장 자주 던지는 질문이 무엇인지 / 데이터는 얼마나 자주 바뀌는지 등을 의미한다.
  • 워크로드는 아래와 같이 분류된다
    • 쓰기 많음
    • 읽기 많음
    • 빠르게 읽어야함
    • 저장 데이터가 엄청 많음
    • 심플함이 중요함

머니워크: MongoDB Atlas와 함께 롤러코스터를 타다

  • Query Profiler 보는 습관을 가지자

Action Item

  • MongoDB Atlas 모니터링 습관들이기
  • IntelliJ, VSCode + Copliot 쿼리 작업 해보기
  • MongoDB MCP 사용해보기
  • 워크로드 분석하는 습관 가지기

작성한 내용

기조연설

AI 시대 해결해야 할 문제 -> 얘네를 해결해야 트랜스포메이션 가능

  • 빠른 개발
  • 덜 복잡
  • 기술 부채 제거(현대화)

MongoDB 8.0

  • 현대적인 DB가 할 수 있는 역할
  • 8.0 allocator는 몽고 성능을 예측가능하게 함. DB는 메모리를 많이 쓰는 구조. 메모리 관리에서 작은 비효율이 발생해도 성능이 저하됨. => 새 얼로케이터로 메모리를 안정적으로 관리
  • 모든게 예측가능한건 아니니 신속하게 대응해야 함.
  • 쿼리 차단 필터 : 과도한 리소스를 사용하는 쿼리를 차단 가능
  • 클러스터 전체에 대한 Read Timeout : 제어 불가능하게 하는 쿼리가 전체 성능을 떨어트리는걸 방지

Scalability 확장성

  • 임베디드 구성 서버
  • Move Unshareded Collections
    • 샤드키를 선택하지 않고도 확장 가능
  • Faster Resharding
    • 리샤딩 필요할 때 8.0 에서 최대 50배 빠르게 가능. 따라서 피크 수요를 위해 확장/축소를 하던 원활하게 가능

보안 Security

  • Queryable Encryption : 쿼리 가능한 암호화
  • 필드 암호화해서 전송/저장/사용중에도 안정적으로 가능
  • 팀도, MongoDB도 프로바이더도 데이터를 볼 수 없음
  • 암호화된 데이터에서 정확히 일치하는 값을 검색 가능 -> 민감한 고객 정보를 보호 가능
  • 8.0에서는 이를 range쿼리까지 확장. 쿼리 과정에서 암복호화 불필요

Performance 성능

  • 가장 자주 사용하는 연산
  • Reads : 저지연의 read를 쉬지않고 앱에 전달
    • cmd 명령이 신속하게 도달해야함
    • 8.0에서는 명령실행경로를 간소화함
    • 지연에 민감한 instruction을 37% 줄임
    • expression path : 단순쿼리를 위함. 빠르고 클러스터링된 인덱스, 모든 필드에 대한 매치를 지원
  • Writes : 대다수의 레플리카셋에
    • 병렬처리 지원. 훨씬 더 빠른 인식을 대부분의 Writes에 지원
  • Expressive Queries 를 위한 최적화 : 고급쿼리
  • Block Processing : 시계열 데이터
    • 한 번에 하나씩 도큐먼트 처리하는 대신에 배치로 처리함. 벌크 접근법 사용해서 비싼연산을 배치. ㅓㄴ체에 분산시켜서 효율성 증가.
    • 이동 평균 계산, 데이터 롤업 등….8.0으로 옮겨가면 지연 줄이고 처리량 늘릴 수 있음
  • 벤치마크 테스트 해보면
    • Readonly : 36%
    • 혼합 : 32%
    • bulk insert : 56%
    • timeserise : 200% 블록프로세스 때문에 아주빨라짐

아틀라스

  • 50%빠른 수직확장
  • 5배빠른 오토스케일링
  • 독립 샤드스케일링
  • 아틀라스가 탁월한 가용성~

  • AtlasCLI
    • 도커컴포즈도 가능하고 CMD명령 가능함!
    • 전문검색을 랩탑에서 가능!!
  • VSCode + Copilot 통합되어서 쿼리작업 가능!!! -> 퍼블릭 프리뷰에 있음
  • IntelliJ : 네이티브 MonogoDB 가능! IntelliJ For Java
    • 오… MongoDB for IntelliJ Plugin

MongoDB MCP Server

  • 코드, 몽고DB 디플로드 다리역할….
  • 윈드서프, 커서로 IDE로 개발할 때 MCP로 MongoDB 클러스터와 연결하여 IDE만으로 가능
  • Chat과 인터렉션해서…
  • 맥락 인지적이라 완결된 MonogDB 쿼리 생성 가능
  • Agentic System : MCP 사용해서 액션트리거 실시간으로 가능

AI Application

  • LLM 모델 : 임베딩, 전문검색, 리랭킹(교차평가로 신뢰도, 정확도 높은 답을 제공)
  • MongoDB + Voyage AI : 최첨단 임베딩, 리랭킹 모델~.
    • 벡터, 운영 워크로드가 독립적으로 확장됨.. 최고 수준의 임베딩 모델 및 리랭킹~

모든 상호작용은 신호이자 행동할 수 있는 기회입니다~

  • 개인화 피드(Personalized Feed)
  • 자동셧다운
  • 실시간 재고 업데이트 -> 카프카 같은 스트리밍 이용 : 신호 이용하려면 스트리밍 처리 기술이 필요 -> 기존 스트리밍 프로세싱 기술은 경직화된 스키마… -> Atlas Stream Processing
  • 도큐먼트 모델 활용해서 지속적인 처리를 통합된 경험으로 처리…

현대화

  • 코드베이스 분석….
  • 테스트…. 처음부터 생성해야함
  • Convert 모놀리스 분해하는거나 코드 분해하는거나…
  • Migrate : 새 아키텍쳐에 맞게 변환해서 마이그레이션 해야함….

Lift and shift is not modernization

  • 진정한 현대화는 아키텍쳐, 코드베이스, 테크스텍 전체를 재편하는 것
  • 즉, 비즈니스와 함께 진화할 수 있는 기반을 구축
  • 지난 2년간 새 접근방식 구축…. 현대화로 혁신 실현

Agentic Framework / Tools&AI Agents -> 플랫폼 구축해서 몽고 현대화 할 수있도록 ~

기업용 검색 : MongoDB를 통해 하이브리드 검색을 도입하는 방법

LLM을 잘 활용하기 위해서는

  • 올바를 정보 제공
  • 정보의 저장과 검색 : LLM을 활용해 실용적인 RAG, Agentic AI 구축의 필수조건
    • 올바른 맥락 전달
    • LLM 환각 감소
    • 고품질의 유용한 답변 생성 가능

검색의 진화

  • ~1990 : SQL, 키워드 매칭 - 정확학 키워드 일치. 랭킹이나 맥락 정보 없고 대용량 처리 시 성능 저하
  • 2000~2010년대 : Full-Text 검색 - 역색인 구조 기반 빠른검색(ElasticSearch … ) -> 검색속도가 획기적으로 빨라지고 부분매칭&자동완성 같은 편의기능, Facet 검색등의 필터링 => 키워드 의존적,… 맥락 파악은 어려움
  • 2010년대 후반 ~ : AI기반 벡터 검색 - 의미 기반 유사성 검색. ANN 알고리즘 이용해서 자연어 검색 쿼리, 맥락과 의도 이해, 멀티모달 데이터 지원.. 높은 컴퓨팅 비용과 임베딩 전처리 필요
  • 발전 배경
    • 데이터 복잡성 증가, 비정형 검색 데이터베이스 필요성
    • 각 방법의 공존 -> 검색 목적에 따라 적합한 방법이 상이함. 완전한 대체보다는 역할 분담… (검색 목적에 따라 SQL, 풀텍스트, AI기반 등을 적절히 활용)

“지난달에 샀던 . 그러닝화랑 비슷한 제품 추천해줘”

  • 에이전트가 여러 방식을 도구로 사용해야함
    1. DB SQL : 사용자 구매 이력 정보
    2. Full-Text 검색 : 사용자가 구매한 운동화와 유사한 운동화들 리스트를 검색
    3. AI 기반 벡터 검색 : 의미적이고 추상적인 검색 추천 가능(ex: 페가수스 같은 입문용 러닝화..) 유기적 통합이 핵심

복잡한 데이터 환경의 현실…

  • 다양한 시스템이 얽혀있음.. 이런 시스템 하나하나가 각각의 방식을 사용함. 새 DB 추가할 때 마다 새로운 방식을 익혀아함

MongoDB Atlas

  • 하나의 인터페이스로 개발 단순화하고 혁신 가속화
  • 아틀라스서치
  • 벡터서치…

풀텍스트와 벡터를 통합하면 맥락파악하고 정확한 정보를 전달 가능

  • FullText 검색 : 정확한 키워드 매칭 기반 명시적ㅇ ㅛㅇ어 및 스펙 검색
  • 벡터 검색 : 의미 기반 유사성 검색,자연어 표현 및 개념 이해, 맥락 파악
  • 하이브리드 검색 : 각 검색의 장점을 활용
    • $rankFusion : MongoDB 8.1+ => 하이브리드 검색을 쉽고 빠르게. Aggregation 파이프라인에서 제공. 여러 종류 검색을 통합 가능 (match, vectorSearch, goeNear, search … ) 다양한 방식을 서브파이프라인으로 제공 + 같은 종류의 검색도 통합가능함(vectorSearch+vectorSearch 등)
    • rankFusion 이전에는 -> 수동 결과 병합하고, 랭킹 로직 직접 구현해야 함. 개발부담도 크고 실수도…. 최적화되지 않은 랭킹 로직….유지보수 어려워지고 복잡한 구현……
    • rankFusion : 중복결과 자동 제거 및 RRF알고리즘(랭킹 통합 로직) 내재화 / 단순한 파이프라인 구성 / 다양한 검색 기능 조합 지원

AI시대에는 다양한 검색방법이 각각의 역할을 하면서 공존한다 MongoDB Atlas는 하나의 플랫폼에서 모든 검색기능을 통합제공함 $rankFusion으로 하이브리드 검색 구현 간소화

Agentic RAG를 활용한 AICC 구축 사례

AICC

  • 상담 코드 추천 / 상담 요약 : AI가 대화를 분석해서 상담 코드를 추천하고 주요 내용 요약
  • 실시간 지식 추천 / 검색 : 고객 대화 이력 기반으로 상담에 필요한 지식을 추천하고 검색함

기술적 허들

  • Naive RAG : 저수준의 RAG… 제한적인 정확도. 비정형문서로 시작하여 마크다운 형태 파일을 임베딩모델로 다차원횡렬로 표현 -> 이 때 부터 고객이 쿼리 던지면 유사도 검색으로 LLM 청크로 답변 가능
  • 원본문서를 AI가 이해할 수 있도록 파싱하는 작업 (도표를 이해할 수 있도록 하고, 자주 수정됨)
    • HTML 변환 (순서도는 mermade로 변환)
    • MD 변환 : html이 좀 더 구조화된….
    • 더 극악무도한 케이스 (색깔표시, 그림 등) -> 데이터 파이프라인 설계(지속적 업데이트 때문에) / 파싱도 전통적인 OCR모델 말고…
    • Font layout 조정 -> PDF변환(이미지랑 텍스트가 구분되니까) -> 텍스트와 Image 따로 분리해서(AI가 판단할 수 있도록) -> 콘텍스트+이미지 합쳐서 -> HTML, MD로 변환하여 몽고에 넘김 Advanced RAG
  • Live RAG 대비…
  • Contextual Retrieval : 청크를 벡터화 하기 전에 전체 문서에서 맥락상 어떤 역할을 하는지..

에이전틱하다(Agentic Something)

  • AI가 어떤걸 스스로 결졍할 때 & 결정한걸 실행할 때

Agentic RAG

  • Supervisor 에이전트가 상단에 존재하고, 각각의 스페셜 에이전트(각각의 역할을 스페셜하게 수행할 수 있는 애들) -> 슈퍼바이저가 스페셜에 전달….
    1. Supervisor는 Long-term 메모리 내의 요금제 카탈로그를 참고하여 Reasoning
    2. 질의에 따라 역할이 부여된 스페셜 에이전트로 라우팅
    3. 개별 스페셜 에이전트는 어떤 툴을 사용할지 추론 후 콘텍스트 가져와서 답변 생성

MongoDB는 어떻게 사용하는지

  • 메인DB
  • 롱텀메모리, 숏텀메모리 저장소로도 몽고디비가 라이브러리 잘 되어있음
  • Document 내의 Vector값을 하나의 Field로 취급하므로 원본 데이터와 벡터 값 릴레이션을 유지할 필요가 없음
  • 하이브리드 서치 등 강력한 프레임워크 인테그리에션으로 별도 구현 필요 없음
  • 아틀라스 : Performance Advisior의 Index Recommendation Feature 기능~ 쿼리기반으로 인덱스 추천해주는거….

집중하고 있는거

  • Evaluation
  • Long/Short term memory
  • multi agent

MongoDB 데이터 모델링의 기초와 방법론

정규화는 MongoDB로 설계를 할 때 적절한 해결책이 아님 어떻게 해야 최적의 모델인지, 어떤게 좋은 디자인인지?

  • NoSQL을 위한 모델링이 필요한 이유
    • 우리는 왜 모델링을 할까 -> 여러 제약 조건에 대응 / 다양한 이해관계자와 소통 /문서화
    • 제약조건 : 물리적 제약(절대불변 -> 서울-뉴욕간 거리 차이 등…) / 하드웨어제약(개선가능) / 소프트웨어제약(지속변화)
    • 다양한 이해관계자와 소통
    • 문서화 : 합의와 분석의 결과를 기록하는데 그치지 않고, 다양한 상황에서의 빠른 대처를 위해 필요
    • 여러 직면한 제약을 해결하기 위해 모델링을 한다…
  • MongoDB를 위한 데이터 모델링 방법론
  • 스키마 디자인 패턴 적용

워크로드는 각 오브젝트를 콜렉션으로 그룹화하는 최적의 방법을 결정함

  • 워크로드 : 어플리케이션이 데이터에게 말을 거는 방식. 가장 자주 던지는 질문이 무엇인지 / 데이터는 얼마나 자주 바뀌는지 등
  • 프로젝트(워크로드)에 대한 분석 및 분류
    • 쓰기 많음
    • 읽기 많음
    • 빠르게 읽어야 함
    • 저장 데이터가 엄청 많음
    • 심플함이 중요함

MongoDB를 위한 데이터 모델링 방법론

  • RDBMS : 데이터 모델링 -> 워크로드 정의
  • MongoDB : 워크로드 정의 -> 데이터 모델링

데이터 모델링 방법론

  1. 요구사항(Requirements) 분석 : 우리 어플리케이션의 엔티티 추출. 주요 등장인물을 찾기. 메인 엔티티를 찾기.
  2. 워크로드(Workload) : Operation 목록 작성.
    • write, read…. 모든 operation이 동일하게 중요하지는 않음. 한정된 자원안에서 최고성능이 나도록 선택과집중
    • 핵심 operation 기준으로 어떤 워크로드가 중요한가 선정.
    • 중요도가 높은 operation을 분석(쓰기인가 읽기인가) -> 숫자로 세부 내용을 정의(하루에 nnn건 작업이 nn분 간격으로 발생… nn년 저장됨 등등)
    • 워크로드 분석은 모델의 설계 기준선(baseline)을 만드는 과정. 이 기준이 명확해야 미래의 변화에 흔들리지 않음. 기준이 명확하면 감이 아니라 숫자로 답할수 있음.
  3. 관계(Relationship) : 엔티티를 어떻게 묶고 나눌것인가.
    • 비싼 조립을 할 필요 없음
    • 애플리케이션에서 함께 사용되는것은 DB에서도 함께 저장해야함
    • 레퍼런싱(Referencing) : RDB의 Join
    • Embedding : 관련된 데이터를 하나의 DB에 한번에 저장 -> 어플리케이션은 이 문서 하나만 읽으면 원하는 정보를 한번에 내보낼 수 있음.
    • 어플리케이션에 따라 가이드라인 기준을 보고 의사결정 진행
  4. 패턴(Pattern)
    • 스키마 디자인 패턴 구조 : 계산 / 그룹핑 / 생명 주기 / 다형성 / 관계
    • 디자인패턴은 필요할때만, 스키마는 단순하게 하는게 좋다.
    • 가장 좋은 스키마는 단순한 모델이다…..
    • 어려운 문제를 풀기 위한 필살기로만 남겨두고 남발하지 말자

자주 함께 사용되는 정보는 임베딩해서 추가

Computed Pattern

  • 읽기 시점에 비싼걸 쓰기 시점에 옮겨서…. 쓰기 시점에 작업을 더 하자

Archive Pattern

  • 오래된건 별도의 아카이브로 옮겨두자.
  • 장기로 저장해야하면 비싸니까~

성공적인 시스템은 반드시 변화를 겪게 되며

Key Takeaways

  • 모델링 필요성
  • 모델링 방법론
  • 스키마 디자인 패턴 적용

<고객사례> 코코네

Migration(Backup&Restore) 준비

마이그레이션 후마주친 현상

  • M50 오픈 이후 IOPS 증가 ->.Aggregate 함수 이슈
  • Cursor 값 증가 -> 고객들의 지연시간….

서비스 안정화를 위한 긴급 대응

  • IOPS 변경 (3000 -> 6000 -> 8000) : 아틀라스에 대한 이해와 노하우가 부족해서 EC2 대응 방식을 지속적으로 고려
  • 세컨더리 추가 생성
    • 밀어올리는과정에서 동기화 . 할때 리소스를 사용해서 동일한 이슈가 발생함.
  • 마지막 선택 : 아틀라스 티어 업그레이드 (M50 -> M60 -> M80에 32CPU 128RAM… ) 서비스는 안정화 되었는데 비용폭탄
    • CPU와 IOPS를 잡아야한다 -> 리팩토링

리팩토링

  • 아이템 하나하나를 SeqNo로 관리하면서 상태관리를 함(선물,교환,착용/해제/폐기) -> RDB스타일
  • Reference 를 Embedding 모델로 리팩토링
    • UserId와 ItemNo 기준으로 그룹핑
    • 새롭게 생성한 콜렉션은 Active User의 Item Data 만 관리
  • Application Refactoring
    • Aggregation 파이프라인제거

UserItem Collection Re-Modeling

  • userId와 itemNo 하나의 복합인덱스로 리모델링
  • Collection 구조 변경 처리 : FacadeService 추가하여 2개 콜렉션으로 동작 분리 /. ㅣㄴ규 콜렉션은 액티브 유저만 처리…
  • Query 리팩토링
  • cache

Refactoring 결과

  • Normalized Process CPU => M80 32CPU

Atlas로 전환해야 하는가?

  • XaaS(X as a Service)는 언제나 비용이 이슈임
    • 풀managed DBaaS잉ㄴ 아틀라스도 예외는 아님
    • 비용이슈가 해결되면 사용하지 않을 이유는 없음. 고사양 Atals Tier 사용하면 최적화 튜닝은 필수적
  • 코코네에서 Atlas 사용하는 이유
    • DBA가 아닌 서버 개발자들이 Atlas Dashboard를 통해 DB 상태를 접검할 . 수있다는 점.
    • 운영 코스트가 거의 제로에 가깝고 사용이 쉽다는 장점.

Atlas Migiration 생각해 볼만한 것들

  • 컨설턴트의 제안이나 조언은 성배가 아님 -> 좋은 이야기만 함
    • 제일 중요한, 서비스 내부 구조에 대해서는 아예 모름
    • 서비스를 제일 . 잘아는사람은 담당 개발자
  • 리팩토링에서 정말 중요한건 DB가 아니라 어플리케이션
    • DB성능개선은 버전업과 시스템 스케일업으로는 한계가 명확
    • DB성능 개선이 되더라도 비즈니스 로직이 같이 개선되지 않으면 지속가능한 서비스를 만들어내기 어려움
  • 시뮬레이션, 테스트 결과 과신 X -> 특히 대용량 환경에서는…
    • 성능지표들이 예상과 다르게 움직일 수 있음

<고객사례> 성능 최적화 실전 사례

올거나이즈 : NLU 기술에 집중해서 기업이 AI를 활용해서 다양한 문제점을 찾을 수 있도록

왜 MongoDB, Atlas를 사용하는가?

  • 빠른실험/유연성/운영
  • Index Usage

스트림 프로세싱

  • AWS 애저에 지역 센터마다 워커노드 배치할 수 있는 옵션을 제공함
  • MongoDB Atlas 에서 네이티브 스트림처리
  • 스트리밍 전용 옵션을 통해 aggregation 프레임워크를 활용해 확장
  • 이벤트를 처리하기 위한 아키텍쳐를 구성할 . 때아키텍쳐를 간소화하는게 목표
  • 이벤트 처리하는 매커니즘을 만든다 할 때, 인스턴스 만들고 파이프라인 형태로 등록… 이벤트를 전달받고 뭘 하고 그런 연결 체인들을 간단하게 만든다

스트림 프로세싱을 할 수 있는 데모가 있음

<고객사례> 머니워크 : MongoDB Atlas와 함께 롤러코스터를 타다

  • MongoDB Atlas : Schemaless, Simple, Performant, Cloud
    • SaaS형으로 쓰기 때문에….
  • DB Tier를 M140 에서 M60, 피크시간의 ReadQuery Latency를 1s에서 1ms로

MongoDB Atlas Ignite Package

  • 리포트… DB를 어떻게 사용하고 있고(Health Check), 다양한 것들을 해결책으로 제시해주심

Index Tuning(Performance Advision & Query Profiler)

  • 쿼리가 인덱스를 잘 타도록 변경하거나 추가
  • 계속된 관찰이 필요하기 때문에 생각보다 쉽지 않음
  • 어떤 쿼리가 비효율적인지 범인을 찾아내줌
  • Query Profiler : 재앙의 씨앗이 보임. MongoDB를 사용하면 이 페이지는 꼭 하루에 한 번 이상 봐라

MongoDB Cluster Version Update

  • 생각보다 유의미하게 빨ㄹㅏ짐

Covered Query

  • 읽기 쿼리 수행하면… 인덱스를 타고 -> 인덱스로 찾은 데이터의 리턴할 정보를 찾는 2차 과정이 필요함
  • 2차 과정을 아예 하지 않음 : 쿼리에 필요한 모든 정보가 인덱스에 모두 포함되어 있음
    • Projection을 넣어줘서….
  • Field to Field 매칭에는 아주 탁월함.

Archiving

  • DB에 있는 내용을 모두 S3에 카피한뒤에 삭제한다
  • S3에 있는걸 MongoDB 쿼리 랭귀지로 뽑을 수 있는걸 아틀라스에서 제공함
    • 잘 접근하지 않는 히스토리성 테이블에 제공…
    • 쿼리는 느리지만 쿼리가 가능하긴 함

Analytics Node

  • 분석용 노드 : BI노드에 쓰면 되는데!!!!! -> 석우님께 제안
  • Atlas에서 Analytics Node 제공함
    • 사용자가 사용하는 일반 노드에 비해 가격도 1/3 수준이라고 함

In-Memory Caching

  • 작은데 많이 사용되는 쿼리들
  • 쿼리들중에 상수형태를 띄는 쿼리들 (global configuration…)
  • 매번 mongoDB를 읽을 필요가 없음
  • ECS - MongoDB 사이 캐시레이어 있으면.. 그 때도 도움됨

AI Code Review For Index

  • 인덱스를 안타는 쿼리들
  • PR이 추가되는 쿼리에 대해 인덱스 안탈 가능성이 높은걸 AI 에이전트로 추가할 수 있다…
  • 찾아보면 많이 나옴ㅋㅋ

Query Profiler

  • 이 화면을 매번 하루에 한번씩 모니터링해라.
  • 못보던 색상이 나오면 주의해라

벡터서치

  • 디자이너가 이미지를 생성했을 때 등록하면 언제든 이미지를 검색할 수 있는것 -> 벡터서치로 이미지를 검색 가능
  • 검색엔진을 잘 쓰게 하기 위해 넣는 순간 이름을 만드는 것 까지…
  • 이미지가 필요할 때 다시 만들지 않아도 가져올 수 있는 기반을 추가
  • 편의성 측면에서 다른 DB 압도함

<고객사례> 구글클라우드 MonogDB

사용자가 많아질수록 문제가 많아짐

Query Insights

  • 느리게실행되는 DB작업 모니터링 도구
  • 왜? : 쿼리 성능 문제에 대한 가시성을 제공
  • Use Cases
    • 생산 성능 급증… 문제있는 쿼리 찾아내기

Operation Rejection Filters

  • 특정 쿼리 형식의 작업 거부
  • Behavior
    • 해당 쿼리 형식의 모든 수신 쿼리를 거부
    • 자원 소모가 많은 쿼리가 추가적인 문제를 일으키는걸 방지
    • 시스템 정책 세밀한 제어 : 사용량 급증하는 비정상적인 상황 발생 시

모든걸 종합해 보면

  1. 실시간 메트릭을 확인해 성능 문제 파악
  2. 쿼리 인사이트를 사용해 문제 쿼리 확인
  3. Operation Rejection Filter를 사용해 쿼리 실행 안되도록 조치
  4. 한숨 돌리고 근본 원인에 대해 조치

Compound Wildcard Indexes

  • 알려진 필드와 와일드카드(알려지지 않거나 중첩된 필드용)를 포함하는 단일 인덱스
  • 왜? : 복잡한 스키마에서도 다중인덱스 없이 효율적인 쿼리 수행
  • UseCases
    • 타겟팅 광고 : 브랜드 X기기 사용자를 식별하고

Queryable Encryption

  • 필드를 암호화하면서 expressive query를 지원. 날짜 . 및숫자에 대한 등호 및 범위쿼리 지원
  • 개인정보 보호하고 규정 준수 요건 충족
  • UseCases
    • 민감한 개인 식별 정보 보호
    • 원시데이터 노출 없이 타겟팅된 제안
  • 방법
    • key management system구성
    • 암호화된 스키마 정의
    • 암호화된 컬렉션 생성
      • 7.0은 equal만 가능. 8.0부터는 range 검색 지원

수평 확장 기본 개념 : Sharding

  • 8.0부터는 샤드에 대한 기능 개선됨
  • Atlas에서도 샤딩 가능….

Performance

  • 8.0 vs 7.0 성능… => TimeSeries에서 특히 200%이상 빨라졌다~
  • 업그레이드 하세요~

GoogleCloud가 어떻게 개발 성능을 가속화 할 수 있을지

  • MongoDB는 좋은 선택이다 / MongoDB + Vertex AI와 연계했을 때 새로운 혁신을!!

GoogleCloud

  • AI 전체 End-to-End하는곳은 구글뿐임ㅎ 어디가 병목이고 어디가 개선해야하고를 할 수 있는게 구글임.
  • 데이터쪽 : 운영DB(MongoDB)/분석DB(BigQuery)
    • MongoDB가 현실세계를 . 잘반영했기 때문에 운영하기 좋다….
  • Atlas는 플랫폼을 자유롭게 넘어갈 수 있다. -> 운영하기 아주 좋다.

메리츠 FDS

금감원 데이터 제공받으면 수상거래 탐지하여 바로 알랏 보내는 등 즉각적인 대응을 구축함 데이터를 수집함에 있어 프로젝트 초기에 어떤 어려움이 있었는지

  • 어떤 규모로 수집할지 ….
  • 이상탐지 데이터가 기간? 이. ㅏㄹ라서
  • 고객 데이터 실시간 분석해야 하고,대량데이터 안정적 처리해야함. 자동 failover, transaction 처리하는데 요구사항 충족이 어려움
  • NoSQL DB중에서도 왜 MongoDB였을지
    • 스키마가 자주 변하는 FDS에서 NoSQL이 필요했고
    • 안정성이 중요한데, 타 NoSQL은 국내 지사가 없거나 레퍼런스가 없고… MongoDB는 지사가 있음 PSR
  • 스키마 유연성

PSS 아키텍쳐

  • Atlas는 이 구조로 아키텍쳐가 배포됨.
  • MongoDB EA 운영 : Ops Manager를 활용
    • MongoDB EA에서 MongoDB Agent로 무상으로 제공함.

MongoDB EA 도입 이후 -> 운영 효율성 증가!

  • 비용 50% 절감
  • 무중단 서비스

레거시 애플리케이션 현대화하는 생성형 AI 기반 팩토리 접근 방식

MongoDB가 생각하는 진정한 현대화란

  • 현대화 = 이사가기
  • MongoDB의 근본적인 기술적 강점은 문서모델(document model)
  • Atlas : AI를 위한 데이터 플랫폼

AI를 어떻게 활용해서 현대화 프로그램에 적용했는지

  • MongoDB Modernization Factory
  • 기존의 현대화 프로젝트는 오래걸리고 고비용….

현대화 팩토리라는 프로젝트가 어떤거고, 어떻게 협업하는지

  • 현대화는 종종 한번의 리프트 앤 시프트 전환으로 끝남… -> 레거시에서 뉴 레거시로
  • 지속적이고 반복적으로 할 수 있도록 해야함
  • 진정한 현대화를 위해 AI가 대규모 현대화를 실현 가능하도록 함
  • GPT, 클로드 등의 LLM을 이용해 특정 코드 작성을 요구하는데 -> 테스트케이스 없고 50줄 이상이면 신뢰할 수가 없음…
This post is licensed under CC BY 4.0 by the author.