
웹 표준을 기반으로 하는 API 설계 원칙
웹개발을 시작하면서 가장 먼저 마주치는 개념이 HTTP와 RESTful API이다.
이 두 가지 기술이 웹에서 데이터를 주고 받는 기본적인 방법을 제공한다.
모든 웹 애플리케이션은 클라이언트와 서버 간의 통신을 필요로 하기 때문이다.
그렇다면 HTTP는 무엇일까?
HTTP(HyperText State Transfer Protocol)
웹 표준을 기반으로 서버와 클라이언트 사이의 상호 작용을 정의하는 방법
REST 원칙을 따르는 API는 HTPP 프로토콜을 사용하여 데이터를 주고 받으면서 웹개발에서 널리 사용된다.
REST(Representational State Transfer)
- URI를 통해 자원을 표시하고, HTTP Method를 이용하여 해당 자원의 행위를 규정하여 그 결과를 받는 것을 의미한다.
| 종류 | 내용 |
|---|---|
| 자원(Resource) | URI |
| 행위(Verb) | HTTP Method |
| 표현(Representations) | - |
REST의 6가지 핵심 원칙
1. 클라이언트-서버(Client-Server): 클라이언트와 서버의 역할을 명확히 분리하여 독립적으로 발전할 수 있게 합니다 (UI와 데이터 저장소 분리).
2. 무상태(Stateless): 서버는 클라이언트의 상태를 저장하지 않으며, 모든 요청은 필요한 모든 정보를 포함해야 합니다 (세션 정보 등 클라이언트 관리).
3. 캐시 가능성(Cacheable): 응답이 캐시 가능한지 아닌지를 명시하여 네트워크 트래픽을 줄이고 성능을 향상시킵니다.
4. 통일된 인터페이스(Uniform Interface): 자원 식별(URI), 표현(Representation), 메시지(메서드), 하이퍼미디어(HATEOAS)를 통해 일관된 방식으로 자원에 접근합니다.
5. 계층화된 시스템(Layered System): 프록시, 로드밸런서 등 중간 계층을 추가하여 보안, 확장성을 높일 수 있습니다.
6. 주문형 코드(Code on Demand, 선택 사항): 서버가 클라이언트에게 실행 가능한 코드를 전송할 수 있게 합니다 (예: JavaScript).
HTTP는 클라이언트와 서버 간의 통신을 위해 설계된 프로토콜이다.
클라이언트는 웹 브라우저와 같은 사용자 인터페이스를 의미하며,
서버는 웹페이지나 애플리케이션을 호스팅하는 시스템을 의미한다.
HTTP 통신은 요청과 응답의 형탤로 이루어지며 클라이언트가 서버에 특정 웹페이지나 데이터를 요청하면 서버는 이에 대한 응답을 클라이언트에 전송한다.
HTTP 요청에는 여러 가지 메소드가 있으며 각 메소드는 서버에 대한 다른 유형의 요청을 나타낸다.
EX) GET 메소드 - 데이터 요청 / POST 메소드 - 데이터를 서버에 제출 시
HTTP는 상태를 유지하지 않는 프로토콜이므로 각 요청은 독립적이며 서버는 이전 요청을 기억하지 않는다. 이렇기에 RESTful API와 같은 기술이 필요하다.
프로토콜(Protocol)
컴퓨터와 컴퓨터 사이, 또는 한 장치와 다른 장치 사이에서 데이터를
원활히 주고받기 위하여 약속한 여러 가지 규약
RESTful API는 웹 표준을 기반으로 하는 API 설계 원칙이다.
이는 자원의 표현을 통해 상태를 전달하는 방식으로 웹의 간단하고 직관적인 인터페이스를 제공한다.
REST 원칙에 따라 설계된 API는 HTTP 메소드를 사용하여 리소스에 대한 CRUD(Create, Read, Update, Delete) 작업을 수행한다.
이를 통해 웹 애플리케이션의 구조를 단순화하고 확장성과 유지 보수성을 향상시킬 수 있다.

예를 들어, 사용자 정보를 관리하는 웹 서비스에서는 다음과 같은 RESTful API를 구현할 수 있다.
GET /users - 사용자 목록 조회
POST /users - 새로운 사용자 생성
PUT /users - 사용자 정보 수정
DELETE /users/{id} - 사용자 삭제
이러한 API는 HTTP 메소드와 URI(Uniform Resource Identifier)를 조합하여 리소스에 대한 다양한 작업을 명확하게 표현한다.
RESTful API는 웹의 기본 원칙을 따르기 때문에 엡 애플리케이션의 통합과 상호 운용성을 쉽게 할 수 있다. 이는 웹 개발의 효율성을 크게 향상시킨다.
웹 개발에서 HTTP와 RESTful API는 데이터 통신과 서비스 아키텍쳐 설계의
기반이 된다. 웹 애플리케이션을 개발할 때 클라이언트와 서버 간의
통신을 위해 HTTP 요청을 구성하고 RESTful API 원칙에 따라 API를 설계한다.
이 과정에서 데이터 형식(JSON, XML 등)과 같은 상태 코드(200 OK, 404 NOT FOUND)의 올바른 사용이 중요하다.
또한, RESTful API를 통해 서버의 리소스를 효율적으로 관리하고 클라이언트에게 필요한 데이터만 제공하여 애플리케이션의 성능을 최적화할 수 있다.
이러한 기술들은 웹 개발의 표준이 되었기에 현대의 웹서비스는
대부분 HTTP와 RESTful API를 기반으로 구축된다.
따라서 이를 잘 이해하고 활용하는 것이 웹 개발의 역량을 강화하는 데 큰 도움이 될 것이다.