API(Application Programming Interface)란?
프로그램 간 상호 작용을 가능하게 하는 인터페이스(중간 매개체)이다. 쉽게 말해, 프로그램이나 서비스가 다른 프로그램과 데이터를 정확하게 주고받을 수 있도록 정해진 규칙과 방법을 제공하는 것입니다.
API의 기본 개념
API는 소프트웨어나 서비스가 서로 데이터를 주고받을 수 있도록 도와주는 규칙입니다.
예를 들어, 우리가 스마트폰에서 날씨 앱을 실행하면,
1. 앱은 날씨 정보를 제공하는 서버에 요청을 보냅니다. (Reqeust)
2. 서버는 요청을 처리한 후 현재 날씨 정보를 응답으로 보냅니다. (Response)
이 과정에서 앱과 서버가 서로 정보를 주고받는 방식이 API입니다.
※ 설명이 추상적이기 때문에, 추가 설명은 아래의 REST API를 통해서 설명한다.
API의 종류
1. 웹 API (REST API & SOAP API)
- 웹 서비스를 제공하는 API로, HTTP 요청을 통해 데이터를 주고받는 방식이다.
- 웹 API를 사용하면 다른 웹사이트나 앱에서도 데이터를 가져오거나 보낼 수 있다.
📌 REST API (대표적인 웹 API 방식)
- REST(Representational State Transfer) 원칙을 따르는 API입니다.
- HTTP 요청 메서드를 활용하여 데이터를 주고받는다.
- GET → 데이터 조회
- POST → 데이터 생성
- PUT → 데이터 수정
- DELETE → 데이터 삭제
GET https://api.example.com/users/1 → ID가 1인 사용자 정보 조회 요청
POST https://api.example.com/users → 새로운 사용자 등록 요청
📌 SOAP API
- REST보다 복잡한 구조로, XML 형식(마크언 언어, 태그 사용)을 사용하여 데이터를 주고받습니다.
- 은행, 금융 서비스와 같은 보안이 중요한 서비스에서 사용됩니다.
2. 운영체제 API
- 운영체제(OS)가 제공하는 기능을 활용할 수 있도록 만든 API입니다.
- 예: Windows API, macOS API, Linux API 등
3. 라이브러리 API
- 특정 프로그래밍 언어나 프레임워크에서 제공하는 기능을 사용할 수 있도록 만든 API입니다.
- 예: TensorFlow API, Mediapipe API
4. 하드웨어 API
- 소프트웨어가 하드웨어 기능을 제어할 수 있도록 제공하는 API입니다.
- 예: 카메라 API, GPS API, Bluetooth API 등
API의 동작 방식 (REST API 예제)
예를 들어, 사용자가 날씨 정보를 요청하는 경우
1. 날씨 서버는 미리 특정 URL에 대한 처리 방법을 코드로 설정(API)해 놓았다.
app.get('/seoul', function (req, res) { -> 해당 URL로 GET 요청이 들어올 시 실행
서울 날씨 전달~
}
app.get('/busan/', function (req, res) { -> 해당 URL로 GET 요청이 들어올 시 실행
부산 날씨 전달~
}
... (도쿄 날씨는 포함x)
만약, 미리 설정해놓지 않은 URL로 요청을 보낸 경우 서버는 해당 요청에 대해 응답을 할 수 없게 된다.
- GET https:://api.weather.com/tokyo -> 서버는 해당 요청에 대한 응답을 하지 못함.
2. 사용자가 날씨 앱을 실행하고 "서울 날씨 보기" 버튼을 클릭함
3. 날씨 앱이 API 요청을 보냄 (REST API 규칙에 따라 : HTTP 요청 메서드 + URL 형태)
GET https://api.weather.com/seoul
4. 해당 요청을 받아 처리한 후 응답을 보냄
{
"city": "Seoul",
"temperature": "15°C",
"condition": "Cloudy"
}
JSON, XML 형태로 받을 수 있다. (위 코드는 JSON 형태로 받은 것이다.)
5. 날씨 앱이 받은 데이터를 화면에 표시함 → 서울: 15°C, 흐림
6. 정리
쉽게 설명해서 가게 손님(Client)이 가게 운영자(Server)한테 주문 할 때, 메뉴판(API) 역할이라 보면 된다. 손님은 메뉴판에 없는 메뉴를 시키면 가게에서는 음식(응답)을 제공할 수 없는 것이고 해당 메뉴판에 있는 음식을 주문하면 음식(응답)을 제공받을 수 있는 것이다.
API의 장점
✅ 재사용성 → 한 번 만든 API를 여러 프로그램에서 활용할 수 있음
✅ 확장성 → 새로운 기능을 추가할 때 API를 활용하여 쉽게 확장 가능
✅ 보안성 → API를 통해서만 특정 데이터에 접근하도록 제한 가능
✅ 표준화 → 일관된 규칙을 제공하여 개발이 쉬워짐
API 사용처
- 로그인 시스템: 구글, 페이스북 로그인 API
- 결제 시스템: 카카오페이, 페이팔 API
- 지도 서비스: 구글 지도 API
- 음성 인식: 구글 음성 인식 API
- 이미지 처리: OpenCV, Mediapipe API
'CS' 카테고리의 다른 글
프론트엔드(Front-End)와 백엔드(Back-End)는 뭐가 다를까? (0) | 2025.04.19 |
---|---|
[CS] 스레드(Thread), 멀티 스레드(Multi-Thread) (0) | 2025.04.18 |
[CS] HTTP와 HTTPS란? (0) | 2025.04.04 |
[CS] Fetch란? (0) | 2025.04.03 |
[CS] 프레임워크와 라이브러리의 차이점 (0) | 2025.03.31 |