잘 알고 있다고 생각해도 API가 무엇이냐? 라는 질문을 받게 되면 뭔가 추상적이고 애매한 대답을 하게 되는 경우가 있습니다. 이번 포스팅에서는 직전의 포스팅에서 알아보았던 HTTP 메서드에서 더욱 확장하여 API가 무엇인지, REST 란 무엇인지, 그리고 RESTful API란 무엇인지 가볍게 개념을 잡아보도록 하겠습니다.
API 란?
API(Application Programming Interface)는 소프트웨어 간의 상호작용을 가능하게 하는 중간 매개체입니다. 쉽게 말해 레스토랑에서 손님이 음식을 주문할 때 메뉴판을 이용하는 것과 같습니다. 레스토랑 측은 미리 레시피를 개발하고 식재료들을 준비해 놓고 이를 메뉴판에 작성해 놓습니다. 손님은 레스토랑에 와서 메뉴판에 있는 음식을 주문하기만 하면 음식이 서빙됩니다. 이와 같이 클라이언트와 서버, 프로그램과 프로그램이 API를 통해 상호작용하게 됩니다. 다양한 형태의 API가 있지만 웹 개발에서 주로 사용되는 API는 RESTful API입니다.
REST
REST(Representational State Transfer)는 클라이언트와 서버 간의 상호작용에 대한 규칙, 원칙이라고 할 수 있습니다.
REST의 핵심 개념 중 하나는 클라이언트와 서버 간의 상태를 유지하지 않는 무상태성(stateless)입니다. 이는 서버가 클라이언트의 상태를 기억하지 않는다는 뜻입니다. 따라서 모든 요청은 URL에 상세히 나타나야 하며 목적이 분명히 드러나야 합니다.
"전에 시켰던 그거 저희 인원 수 만큼 주세요" (X)
"짜장면 두 그릇 곱빼기로 주세요" (O)
REST의 원칙들은 아래와 같습니다.
- Uniform interface(일관된 인터페이스) : 일관된 방식으로 자원에 접근할 수 있도록 인터페이스가 일관되어야 한다.
- Client–server 구조 : 클라이언트와 서버는 명확히 분리되어 있으며 독립적으로 동작한다.
- Stateless(무상태성) : 각 요청은 독립적으로 처리되며, 서버는 요청 간 상태를 저장하지 않는다.
- Cacheable(캐싱 가능) : 응답은 캐시할 수 있어야 한다.
- Layered system(다중 계층 시스템) : 요청은 중간 계층을 통해 전달될 수 있다.
- Code on demand(옵션)* : 서버는 클라이언트에서 실행할 수 있는 코드를 전달할 수 있다.
참고 : https://restfulapi.net/
RESTful API
앞서 설명한 REST 원칙을 따르며 적절한 HTTP 메서드를 활용한 API를 'RESTful 하다.' 합니다.
HTTP 메서드
RESTful API는 HTTP 메서드를 사용해 리소스를 처리합니다. 각 메서드는 특정 작업에 사용됩니다.
- GET: 서버에서 리소스를 조회
- POST: 서버에 새로운 리소스를 생성
- PUT: 기존 리소스를 업데이트
- DELETE: 리소스를 삭제
- PATCH: 리소스의 일부만 수정
- OPTIONS: 서버가 지원하는 메서드에 대한 정보를 조회
HTTP 메서드에 대한 더 자세한 정보는 이전 포스팅에 있습니다.
결론
RESTful API는 백엔드 개발자가 반드시 이해하고 활용할 수 있어야 하는 중요한 기술입니다. 이 포스팅을 통해 만약 누군가가 API가 무엇이냐 물었을 때, 자신있게 설명 할 수 있는 개발자가 되었으면 좋겠습니다.
'코딩' 카테고리의 다른 글
[Web 기술] WebSocket이란? (4) | 2024.10.11 |
---|---|
[HTTP] PATCH 그리고 OPTIONS (3) | 2024.09.13 |
[HTTP] PUT, DELETE 그리고 멱등성 (1) | 2024.09.05 |
[HTTP] GET 그리고 POST (0) | 2024.08.22 |
[GitHub] 초보 개발자를 위한 .gitignore 작성 요령과 팁 (0) | 2024.08.20 |