[Web] API(Application Programming Interface) 개념과 활용

2024. 4. 13. 17:34·Web

API(Application Programming Interface)란?

API는 응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다. 인터페이스는 Request-Response를 통해 두 애플리케이션이 서로 통신하는 방법을 정의하며, API 문서에 개발자가 Request-Response를 구성하는 방법에 대한 정보가 있다.

API 역할

서버와 데이터베이스의 출입구

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를 의미한다. 이를 올바르게 설계하기 위한 규칙은 다음과 같다.

  1. URI는 동사보다는 명사를, 대문자보다는 소문자를 사용하여야 한다.
  2. 마지막에 슬래시 (/)를 포함하지 않는다.
  3. 언더바(_) 대신 하이폰(-)을 사용한다.
  4. 파일확장자는 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를 사용하는 방법은 다음과 같다.

  1. 공공데이터포털 접속 및 로그인
  2. 원하는 자료 검색
  3. 활용 신청 및 사용 문서 다운로드
  4. 개발 계정 신청
  5. 마이페이지 > 오픈 API > 개발계정 API Key 발급
  6. 문서 확인 및 데이터 요청 방식 숙지

참고링크

봐도봐도 모르겠는 API 개념 설명 (Application Programming Interface)

https://dev-dain.tistory.com/50

 

애플리케이션 프로그래밍 인터페이스(API)란 무엇인가요?

https://aws.amazon.com/ko/what-is/api/

 

API란? 비개발자가 알기 쉽게 설명해드립니다!

https://blog.wishket.com/api%EB%9E%80-%EC%89%BD%EA%B2%8C-%EC%84%A4%EB%AA%85-%EA%B7%B8%EB%A6%B0%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8/

 

[네트워크] REST API란? REST, RESTful이란?

https://khj93.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-REST-API%EB%9E%80-REST-RESTful%EC%9D%B4%EB%9E%80#google_vignette

 

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)

https://jeong-pro.tistory.com/143

'Web' 카테고리의 다른 글

[Web] 웹 크롤링을 위한 Fiddler와 Postman 설치 및 사용법  (1) 2024.09.25
[Web] 데이터 수집을 위한 웹 크롤링 3가지 방법 (정적 vs 동적)  (1) 2024.09.13
[Web] Visual Studio Code에서 장고(Django) 사용  (1) 2024.04.10
[Web] 장고(Django) 개발 환경 구축 (Windows)  (0) 2024.04.09
[Web/Python] 동적(Dynamic)/정적(Static) 수집 방법 비교  (2) 2024.04.07
'Web' 카테고리의 다른 글
  • [Web] 웹 크롤링을 위한 Fiddler와 Postman 설치 및 사용법
  • [Web] 데이터 수집을 위한 웹 크롤링 3가지 방법 (정적 vs 동적)
  • [Web] Visual Studio Code에서 장고(Django) 사용
  • [Web] 장고(Django) 개발 환경 구축 (Windows)
기억에 남는 블로그 닉네임
기억에 남는 블로그 닉네임
  • 기억에 남는 블로그 닉네임
    얕게, 깊게
    기억에 남는 블로그 닉네임
  • 전체
    오늘
    어제
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
    • 분류 전체보기
      • Data Engineering
        • Airflow
        • 빅데이터
        • 자동화
        • 기타
      • Infra
        • AWS
        • Terraform
        • [인프라 구축기] Terraform 활용 AWS ..
      • CS
        • 자료구조
        • 알고리즘
        • 네트워크
        • 데이터베이스
        • 이것이 취업을 위한 코딩 테스트다 with 파이썬
      • Python
      • Web
      • Git
      • 기타
        • 취업 & 진로
        • 회고록
        • 기타
      • 프로젝트 단위 공부
        • [부스트코스] DataLit : 데이터 다루기
        • [개인 프로젝트] 공모전 크롤링
        • [개인 프로젝트] FC Online 공식 경기 분..
        • 프로젝트 개선 방안
      • [프로그래머스] 데이터 엔지니어링 데브코스 3기
        • TIL(Today I Learn)
        • 숙제
        • 기타
      • 알고리즘 연습
        • 프로그래머스
        • 백준
  • 링크

    • 깃허브
    • 링크드인
  • 인기 글

  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
기억에 남는 블로그 닉네임
[Web] API(Application Programming Interface) 개념과 활용
상단으로

티스토리툴바