API는 현대 소프트웨어 개발에서 핵심적인 역할을 합니다. 이번 글에서는 YouTube 강의 「API 설계 및 아키텍처 – 백엔드 엔지니어링 소개(1시간)」의 주요 내용을 정리하여, API의 개념부터 REST API 설계, 다양한 API 유형, 그리고 백엔드 아키텍처의 기초까지 차근차근 살펴보겠습니다.
1. API란 무엇인가?
API (Application Programming Interface)는 애플리케이션 간 상호작용을 가능하게 하는 인터페이스입니다.
앱이 직접 데이터베이스에 접근하는 대신, 특정 동작(GET, POST, DELETE 등)만 노출하여 안전하게 데이터를 주고받을 수 있습니다.
예: 캘린더 앱이 Google Maps API를 활용해 “약속 장소까지 걸리는 시간”을 가져오는 경우.
2. API의 주요 유형
1. REST API (Representational State Transfer)
– HTTP 기반, JSON 형식 데이터 사용
– 가장 널리 쓰이며 초보자에게 적합
2. SOAP API
– XML 기반, 주로 레거시 시스템에서 사용
– 복잡하지만 엔터프라이즈 환경에서 종종 필요
3. GraphQL
– 단일 엔드포인트에서 원하는 데이터만 쿼리
– REST보다 효율적인 데이터 전송 가능
4. gRPC (Google Remote Procedure Call)
– Protocol Buffers(ProtoBuf) 사용
– 마이크로서비스 간 고속 통신에 적합
5. WebSockets
– 양방향 통신 가능
– 실시간 채팅, 알림 서비스에 활용
3. REST API 설계 원칙

REST API는 HTTP 프로토콜을 기반으로 하며, 리소스를 중심으로 설계합니다.
메서드:
– GET → 데이터 조회
– POST → 새 데이터 생성
– PUT → 전체 데이터 수정
– PATCH → 일부 데이터 수정
– DELETE → 데이터 삭제
엔드포인트 예시 (댓글 API):
– GET /posts/{id}/comments → 특정 게시물의 댓글 조회
– POST /posts/{id}/comments → 댓글 작성
– GET /comments/{id} → 특정 댓글 조회
– PUT /comments/{id} → 댓글 전체 수정
– PATCH /comments/{id} → 댓글 부분 수정
– DELETE /comments/{id} → 댓글 삭제
4. 데이터 전달 방식
– Path Parameter (/comments/{id}) → 특정 리소스 식별
– Query Parameter (?postId=123&sort=asc) → 데이터 필터링/정렬
– Request Body → 민감 정보(비밀번호, 회원가입 등) 전달 시 사용
보안상 비밀번호 같은 민감한 데이터는 절대 URL에 포함하지 않고 Body에 담아야 합니다.
5. API 응답 (Status Code)
– 200번대: 성공 (예: 200 OK, 201 Created)
– 300번대: 리다이렉션
– 400번대: 클라이언트 오류 (예: 404 Not Found, 401 Unauthorized)
– 500번대: 서버 오류
6. API 아키텍처와 확장성
– 중요 개념: 인증(Authentication), 버저닝(Versioning), 페이지네이션(Pagination)
– 확장 가능한 API를 설계하려면 마이크로서비스 아키텍처와 같은 구조적 접근이 필요
– 다양한 API 설계 방식(GraphQL, gRPC, WebSocket)을 상황에 맞게 선택
마무리
이번 강의에서는 API의 기초부터 RESTful 설계 원칙, 다양한 API 유형, 그리고 백엔드 아키텍처 개념까지 다루었습니다. API는 단순한 데이터 통신 수단을 넘어 애플리케이션 확장성과 유지보수성을 결정하는 중요한 요소입니다. 앞으로 더 깊은 내용(상태 코드, 인증, 문서화, 스케일링 등)을 학습하면서 백엔드 엔지니어링 역량을 키워 나갈 수 있습니다.