Back
ESSAY번역
DEC 17, 2025

EP170: 시스템 기능 테스트의 베스트 프랙티스 + CQRS와 MongoDB 작동 원리

원문: EP170: All-in-One Technical Interview Prep Kit


이번 주 System Design 복습:

  • All-in-One ByteByteGo Technical Interview Prep Kit
  • Best ways to test system functionality
  • How CQRS Works
  • How MongoDB Works
  • Who's Hiring Now
  • SPONSOR US

ByteByteGo Technical Interview Prep Kit

올인원 인터뷰 준비 자료를 출시합니다. 모든 책을 ByteByteGo 웹사이트에서 이용할 수 있습니다.

ByteByteGo Interview Prep Kit

포함된 내용:

  • System Design Interview
  • Coding Interview Patterns
  • Object-Oriented Design Interview
  • How to Write a Good Resume
  • Behavioral Interview (coming soon)
  • Machine Learning System Design Interview
  • Generative AI System Design Interview
  • Mobile System Design Interview
  • And more to come

Launch sale: 50% off


Best ways to test system functionality

시스템 기능 테스트는 소프트웨어 개발 및 엔지니어링 프로세스에서 매우 중요한 단계입니다.

이를 통해 시스템이나 소프트웨어 애플리케이션이 예상대로 동작하고, 사용자 요구사항을 충족하며, 안정적으로 운영되는지 확인할 수 있습니다.

System Testing Methods

주요 테스트 방법들을 살펴보겠습니다:

  • Unit Testing: 개별 코드 컴포넌트가 독립적으로 올바르게 동작하는지 검증합니다.

  • Integration Testing: 시스템의 여러 부분이 함께 원활하게 작동하는지 확인합니다.

  • System Testing: 전체 시스템이 사용자 요구사항과 성능 기준을 충족하는지 평가합니다.

  • Load Testing: 시스템이 높은 워크로드를 처리할 수 있는지 테스트하고 성능 이슈를 식별합니다.

  • Error Testing: 소프트웨어가 잘못된 입력과 에러 상황을 어떻게 처리하는지 평가합니다.

  • Test Automation: 테스트 케이스 실행을 자동화하여 효율성, 반복 가능성을 높이고 오류를 줄입니다.

Over to you: 여러분의 소프트웨어 개발이나 엔지니어링 프로젝트에서 시스템 기능 테스트에 어떻게 접근하시나요?

Over to you: 여러분 회사의 릴리스 프로세스는 어떤 모습인가요?


How CQRS Works?

CQRS (Command Query Responsibility Segregation)는 쓰기(Command)와 읽기(Query) 작업을 분리하여 더 나은 확장성과 유지보수성을 제공합니다.

CQRS Architecture

작동 방식은 다음과 같습니다:

1 - 클라이언트가 시스템 상태를 업데이트하기 위해 command를 전송합니다. Command Handler가 Domain Model을 사용하여 로직을 검증하고 실행합니다.

2 - 변경 사항은 Write Database에 저장되며, Event Store에도 저장될 수 있습니다. 이벤트가 발생하여 Read Model을 비동기적으로 업데이트합니다.

3 - projection들은 Read Database에 저장됩니다. 이 데이터베이스는 Write Database와 eventually consistent 상태를 유지합니다.

4 - Query 측면에서, 클라이언트가 데이터를 조회하기 위해 query를 전송합니다.

5 - Query Handler가 사전에 계산된 projection을 포함하는 Read Database에서 데이터를 가져옵니다.

6 - 결과가 write model이나 write database를 거치지 않고 클라이언트에게 반환됩니다.

Over to you: CQRS를 더 잘 이해하기 위해 어떤 내용을 추가하시겠습니까?


How MongoDB Works?

MongoDB는 유연성, 확장성, 높은 성능을 위해 설계된 인기 있는 NoSQL 데이터베이스입니다. JSON과 유사한 형식(BSON)으로 데이터를 저장하며, sharding과 replication을 통해 수평적 확장을 지원합니다.

MongoDB Architecture

작동 방식은 다음과 같습니다:

  • Client application이 MongoDB Driver를 통해 연결하여 read/write 작업을 수행합니다.

  • Query Router (mongos)가 중재자 역할을 하며, 데이터의 shard key를 기반으로 적절한 shard로 쿼리를 전달합니다.

  • Config server는 메타데이터와 라우팅 정보를 저장합니다. 이를 통해 query router가 shard 전체에서 데이터를 찾을 수 있습니다.

  • 데이터는 수평적 확장을 지원하기 위해 여러 shard에 분산 저장됩니다.

  • 각 shard는 replica set으로, 쓰기를 처리하는 하나의 primary node와 고가용성 및 읽기 확장을 위한 여러 secondary node로 구성됩니다.

  • Primary가 실패하면, secondary가 자동으로 선출되어 가용성을 유지합니다.

Over to you: MongoDB의 작동 방식을 더 잘 이해하기 위해 어떤 내용을 추가하시겠습니까?

Thank you for reading.

Based in Seoul
Since 2024