테스트 더블 완전 정복 — Mock, Stub, Spy, Fake의 정확한 차이
테스트를 작성할 때 “그냥 Mock 쓰면 되지”라고 생각하기 쉽다. 하지만 Mock은 테스트 더블의 다섯 가지 유형 중 하나일 뿐이다. Dummy, Stub, Spy, Mock, Fake는 각각 다른 목적을 가...
테스트를 작성할 때 “그냥 Mock 쓰면 되지”라고 생각하기 쉽다. 하지만 Mock은 테스트 더블의 다섯 가지 유형 중 하나일 뿐이다. Dummy, Stub, Spy, Mock, Fake는 각각 다른 목적을 가...
단위 테스트가 1000개 통과해도 실제 DB 연결에서 터지면 서비스는 장애다. 통합 테스트는 부품이 아니라 조립된 기계가 돌아가는지 확인하는 테스트다. 이 글에서는 Spring Boot 환경에서 통합 테스트를 ...
한 줄 요약: YouTube의 핵심은 업로드된 영상을 DAG 기반 트랜스코딩 파이프라인으로 해상도별 분할 처리하고, HLS/DASH ABR로 네트워크 상황에 맞게 스트리밍하며, 글로벌 CDN으로 지연시간을...
한 줄 요약: 결제 시스템의 핵심은 멱등성으로 중복 결제를 막고, 복식부기로 돈의 흐름을 추적하며, Saga 패턴으로 분산 트랜잭션을 보상하는 것이다.
한 줄 요약: 위치 기반 서비스의 핵심은 Geohash로 2차원 좌표를 1차원 문자열로 변환하여 B-Tree 인덱스로 근접 검색하고, Redis + Pub/Sub로 라이더 위치를 실시간 전파하는 것이다.
2024년 블랙프라이데이, 아마존의 DynamoDB는 초당 1억 건 이상의 요청을 처리했다. Redis는 단일 노드에서 초당 100만 QPS를 넘긴다. 이 숫자들이 가능한 이유는 단순한 “빠른 하드웨어” 때문이...
한 줄 요약: 분산 파일 저장소의 핵심은 파일을 4MB 블록으로 쪼개 SHA-256 해시로 중복을 제거하고, 메타데이터 DB로 블록 조각을 추적하며, SSE/WebSocket으로 여러 디바이스에 변경을 실...
NoSQL은 하나의 기술이 아니다. 네 가지 완전히 다른 철학이다. Key-Value, Document, Column-Family, Graph — 각각의 데이터 모델은 서로 다른 문제를 풀기 위해 태어났다. “...
“상품명에 ‘무선 이어폰’이 포함된 결과를 0.05초 안에 보여줘야 합니다.” RDBMS의 LIKE '%무선 이어폰%'은 100만 건에서 수 초가 걸린다. Elasticsearch는 역인덱스(Inverted I...
TCP와 UDP는 인터넷의 두 가지 핵심 전송 계층 프로토콜이다. TCP는 신뢰성을 최우선으로 설계됐고, UDP는 속도를 최우선으로 설계됐다. 두 프로토콜의 내부 메커니즘을 이해하면 어떤 상황에 무엇을 선택해야...