API(API, Application Programming Interface)는 둘 이상의 컴퓨터 프로그램이 서로 통신하는 방법이자
컴퓨터 사이에 있는 중계계층을 의미한다.
가령 A라는 컴퓨터가 요청을 하고 B라는 컴퓨터가 응답을 한다고 가정했을 때
어떻게 통신(HTTP, HTTPS 프로토콜)할 것 인지?,
어떠한 데이터형식(XML,JSON)으로 주고 받을 것 인지?,
어떠한 방식(GET, POST) 등에 대한 방법이 정의된 중계계층이다.
API의 작동방식
사용자가 브라우저를 통해 서버에 요청을 하게되면 API가 중계계층 역할을 하며 요청을 처리하는 것을 볼 수 있습니다.
직접 서버의 데이터베이스에 접근하는 것을 방지하기도 하는 것을 볼 수 있습니다.
API의 종류
- private : 내부적으로 사용됩니다. 주로 해시키를 하드코딩해놓고 이를 기반으로 서버와 서버간의 통신을합니다.
이는 비즈니스 파트너와도 사용될 수 있습니다. 비밀스럽게 해당 파트너와 해시키를 공유해 통신합니다.
- public : 모든 사람이 사용할 수 있습니다. 많은 트래픽을 방지하기 위해 하루 요청수의 제한, 계정당 몇개 등으로
관리합니다.
API의 장점
1. 필요한 서비스만 제공할 수 있습니다.
예를들어 DB설계구조나 테이블정보, 서버의 상수값 등을 드러내지않고 요청왔을 때 필요한 부분만 제공할 수 있습니다.
2. OPEN API를 활용하여 앱 개발 프로세스를 단순화시키고 시간과 비용을 절약할 수 있습니다.
ex) 네이버 로그인api, 날씨제공 api, 교통량 제공api 등
3. 내부 프로세스가 수정되었을 경우 사용자가 매번 업데이트를 하는 것이 아닌 불러온 API만 가져다 쓰기때문에
내부DB나 서버의 로직이 변경되어도 사용자가 앱을 업데이트하는 일은 줄어든다.
4. 제공자는 데이터를 한 곳에 모을 수 있습니다.
예를들어 책을 파는 쇼핑몰을 만들었다고 하면 해당 사이트에 방문하는 방문자, 어떤 특정한 것을 클릭하는
사용자에 대한 이벤트를 집계하고 싶을 때 해당 API를 만들고 이벤트가 발생하면 데이터를 특정한 곳에
저장하는 방식을 사용할 수 있습니다.
ex) 도서 베스트셀러, 자주 검색되는 키워드 등
API의 단점
1. API가 변경될 경우 기존 프로그램과의 호환성 문제가 발생할 수 있음.
2. 제공되는 API가 제한적인 경우 그 기능만 사용(추가 기능에 대한 제약이 발생)
3. 표준의 부재(공식화된 API 이외의 것들에 대한 표준화가 없어 관리가 어려움)
출처 - 인프런 강의(큰돌님의 cs지식의정석 중..)
'IT지식 > Computer Science' 카테고리의 다른 글
클라우드 컴퓨팅에 대해 알아보자. (0) | 2024.12.27 |
---|---|
클라우드란 무엇인가? (0) | 2024.12.27 |
XML이란? (0) | 2024.12.25 |
JSON이란? (1) | 2024.12.25 |
데이터베이스 인덱스(INDEX)란? (0) | 2024.12.24 |