이종의 기기간 통신을 하는데 있는 인터페이스.
📌 API란?
**API (Application Programming Interface)**는
➡️ **응용 프로그램(Application) 간 데이터를 주고받을 수 있도록 해주는 인터페이스(Interface)**를 의미해.
즉, 서로 다른 소프트웨어가 소통할 수 있도록 만들어진 규칙과 도구의 집합이야.
📌 API의 역할
• 서로 다른 프로그램이 데이터를 주고받도록 도와줌.
• 복잡한 시스템의 내부 동작을 몰라도 필요한 기능만 사용할 수 있음.
• 개발자가 특정 기능을 쉽게 사용할 수 있도록 미리 정의된 규칙을 제공.
예를 들어, 우리가 날씨 앱에서 실시간 기온을 확인할 때
➡️ 날씨 데이터는 외부 API(기상청 API 등)에서 가져오는 거야.
📌 API 예제
📌 날씨 API 예제 (JSON 응답)
{
"city": "Seoul",
"temperature": "10°C",
"condition": "Sunny"
}
• 클라이언트(앱, 웹사이트)는 API에 **요청(Request)**을 보냄.
• API 서버는 날씨 데이터를 JSON 형식으로 **응답(Response)**함.
📌 API의 종류
1️⃣ 웹 API (REST API, GraphQL 등)
• 인터넷을 통해 데이터를 주고받는 API (예: OpenWeather, Twitter API)
• RESTful API 방식이 가장 많이 사용됨.
2️⃣ 라이브러리 API
• 개발자가 특정 기능을 쉽게 사용할 수 있도록 제공하는 API
• 예: Python의 math 라이브러리, React의 useState
3️⃣ 운영체제 API
• 운영체제(OS) 기능을 사용할 수 있도록 제공하는 API
• 예: Windows의 DirectX, macOS의 Metal
4️⃣ 하드웨어 API
• 하드웨어 장치(카메라, 마이크 등)를 제어하는 API
• 예: Android의 Camera API, iOS의 CoreBluetooth
📌 REST API 예제 (Node.js + Express)
사용자 목록을 조회하는 REST API 만들기
const express = require("express");
const app = express();
let users = [{ id: 1, name: "Alice" }, { id: 2, name: "Bob" }];
// 사용자 목록 조회 API (GET /users)
app.get("/users", (req, res) => {
res.json(users);
});
app.listen(3000, () => console.log("API 서버가 3000번 포트에서 실행 중!"));
📌 이제 /users 경로에 요청을 보내면 사용자 목록을 JSON으로 반환하는 API가 동작해! 🚀
📌 API의 장점
✅ 재사용성 → 같은 API를 여러 시스템에서 활용 가능
✅ 효율성 → 클라이언트-서버 간 데이터 교환 최적화
✅ 보안성 → 필요한 데이터만 제공 가능 (예: OAuth 인증 사용)
✅ 확장성 → 새로운 기능 추가가 쉬움
📌 API 요약
✅ API는 프로그램 간 소통을 위한 인터페이스
✅ 웹 API, 라이브러리 API, 운영체제 API 등 다양한 종류가 있음
✅ REST API는 가장 많이 사용되는 웹 API 방식
✅ JSON 형식으로 데이터를 주고받는 것이 일반적
'개발공부 > CS' 카테고리의 다른 글
가비지 컬렉터란? (0) | 2025.02.16 |
---|---|
Docker란? (0) | 2025.02.15 |
TDD: 테스트 주도 개발. (0) | 2025.02.15 |
RESTful API? (0) | 2025.02.15 |
OOP의 5가지 설계 원칙 (0) | 2025.02.15 |