이전 글에서 도메인 주소를 IP 주소로 변환해 주는 DNS란 무엇인가에 대해 알아보았습니다. 사용자가 도메인을 통해 웹서버에 접속하는 통로를 이해했다면, 이제 웹 브라우저와 서버, 혹은 서버와 서버가 데이터를 주고받는 표준 통신 규약인 REST API를 이해할 차례입니다.
현대 웹 애플리케이션과 모바일 앱 개발에서 데이터 교환의 표준으로 자리 잡은 REST API란 무엇인가, 그리고 핵심 요소인 RESTful의 특징과 주요 HTTP 메서드까지 구글 SEO 가이드라인에 맞추어 알기 쉽게 정리해 드립니다.
목차
1. REST API란 무엇인가? (개념 및 정의)
REST API란 무엇인가를 이해하기 위해 먼저 API와 REST의 용어를 분리해서 살펴보겠습니다.
- API (Application Programming Interface): 서로 다른 소프트웨어 애플리케이션이 데이터를 주고받으며 소통할 수 있도록 연결해 주는 인터페이스입니다.
- REST (Representational State Transfer): 자원(Resource)을 이름으로 구분하여 해당 자원의 상태(정보)를 주고받는 웹 아키텍처 스타일입니다.
따라서 REST API는 REST라는 아키텍처 규칙을 준수하여 만든 API를 의미하며, 웹의 기존 HTTP 프로토콜을 활용하여 데이터의 생성, 조회, 수정, 삭제를 수행합니다.
2. REST의 3가지 핵심 구성 요소
REST API는 다음과 같은 3가지 기본 요소로 명확하게 구성됩니다.
- 자원 (Resource / URI): 모든 데이터와 서비스를 고유한 URL(주소)로 식별합니다. (예:
/users,/posts/123) - 행위 (Verb / HTTP Method): 자원에 대한 작업(조회, 추가, 수정, 삭제)을 지정합니다. (GET, POST, PUT, DELETE)
- 표현 (Representation): 클라이언트와 서버가 실제로 주고받는 데이터 형태입니다. 최근에는 대부분 JSON 형태를 사용합니다.
3. 주요 HTTP 메서드 5가지 정리
REST API의 핵심은 HTTP 메서드를 사용하여 데이터에 대해 어떤 작업을 수행할지 명확히 나타내는 것입니다. 이를 흔히 데이터 관리의 기본 기능인 **CRUD(Create, Read, Update, Delete)**와 매핑하여 설명합니다.
| HTTP 메서드 | CRUD 매핑 | 역할 및 설명 |
|---|---|---|
| GET | Read | 지정한 URI의 자원(데이터)을 조회할 때 사용 (데이터 변경 없음) |
| POST | Create | 서버에 새로운 자원(데이터)을 생성할 때 사용 |
| PUT | Update | 지정한 자원의 전체를 수정 및 교체할 때 사용 |
| PATCH | Update | 지정한 자원의 일부 내용만 수정할 때 사용 |
| DELETE | Delete | 지정한 자원을 삭제할 때 사용 |
4. RESTful API의 특징과 설계 규칙
REST 아키텍처 원칙을 충실히 잘 지킨 API를 **’RESTful API’**라고 부릅니다. RESTful한 API를 설계하기 위한 핵심 규칙은 다음과 같습니다.
REST의 주요 특징
- 무상태성 (Stateless): 서버는 클라이언트의 상태 정보를 저장하지 않습니다. 각 요청은 독립적으로 처리되어 서버의 부담을 줄입니다.
- 클라이언트-서버 구조 (Client-Server): 데이터 처리(서버)와 사용자 인터페이스(클라이언트)를 명확히 분리하여 각각 독립적으로 발전할 수 있습니다.
- 캐시 가능 (Cacheable): HTTP의 기존 캐싱 기능을 활용할 수 있어 서버의 응답 속도와 효율성이 높아집니다.
URL 작성 시 지켜야 할 주요 규칙
- 동사 대신 명사를 사용합니다:
/get-user대신/users처럼 명사형 주소를 사용합니다. - 소문자를 사용하고 밑줄(_) 대신 하이픈(-)을 사용합니다: 가독성을 확보하고 표준 규격을 따릅니다.
- 마지막에 슬래시(/)를 포함하지 않습니다: 깔끔한 URL 구조를 유지합니다.
5. 결론 및 요약
웹 인프라 기술은 서로 밀접하게 연결되어 작동합니다.
- 웹서버와 WAS: 웹 애플리케이션의 구동 환경 제공
- HTTP HTTPS 차이점: 데이터 전달 채널의 보안성 확보
- DNS란 무엇인가: 도메인 이름을 실제 서버 IP로 연결
- REST API: 클라이언트와 서버 간 데이터 소통의 표준 규격
REST API란 무엇인가를 이해하는 것은 프론트엔드와 백엔드 개발자 간의 원활한 소통은 물론, 웹 기술 전체의 데이터 흐름을 파악하는 데 필수적인 기초가 됩니다.
다음 글에서는 웹 브라우저에서 스크립트로 다른 도메인의 자원을 요청할 때 자주 발생하는 **CORS 에러란 무엇인가?**와 해결 방법에 대해 알아보겠습니다.