
웹 서비스 개발 – API 개발 기초 – API 개념과 REST 아키텍처
안녕하세요! 😊
웹 개발을 시작하면서 가장 많이 듣는 단어 중 하나가 바로 **”API”**예요.
앱과 웹, 서버와 클라이언트가 서로 데이터를 주고받을 수 있도록 도와주는 소통의 다리라고 할 수 있어요.
이번 글에서는 API가 무엇인지, 그리고 요즘 대부분의 웹 서비스가 채택하고 있는 REST 아키텍처에 대해 알기 쉽게 풀어드릴게요!
API란 무엇인가요?
**API (Application Programming Interface)**는
서로 다른 소프트웨어끼리 **데이터나 기능을 주고받기 위한 약속(인터페이스)**입니다.
비유하자면,
“카페에서 커피를 주문할 때 바리스타에게 메뉴판을 보고 주문하는 것”과 같아요!
우리가 커피 종류(기능)를 골라 요청하면 바리스타(API)는 정확하게 만들어서 돌려주죠. ☕📋
예시
- 날씨 앱: 기상청 API를 통해 오늘 날씨를 받아옴
- 유튜브 앱: 영상 정보, 댓글, 좋아요 등 모두 API로 통신
- 쇼핑몰: 결제, 상품 검색, 주문 내역 조회 등 API로 처리
API의 기본 동작 구조
- 요청(Request): 사용자가 어떤 데이터를 요청하거나, 작업을 수행해달라고 요청
- 처리(Processing): 서버에서 요청받은 내용을 이해하고 처리
- 응답(Response): 결과를 사용자에게 전달 (보통 JSON 형식)
REST란 무엇인가요?
REST는 REpresentational State Transfer의 약자로
웹에서 자원을 다루기 위한 표준 아키텍처 스타일이에요.
REST의 핵심 개념
구성 요소 | 설명 |
---|---|
자원(Resource) | URL로 표현되는 대상 (예: /users , /products/3 ) |
행위(Method) | HTTP 메서드로 표현 (GET, POST, PUT, DELETE 등) |
표현(Representation) | JSON, XML 등 데이터 표현 방식 |
REST 아키텍처의 원칙 6가지
-
클라이언트-서버 구조
- 클라이언트는 UI, 서버는 데이터 관리
-
무상태성 (Stateless)
- 요청 간에 상태를 저장하지 않음 (요청마다 필요한 정보 포함)
-
캐시 가능(Cacheable)
- 응답은 캐시가 가능하도록 명시
-
계층화된 시스템
- 중간 서버(프록시, 로드밸런서)를 사용할 수 있음
-
일관된 인터페이스
- API는 동일한 규칙을 따름
-
요청에 따른 코드 실행 (선택 사항)
REST API 예시
작업 | HTTP Method | URL 예시 | 설명 |
---|---|---|---|
사용자 목록 조회 | GET | /users |
모든 사용자 조회 |
사용자 정보 조회 | GET | /users/5 |
ID 5번 사용자 조회 |
사용자 추가 | POST | /users |
새 사용자 등록 |
사용자 수정 | PUT | /users/5 |
ID 5번 사용자 수정 |
사용자 삭제 | DELETE | /users/5 |
ID 5번 사용자 삭제 |
REST는 URL은 자원, HTTP Method는 행위를 나타냅니다!
RESTful API란?
REST 원칙을 잘 지켜서 만든 API를 RESTful API라고 부릅니다.
예를 들어:
GET /products
→ 상품 목록 조회POST /products
→ 상품 등록GET /products/10
→ ID 10번 상품 보기
RESTful한 구조는 명확하고, 직관적이며, 재사용성이 좋습니다.
REST API의 장점
✅ 표준화된 구조: 누구나 쉽게 이해하고 사용할 수 있어요
✅ 유지보수 용이: 기능 추가나 변경이 간편
✅ 플랫폼 독립적: 웹, 앱, IoT 등 어디서든 사용 가능
✅ 확장성 우수: 마이크로서비스 등 다양한 구조에 유리
REST API의 응답 형식
보통 JSON 포맷으로 응답을 주고받습니다.
{
"id": 5,
"name": "홍길동",
"email": "gildong@example.com"
}
에러가 날 경우:
{
"error": true,
"message": "잘못된 요청입니다."
}
JSON은 가볍고, 구조가 명확해 다양한 언어에서 쉽게 사용 가능합니다.
REST 외의 다른 API 방식
방식 | 특징 |
---|---|
SOAP | XML 기반, 보안이 강화됨, 무겁고 복잡 |
GraphQL | 원하는 데이터만 요청 가능, 클라이언트 유연성 ↑ |
gRPC | 고속 통신, 이진 포맷 사용, 복잡한 구조 |
하지만 현재는 REST가 대부분의 웹 서비스 표준으로 자리잡았답니다!
REST API 설계 시 주의할 점 ✅
항목 | 주의사항 |
---|---|
URL | 동사 사용 X, 자원 중심 (/getUser ❌ → /users ✅) |
메서드 | GET은 데이터 조회만! POST/PUT/DELETE 구분 정확히 |
상태코드 | 200, 201, 404, 400, 500 등 상황에 맞게 응답 |
데이터 포맷 | JSON으로 통일하고, 일관된 구조 유지 |
인증 | 토큰 기반 인증 (JWT, OAuth 등) 적용 필요 |
마무리하며 😊
지금까지 API가 무엇인지, 그리고 RESTful API가 왜 중요한지를 함께 살펴보았습니다.
웹 개발자라면 반드시 이해하고, 능숙하게 다뤄야 할 핵심 개념이죠!
앞으로는 REST 아키텍처를 기반으로
실제 API를 어떻게 만들고, 테스트하고, 보안까지 챙기는지 하나씩 배워볼 예정이에요!
다음 시간에는 API 요청과 응답 처리 방법에 대해 자세히 알려드릴게요.
우리 모두 탄탄한 백엔드 개발자로 한 발짝 더 나아가 볼까요? 🚀💪
감사합니다~ 🙌✨