ㅁAPI(Application Programming Interface): 소프트웨어 간의 상호작용을 위한 규칙과 프로토콜을 정의하는 것
API는 다른 소프트웨어 컴포넌트와의 데이터 교환 및 기능 호출을 가능하게 하여, 개발자가 기존의 기능을 재사용하거나 새로운 애플리케이션을 구축하는 데 도움을 준다. API는 주로 요청(request)과 응답(response)의 형태로 동작하며, 특정 규약에 따라 데이터나 기능을 제공한다. 이를 통해 애플리케이션 간 데이터 교환이나 서비스 이용이 원활해진다.
API는 일반적으로 다음과 같이 3가지로 나뉜다
- 웹 API: HTTP 프로토콜을 통해 웹 서비스와 상호작용하는 API로, 웹 기반 애플리케이션에서 주로 사용된다.
- 라이브러리 API: 특정 프로그래밍 언어로 작성된 라이브러리나 프레임워크가 제공하는 인터페이스로, 개발자가 해당 라이브러리를 활용하여 기능을 구현할 수 있게 한다.
- 운영체제 API: 운영체제가 제공하는 API로, 응용 프로그램이 하드웨어와 상호작용하거나 시스템 리소스를 사용할 수 있도록 해준다.
API는 기능의 재사용성을 높이고, 서로 다른 시스템 간의 통신을 원활하게 하여 소프트웨어 개발의 효율성을 크게 향상시킨다. 이를 통해 개발자는 복잡한 기능을 직접 구현할 필요 없이 API를 활용하여 원하는 기능을 손쉽게 통합할 수 있다.
그러면 RESTful API는 뭘까?
REST(REpresentational State Transfer)는 API 디자인의 한 형태로, HTTP 프로토콜을 기반으로 하여 웹 서비스를 구현하는 방식이다. RESTful API는 다음과 같은 원칙을 따른다.
[RESTful API 특징 6가지]
- 자원(Resource): RESTful API는 모든 데이터를 자원으로 정의한다. 따라서 각 자원은 모두 URI를 통해 식별되며, 클라이언트는 이 URI를 통해 자원에 접근할 수 있다. 예를 들어, "/users"는 사용자 자원을 나타낼 수 있다.
- 표현(Representation): 클라이언트가 요청을 보내면, 서버는 자원의 상태를 표현하는 데이터를 응답(response)으로 보낸다. 이 데이터는 주로 JSON이나 XML 형식으로 전달된다.
- HTTP 메서드: RESTful API는 HTTP 메서드를 사용하여 자원에 대한 작업을 수행한다. 일반적으로 사용되는 메서드는 GET(조회), POST(생성), PUT(수정), DELETE(삭제) 이다. 각 메서드는 특정 작업을 수행하며, 자원의 상태를 변경하거나 데이터를 조회하는 데 사용된다. 이러한 메서드를 통해 자원의 생성, 조회, 업데이트, 삭제와 같은 CRUD 작업을 수행할 수 있다.
- 무상태성(Stateless): RESTful API는 클라이언트와 서버 간의 상호작용에서 상태 정보를 저장하지 않는다. 각 요청은 독립적이며, 필요한 모든 정보를 요청에 포함해야 한다. 이는 서버의 부하를 줄이고 확장성을 높인다.
- 캐시 가능성(Caching): RESTful API는 응답 데이터에 대한 캐시 기능을 제공하여, 성능을 향상시키고 대역폭을 절약할 수 있다. 클라이언트는 서버로부터 받은 데이터를 일정 기간 동안 저장하고, 이후 동일한 요청에 대해 서버에 다시 요청하지 않고 캐시된 데이터를 사용할 수 있다.
- 계층화된 시스템(Layered System): RESTful API는 여러 계층으로 구성될 수 있으며, 클라이언트는 서버와 직접 통신하지 않고도 중간 서버를 통해 간접적으로 자원에 접근할 수 있다. 이는 보안 및 확장성을 강화하는 데 기여한다.
RESTful API는 웹 기반 애플리케이션에서 널리 사용되며, 다양한 플랫폼과 언어에서 쉽게 구현할 수 있는 장점이 있다. 이로 인해 API 생태계가 확장되고, 다양한 서비스 간의 연동이 용이해지는 것이다. RESTful API의 단순한 설계와 HTTP 표준을 기반으로 한 통신 방식 덕분에, 현대 소프트웨어 개발에서 중요한 역할을 하고 있다.
https://www.youtube.com/watch?v=fB3MB8TXNXM
https://www.youtube.com/watch?v=Nxi8Ur89Akw
(추가)
API 설계 스타일은 RESTful API만 있는 것이 아니다. 아래의 표를 참고하도록 하자.
'프레임워크 > 웹 지식' 카테고리의 다른 글
데이터 사전의 테이블 정의 (1) | 2024.10.05 |
---|---|
CRUD (1) | 2024.10.05 |
URI와 URL, URN 정확히 짚고 넘어가기 (2) | 2024.10.05 |
엔드포인트(Endpoint)에 대해서 (1) | 2024.10.05 |
사용자 경험(UX)에 대해서 (1) | 2024.10.05 |