API(Application Programming Interface)란?
API는 응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다. 인터페이스는 Request-Response를 통해 두 애플리케이션이 서로 통신하는 방법을 정의하며, API 문서에 개발자가 Request-Response를 구성하는 방법에 대한 정보가 있다.
API 역할
서버와 데이터베이스의 출입구
API는 서버와 데이터베이스에 대한 출입구 역할을 하며, 허용된 사람에게만 접근성을 부여한다. 이를 통해 데이터베이스의 정보들을 보호할 수 있다.
원활한 통신
API는 애플리케이션과 기기가 데이터를 원활하게 주고받을 수 있도록 돕는 역할을 한다.
접속 표준화
API는 모든 접속을 표준화하기 때문에 운영체제, 기기 등에 관계없이 누구나 동일한 액세스를 얻을 수 있다.
API 유형
Private API
Private API는 내부 API로 기업 내부에 있으며, 비지니스 내에서 시스템과 데이터를 연결하는 데 사용된다. 회사 개발자가 자체 제품과 서비스를 개선하기 위해 내부적으로 발행한다. 따라서 제 3자에게 노출되지 않는 API이다.
Public API
Public API는 공개 API로 모두에게 공개되어 누구나 제한 없이 사용할 수 있다. API에 따라 비용이 있을 수 있다.
Partner API
Partner API는 기업이 데이터 공유에 동의하는 특정인만 사용할 수 있다. B2B에서 사용되는 편이며, 종종 파트너 회사 간의 소프트웨어를 통합하기 위해 사용된다.
API 예시
다양한 API가 존재하지만, 여기서는 웹 개발에 사용되는 REST API와 데이터를 수집하는데 사용할 수 있는 OPEN API에 대해 살펴보려고 한다.
REST(Representational State Transfer) API
REST
REST는 소프트웨어 프로그램 아키텍처의 형식이다. HTTP URI(Uniform Resource Identifier)을 통해 자원을 명시하고, HTTP Method(POST/GET/PUT/DELETE 등)을 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다. REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.
REST API
REST API란 REST의 원리를 따르는 API를 의미한다. 이를 올바르게 설계하기 위한 규칙은 다음과 같다.
- URI는 동사보다는 명사를, 대문자보다는 소문자를 사용하여야 한다.
- 마지막에 슬래시 (/)를 포함하지 않는다.
- 언더바(_) 대신 하이폰(-)을 사용한다.
- 파일확장자는 URI에 포함하지 않는다.
RESTful API
RESTful API란 REST의 원리를 따르는 시스템을 의미한다. 하지만 REST를 사용했다고 모두 RESTful 한 것은 아니다. 설계 규칙을 올바르게 지켜야 RESTful하다고 말할 수 있으며, 모든 CRUD 기능을 POST로 처리하는 API 혹은 URI 규칙을 올바르게 지키지 않은 API는 RESTful하지 못한 시스템이다.
Open API
Open API
Open API는 말 그대로 누구나 쓸 수 있도록 공개된 API를 말한다. 대표적으로 정부의 공공데이터포털을 통해 다양한 데이터를 API 형태로 무료 공개하고 있다. 지역별 코로나 발생현황, 서울시 따릉이 이용현황, 미세먼지 측정 정보 등 다양한 데이터를 전 국민이 자유롭게 가져다 사용할 수 있도록 하는 것이다. 뿐만 아니라 카카오, 네이버 등의 민간 기업도 자사가 제공하는 다양한 기능을 일반 사람도 무료로 사용할 수 있도록 API를 공개해 두었다.
Open API 사용
공공데이터포털의 Open API를 사용하는 방법은 다음과 같다.
- 공공데이터포털 접속 및 로그인
- 원하는 자료 검색
- 활용 신청 및 사용 문서 다운로드
- 개발 계정 신청
- 마이페이지 > 오픈 API > 개발계정 API Key 발급
- 문서 확인 및 데이터 요청 방식 숙지
참고링크
봐도봐도 모르겠는 API 개념 설명 (Application Programming Interface)
https://dev-dain.tistory.com/50
애플리케이션 프로그래밍 인터페이스(API)란 무엇인가요?
https://aws.amazon.com/ko/what-is/api/
API란? 비개발자가 알기 쉽게 설명해드립니다!
[네트워크] REST API란? REST, RESTful이란?
RESTful API 이란
https://velog.io/@somday/RESTful-API-%EC%9D%B4%EB%9E%80
[IT교양] 비전공자를 위한 API 이해하기 (feat. Open API, REST API)
https://enjoyinjoanne.tistory.com/56
공공데이터포털 OPEN API 사용하는 방법 (API키 발급 과정부터 개발 문서 확인, 자바코드로 Response 받아보기까지 example)
'Web' 카테고리의 다른 글
[Web] 웹 크롤링을 위한 Fiddler와 Postman 설치 및 사용법 (1) | 2024.09.25 |
---|---|
[Web] 데이터 수집을 위한 웹 크롤링 3가지 방법 (정적 vs 동적) (1) | 2024.09.13 |
[Web] Visual Studio Code에서 장고(Django) 사용 (0) | 2024.04.10 |
[Web] 장고(Django) 개발 환경 구축 (Windows) (0) | 2024.04.09 |
[Web/Python] 동적(Dynamic)/정적(Static) 수집 방법 비교 (2) | 2024.04.07 |