728x90
REST API란?
API (Application Programming Interface)
- 운영체제나 프로그래밍 언어가 제공하는 기능(파일 제어, 창 제어 등)을 제어할 수 있게 만든 인터페이스.
- 서로 다른 시스템 사이의 정보/신호 교환을 위한 접점 역할.
REST (Representational State Transfer)
- 월드 와이드 웹(WWW)과 같은 분산 하이퍼미디어 시스템을 위한 아키텍처 스타일.
- HTTP 기반으로 자원에 접근하는 방식을 정의.
REST의 구성 요소
1. 자원 (Resource)
- 서버에 존재하는 데이터의 총칭.
- 고유한 URI(URL)를 통해 식별됨.
- 클라이언트는 URI를 지정하여 CRUD 명령을 수행.
2. 행위 (Verb)
- 클라이언트가 HTTP Method (GET, POST, PUT, DELETE 등)를 통해 자원 조작.
3. 표현 (Representation)
- 서버는 JSON, XML 등의 포맷으로 응답 → 이를 '표현'이라 부름.
REST의 주요 특징
서버-클라이언트 구조 (Server-Client Architecture)
- 역할 분리 명확: 서버는 API 제공, 클라이언트는 사용자 처리.
무상태성 (Stateless)
- 각 요청은 독립적, 서버는 요청 간 상태를 저장하지 않음 → 구현이 단순하고 서버 부담 낮음.
캐시 가능 (Cacheable)
- HTTP 기반으로 웹 캐시 기능 활용 가능 → 성능 개선.
일관된 인터페이스 (Uniform Interface)
- 플랫폼/리소스 타입과 무관하게 동일한 요청 방식 사용 가능.
자체 표현 구조 (Self-Descriptiveness)
- 메시지(JSON/XML)가 자체적으로 의미를 설명함.
계층 구조 (Layered System)
- 클라이언트는 중간 서버 여부를 모름 → 보안/로드밸런싱 계층 추가 가능.
장점
- 별도 인프라 필요 없음 (HTTP 기반)
- 클라이언트/서버 완전 분리
- 플랫폼 독립성 확보 (브라우저, 모바일 등)
- 구조적이면서도 사용이 쉬움
단점
- 표준 부재: REST를 흉내만 낸 비정상 API 설계 발생
- HTTP Method 한계: CRUD만으로 복잡한 행위 표현 어려움
- RDBMS와 표현 방식 불일치 → NoSQL이 더 적합한 경우 많음
마무리
REST는 간단하면서도 확장성 있는 아키텍처입니다.
하지만 단순성 뒤에 숨어 있는 제약도 반드시 고려하여 사용해야 합니다.
반응형
'컴퓨터 공학 기초 > 네트워크' 카테고리의 다른 글
OSI 7계층 쉽게 이해하기 – 계층별 역할과 흐름 정리 (0) | 2024.03.05 |
---|---|
[네트워크 기초] 공인 IP, 사설 IP, localhost 완벽 정리 (0) | 2023.08.08 |