Files
2nd/10_Wiki/Topics/API_First_Architecture.md
T

45 lines
2.7 KiB
Markdown

---
id: P-REINFORCE-WIKI-ARCH-API-FIRST
title: "API 우선 아키텍처 (API-First Architecture)"
category: Dev
status: verified
canonical_id: ""
aliases: ["API-First", "계약 주도 개발", "API-Centric"]
duplicate_of: ""
source_trust_level: A
confidence_score: 1.0
tags: ["Architecture", "API_First", "OpenAPI", "Contract_Driven", "Collaboration"]
raw_sources: ["Datacollector_Export_2026-05-02"]
last_reinforced: 2026-05-02
github_commit: ""
---
# [[API 우선 아키텍처 (API-First Architecture)]]
## 1. 개요
API-First Architecture는 애플리케이션의 인터페이스(API)를 최우선 제품으로 간주하고 설계를 시작하는 방식이다. 비즈니스 로직 구현 이전에 API 명세를 정의하고 합의함으로써, 시스템 통합의 중심점을 확립하고 다수의 팀이 병렬로 개발할 수 있는 토대를 제공한다.
## 2. 핵심 원칙
- **계약 주도 개발 (Contract-Driven)**: OpenAPI(Swagger)나 AsyncAPI 등을 통해 엔드포인트, 데이터 모델, 인증 방식을 상세히 정의한 '계약'을 단일 진실 공급원(SSOT)으로 삼음.
- **병렬 개발 가능성**: 명확한 API 계약 덕분에 백엔드 구현과 무관하게 프론트엔드는 모킹(Mocking) 서버를 활용해 UI 구축을 동시에 진행 가능.
- **자동화 중심**: 정의된 명세서로부터 서버 스텁(Stub), 클라이언트 SDK, 대화형 문서를 자동 생성하여 수동 작업 최소화.
## 3. 실전 적용 가치
- **일관된 클라이언트 경험**: 웹, 모바일, 서드파티 등 모든 소비자에게 동일한 예측 가능한 인터페이스 제공.
- **온보딩 가속**: 신규 개발자가 상세 코드를 읽기 전, API 명세를 통해 시스템의 기능 경계와 데이터 흐름을 하향식(Top-down)으로 파악 가능.
- **재사용성 향상**: API 중심 설계를 통해 기능의 중복을 방지하고 서비스 간 재사용 가능한 통신 모델 구축.
## 4. 트레이드오프
- **장점**: 개발 생산성 향상, 시스템 결합도 완화, 문서화 품질 보장.
- **단점**: 초기 설계 단계에서의 높은 엄격함 요구, API 명세 관리 도구 및 거버넌스 유지 비용.
## 5. 지식 연결 (Related)
- [[Microservices_Architecture]]: 각 서비스 간의 통신을 정의하는 핵심 전략.
- [[Domain_Driven_Design]]: 유비쿼터스 언어를 API 설계(엔드포인트 명명 등)에 반영하는 방법.
- [[Architectural_Drift_Prevention]]: 코드 구현이 API 명세와 멀어지는 것을 방지하는 기법.
## 🧪 검증 상태 (Validation)
- **정보 상태**: 검증 완료 (Verified)
- **출처 신뢰도**: A
- **검토 이유**: 협업 효율과 확장성을 위한 인터페이스 중심 설계 철학 정립.