EP173: 2025년에 활용할 수 있는 12가지 MCP 서버
ByteByteGo Technical Interview Prep Kit
기술 인터뷰 종합 준비 키트가 출시되었습니다. 모든 도서를 ByteByteGo 웹사이트에서 확인할 수 있습니다.

구성 내용:
-
System Design Interview
-
Coding Interview Patterns
-
Object-Oriented Design Interview
-
How to Write a Good Resume
-
Behavioral Interview (출시 예정)
-
Machine Learning System Design Interview
-
Generative AI System Design Interview
-
Mobile System Design Interview
-
추가 콘텐츠 지속 업데이트
이번 주 시스템 설계 복습:
-
System Design Interview – BIGGEST Mistakes to Avoid (Youtube 영상)
-
12 MCP Servers You Can Use in 2025
-
MCP Versus A2A Protocol
-
How can Cache Systems go wrong?
-
8 System Design Concepts Explained in 1 Diagram
-
SPONSOR US
System Design Interview – BIGGEST Mistakes to Avoid
2025년에 활용할 수 있는 12가지 MCP 서버

MCP(Model Context Protocol)는 AI 모델, 특히 LLM이 외부 데이터 소스, 도구, 서비스와 상호작용하는 방식을 단순화하는 오픈 표준입니다. MCP 서버는 AI 모델과 외부 도구 사이의 브릿지 역할을 합니다. 주요 MCP 서버들을 소개합니다:
-
File System MCP Server LLM이 로컬 파일 시스템에 직접 접근하여 파일 읽기, 쓰기, 디렉토리 생성을 할 수 있게 합니다.
-
GitHub MCP Server Claude를 GitHub 저장소에 연결하여 파일 업데이트와 코드 검색을 가능하게 합니다.
-
Slack MCP Server Slack API용 MCP 서버로, Claude가 Slack 워크스페이스와 상호작용할 수 있게 합니다.
-
Google Maps MCP Server Google Maps API용 MCP 서버입니다.
-
Docker MCP Server Docker와 통합하여 컨테이너, 이미지, 볼륨, 네트워크를 관리합니다.
-
Brave MCP Server Brave의 Search API를 사용한 웹 및 로컬 검색 기능을 제공합니다.
-
PostgreSQL MCP Server LLM이 데이터베이스 스키마를 검사하고 읽기 전용 쿼리를 실행할 수 있게 하는 MCP 서버입니다.
-
Google Drive MCP Server Google Drive와 통합하여 파일 읽기 및 검색을 가능하게 하는 MCP 서버입니다.
-
Redis MCP Server Redis 데이터베이스 접근을 제공하는 MCP 서버입니다.
-
Notion MCP Server Notion API를 위한 MCP 서버 구현입니다.
-
Stripe MCP Server Stripe API와 상호작용하기 위한 MCP 서버입니다.
-
Perplexity MCP Server Perplexity의 Sonar API에 연결하여 실시간 검색을 제공하는 MCP 서버입니다.
Over to you: 이 목록에 추가하고 싶은 MCP 서버가 있으신가요?
MCP와 A2A 프로토콜 비교
Model Context Protocol(MCP)은 AI 에이전트를 데이터베이스, API, 파일과 같은 외부 데이터 소스에 MCP 서버를 통해 연결하여 실제 세계의 컨텍스트로 응답을 풍부하게 만듭니다.

Google의 Agent-to-Agent(A2A) 프로토콜은 AI 에이전트 간의 통신과 협업을 가능하게 하여, 작업 위임, 결과 공유, 상호 역량 강화를 지원합니다.
MCP와 A2A는 통합 아키텍처로 결합될 수 있습니다. 동작 방식은 다음과 같습니다:
-
각 AI 에이전트(GPT나 Claude와 함께 Langchain 같은 도구 사용)는 데이터 접근을 위해 MCP 서버를 통해 외부 도구에 연결됩니다.
-
외부 도구는 클라우드 API, 로컬 파일, 웹 검색, Slack과 같은 커뮤니케이션 플랫폼으로 구성될 수 있습니다.
-
동시에, AI 에이전트들은 A2A 프로토콜을 사용하여 서로 통신하며 액션을 조율하고, 중간 결과물을 공유하며, 복잡한 작업을 함께 해결합니다.
이 아키텍처는 풍부한 외부 컨텍스트(MCP를 통해)와 분산 에이전트 협업(A2A를 통해) 모두를 가능하게 합니다.
Over to you: MCP와 A2A 프로토콜의 기능을 이해하기 위해 무엇을 더 추가하시겠습니까?
Cache 시스템에서 발생할 수 있는 문제들
아래 다이어그램은 캐시에서 발생할 수 있는 4가지 대표적인 문제와 해결책을 보여줍니다.

-
Thunder herd problem 캐시의 많은 키가 동시에 만료될 때 발생합니다. 그러면 쿼리 요청이 데이터베이스를 직접 조회하게 되어 데이터베이스에 과부하가 걸립니다. 이 문제를 완화하는 두 가지 방법이 있습니다: 하나는 키들의 만료 시간을 동일하게 설정하지 않고 랜덤 값을 추가하는 것이고, 다른 하나는 핵심 비즈니스 데이터만 데이터베이스를 조회하게 하고 캐시가 복구될 때까지 비핵심 데이터의 데이터베이스 접근을 차단하는 것입니다.
-
Cache penetration 키가 캐시와 데이터베이스 어디에도 존재하지 않을 때 발생합니다. 애플리케이션이 캐시를 업데이트하기 위해 데이터베이스에서 관련 데이터를 가져올 수 없습니다. 이 문제는 캐시와 데이터베이스 모두에 큰 부담을 줍니다. 이를 해결하기 위한 두 가지 제안이 있습니다. 하나는 존재하지 않는 키에 대해 null 값을 캐싱하여 데이터베이스 조회를 방지하는 것입니다. 다른 하나는 Bloom 필터를 사용하여 먼저 키 존재 여부를 확인하고, 키가 없다면 데이터베이스 조회를 피하는 것입니다.
-
Cache breakdown Thunder herd 문제와 유사합니다. 핫 키가 만료될 때 발생합니다. 많은 요청이 데이터베이스를 직접 조회합니다. 핫 키가 쿼리의 80%를 차지하므로, 이런 키들에는 만료 시간을 설정하지 않습니다.
-
Cache crash 캐시가 다운되어 모든 요청이 데이터베이스로 가는 경우입니다. 이 문제를 해결하는 두 가지 방법이 있습니다. 하나는 서킷 브레이커를 설정하여 캐시가 다운되면 애플리케이션 서비스가 캐시나 데이터베이스에 접근하지 못하게 하는 것입니다. 다른 하나는 캐시 클러스터를 구성하여 캐시 가용성을 높이는 것입니다.
Over to you: 프로덕션 환경에서 이런 문제들을 겪어보신 적이 있으신가요?
1개 다이어그램으로 설명하는 8가지 시스템 설계 개념

비기능 요구사항(NFR)은 시스템이 실제 환경에서 안정적으로 수행되도록 보장하는 품질 속성을 정의합니다. 구현 접근 방식과 함께 주요 NFR들을 소개합니다:
-
Load Balancer를 통한 Availability Availability는 시스템이 항상 운영되고 사용자가 접근 가능한 상태를 유지하는 것을 보장합니다. Load balancer를 사용하면 트래픽이 여러 서비스 인스턴스에 분산되어 단일 장애 지점을 제거합니다.
-
CDN을 통한 Latency Latency는 사용자 요청에 대한 시스템 응답의 시간 지연을 의미합니다. CDN은 콘텐츠를 사용자와 가까운 위치에 캐싱하여 latency를 줄입니다.
-
Replication을 통한 Scalability Scalability는 리소스를 추가하여 증가된 부하를 처리하는 시스템의 능력입니다. Replication은 데이터를 여러 노드에 분산하여 더 높은 throughput과 워크로드를 가능하게 합니다.
-
Transaction Log를 통한 Durability Durability는 데이터가 커밋되면 장애가 발생하더라도 안전하게 유지됨을 보장합니다. Transaction log는 모든 작업을 영구 저장하여 장애 후 시스템 상태를 재구성할 수 있게 합니다.
-
Eventual Consistency를 통한 Consistency Consistency는 모든 사용자가 동일한 데이터를 보는 것을 의미합니다. Eventual consistency는 일시적인 차이를 허용하지만, 시간이 지나면서 레플리카들을 일관된 상태로 동기화합니다.
-
Loose Coupling과 High Cohesion을 통한 Modularity Modularity는 잘 분리되고 자체 완결적인 컴포넌트로 시스템을 구축하는 것을 촉진합니다. Loose coupling과 high cohesion이 이를 달성하는 데 도움을 줍니다.
-
Configurability Configurability는 핵심 로직을 변경하지 않고도 시스템을 쉽게 조정하거나 수정할 수 있게 합니다. Configuration-as-Code는 버전 관리되는 스크립트로 인프라와 앱 설정을 관리합니다.
-
Message Queue를 통한 Resiliency Resiliency는 장애에서 복구하고 원활하게 운영을 계속하는 시스템의 능력입니다. Message queue는 컴포넌트를 분리하고 작업을 버퍼링하여 재시도를 가능하게 합니다.
Over to you: 이 목록에 추가할 다른 NFR이나 전략이 있으신가요?
Related Articles
Thank you for reading.