API: 두 판 사이의 차이

기술노트
편집 요약 없음
편집 요약 없음
1번째 줄: 1번째 줄:
# API란 무엇인가요?
<nowiki>#</nowiki> API란 무엇인가요?


## API(응용 프로그래밍 인터페이스)란?
<nowiki>##</nowiki> API(응용 프로그래밍 인터페이스)란?
 
API(Application Programming Interface)는 **소프트웨어 간의 상호 작용을 가능하게 하는 인터페이스**입니다.  


API(Application Programming Interface)는 **소프트웨어 간의 상호 작용을 가능하게 하는 인터페이스**입니다. 
즉, 한 프로그램이 다른 프로그램의 기능을 사용할 수 있도록 **미리 정해진 규칙과 방법을 제공하는 것**입니다.
즉, 한 프로그램이 다른 프로그램의 기능을 사용할 수 있도록 **미리 정해진 규칙과 방법을 제공하는 것**입니다.


### 📌 API를 쉽게 이해하기
<nowiki>###</nowiki> 📌 API를 쉽게 이해하기


API는 **식당에서 주문하는 과정**과 비슷합니다.
API는 **식당에서 주문하는 과정**과 비슷합니다.


- **메뉴판** → API 문서 (어떤 기능을 사용할 수 있는지 명시)
- **메뉴판** → API 문서 (어떤 기능을 사용할 수 있는지 명시)
- **손님(클라이언트)** → API를 호출하는 프로그램
- **손님(클라이언트)** → API를 호출하는 프로그램
- **웨이터(API 자체)** → 요청을 주방(서버)으로 전달
- **웨이터(API 자체)** → 요청을 주방(서버)으로 전달
- **주방(서버)** → 요청을 처리하고 결과를 반환
- **주방(서버)** → 요청을 처리하고 결과를 반환


손님(사용자)은 **주방 내부를 몰라도** 메뉴판을 보고 음식을 주문할 수 있습니다.
손님(사용자)은 **주방 내부를 몰라도** 메뉴판을 보고 음식을 주문할 수 있습니다.  
 
즉, API를 사용하면 **복잡한 내부 구조를 몰라도 필요한 기능을 가져다 쓸 수 있습니다.**
즉, API를 사용하면 **복잡한 내부 구조를 몰라도 필요한 기능을 가져다 쓸 수 있습니다.**


---
---


## API의 주요 특징
<nowiki>##</nowiki> API의 주요 특징


### 1️⃣ **재사용 가능**
<nowiki>###</nowiki> 1️⃣ **재사용 가능**


- 한 번 만든 기능을 여러 프로그램에서 사용할 수 있습니다.
- 한 번 만든 기능을 여러 프로그램에서 사용할 수 있습니다.
- 예: 로그인 API를 만들면 웹사이트와 모바일 앱에서 동일하게 사용할 수 있음.
- 예: 로그인 API를 만들면 웹사이트와 모바일 앱에서 동일하게 사용할 수 있음.


### 2️⃣ **표준화된 방식**
<nowiki>###</nowiki> 2️⃣ **표준화된 방식**


- API는 주로 **함수, 프로토콜, URL 요청 형식** 등의 형태로 제공됩니다.
- API는 주로 **함수, 프로토콜, URL 요청 형식** 등의 형태로 제공됩니다.
- 개발자가 정해진 방식대로 사용하면 원하는 기능을 호출할 수 있음.
- 개발자가 정해진 방식대로 사용하면 원하는 기능을 호출할 수 있음.


### 3️⃣ **보안성 유지**
<nowiki>###</nowiki> 3️⃣ **보안성 유지**


- 내부 시스템의 **세부 구현을 숨기고** API를 통해서만 접근 가능하도록 할 수 있습니다.
- 내부 시스템의 **세부 구현을 숨기고** API를 통해서만 접근 가능하도록 할 수 있습니다.
- 예: 은행 앱이 계좌 정보를 가져올 때, 내부 데이터베이스를 직접 조회하는 대신 API를 사용.
- 예: 은행 앱이 계좌 정보를 가져올 때, 내부 데이터베이스를 직접 조회하는 대신 API를 사용.


---
---


## API의 대표적인 종류
<nowiki>##</nowiki> API의 대표적인 종류


### ✅ **1. 웹 API**
<nowiki>###</nowiki> ✅ **1. 웹 API**
 
웹 기반에서 동작하는 API로, **클라이언트(웹, 앱)와 서버 간 데이터 교환**을 가능하게 합니다.  


웹 기반에서 동작하는 API로, **클라이언트(웹, 앱)와 서버 간 데이터 교환**을 가능하게 합니다. 
🔹 예: REST API, GraphQL API
🔹 예: REST API, GraphQL API


```
```
클라이언트 → [요청] → 서버(API) → [응답] → 클라이언트
클라이언트 → [요청] → 서버(API) → [응답] → 클라이언트
```
```


53번째 줄: 64번째 줄:


```
```
GET https://api.weather.com/data?city=Seoul
 
GET <nowiki>https://api.weather.com/data?city=Seoul</nowiki>
 
```
```


- 요청: 서울의 날씨
- 요청: 서울의 날씨
  데이터를 가져옴
 
  데이터를 가져옴
 
- 응답(JSON 예시):
- 응답(JSON 예시):


```json
```json
{
{
  "city": "Seoul",
 
  "temperature": "15°C",
  "city": "Seoul",
  "condition": "Sunny"
 
  "temperature": "15°C",
 
  "condition": "Sunny"
 
}
}
```
```


### ✅ **2. 운영체제(API)**
<nowiki>###</nowiki> ✅ **2. 운영체제(API)**
 
운영체제가 제공하는 API로, 프로그래머가 하드웨어 기능을 사용할 수 있도록 합니다.  


운영체제가 제공하는 API로, 프로그래머가 하드웨어 기능을 사용할 수 있도록 합니다. 
🔹 예: Windows API, Linux System Call
🔹 예: Windows API, Linux System Call


### ✅ **3. 라이브러리 API**
<nowiki>###</nowiki> ✅ **3. 라이브러리 API**
 
프로그래밍 언어에서 **반복적인 작업을 쉽게 처리할 수 있도록 제공하는 API**  


프로그래밍 언어에서 **반복적인 작업을 쉽게 처리할 수 있도록 제공하는 API** 
🔹 예: JavaScript의 `fetch()` 함수 (웹 요청), Python의 `math` 라이브러리
🔹 예: JavaScript의 `fetch()` 함수 (웹 요청), Python의 `math` 라이브러리


## API를 활용하는 실제 사례
<nowiki>##</nowiki> API를 활용하는 실제 사례
 
✅ **구글 지도 API** → 앱에서 지도 및 위치 정보 표시  
 
✅ **페이스북 로그인 API** → 웹사이트에서 페이스북 계정으로 로그인  


✅ **구글 지도 API** → 앱에서 지도 및 위치 정보 표시 
✅ **페이스북 로그인 API** → 웹사이트에서 페이스북 계정으로 로그인 
✅ **카카오톡 메시지 API** → 앱에서 카카오톡 메시지 전송
✅ **카카오톡 메시지 API** → 앱에서 카카오톡 메시지 전송


## 결론
<nowiki>##</nowiki> 결론


API는 **소프트웨어 간 연결을 위한 필수 도구**로, 개발자는 이를 이용해 **더 빠르고 효율적으로 기능을 구현**할 수 있습니다. 오늘날의 웹, 모바일 앱, 클라우드 서비스 등이 원활히 동작하는 **핵심 기술**이 바로 API입니다! 🚀
API는 **소프트웨어 간 연결을 위한 필수 도구**로, 개발자는 이를 이용해 **더 빠르고 효율적으로 기능을 구현**할 수 있습니다. 오늘날의 웹, 모바일 앱, 클라우드 서비스 등이 원활히 동작하는 **핵심 기술**이 바로 API입니다! 🚀


**💡 한마디로?** API는 **소프트웨어 간 "의사소통"을 위한 창구**입니다! 😊
<nowiki>**</nowiki>💡 한마디로?** API는 **소프트웨어 간 "의사소통"을 위한 창구**입니다! 😊
**

2025년 3월 3일 (월) 14:41 판

# API란 무엇인가요?

## API(응용 프로그래밍 인터페이스)란?

API(Application Programming Interface)는 **소프트웨어 간의 상호 작용을 가능하게 하는 인터페이스**입니다.  

즉, 한 프로그램이 다른 프로그램의 기능을 사용할 수 있도록 **미리 정해진 규칙과 방법을 제공하는 것**입니다.

### 📌 API를 쉽게 이해하기

API는 **식당에서 주문하는 과정**과 비슷합니다.

- **메뉴판** → API 문서 (어떤 기능을 사용할 수 있는지 명시)

- **손님(클라이언트)** → API를 호출하는 프로그램

- **웨이터(API 자체)** → 요청을 주방(서버)으로 전달

- **주방(서버)** → 요청을 처리하고 결과를 반환

손님(사용자)은 **주방 내부를 몰라도** 메뉴판을 보고 음식을 주문할 수 있습니다.  

즉, API를 사용하면 **복잡한 내부 구조를 몰라도 필요한 기능을 가져다 쓸 수 있습니다.**

---

## API의 주요 특징

### 1️⃣ **재사용 가능**

- 한 번 만든 기능을 여러 프로그램에서 사용할 수 있습니다.

- 예: 로그인 API를 만들면 웹사이트와 모바일 앱에서 동일하게 사용할 수 있음.

### 2️⃣ **표준화된 방식**

- API는 주로 **함수, 프로토콜, URL 요청 형식** 등의 형태로 제공됩니다.

- 개발자가 정해진 방식대로 사용하면 원하는 기능을 호출할 수 있음.

### 3️⃣ **보안성 유지**

- 내부 시스템의 **세부 구현을 숨기고** API를 통해서만 접근 가능하도록 할 수 있습니다.

- 예: 은행 앱이 계좌 정보를 가져올 때, 내부 데이터베이스를 직접 조회하는 대신 API를 사용.

---

## API의 대표적인 종류

### ✅ **1. 웹 API**

웹 기반에서 동작하는 API로, **클라이언트(웹, 앱)와 서버 간 데이터 교환**을 가능하게 합니다.  

🔹 예: REST API, GraphQL API

```

클라이언트 → [요청] → 서버(API) → [응답] → 클라이언트

```

✔ **예제:** **REST API를 사용한 날씨 정보 조회**

```

GET https://api.weather.com/data?city=Seoul

```

- 요청: 서울의 날씨

  데이터를 가져옴

- 응답(JSON 예시):

```json

{

  "city": "Seoul",

  "temperature": "15°C",

  "condition": "Sunny"

}

```

### ✅ **2. 운영체제(API)**

운영체제가 제공하는 API로, 프로그래머가 하드웨어 기능을 사용할 수 있도록 합니다.  

🔹 예: Windows API, Linux System Call

### ✅ **3. 라이브러리 API**

프로그래밍 언어에서 **반복적인 작업을 쉽게 처리할 수 있도록 제공하는 API**  

🔹 예: JavaScript의 `fetch()` 함수 (웹 요청), Python의 `math` 라이브러리

## API를 활용하는 실제 사례

✅ **구글 지도 API** → 앱에서 지도 및 위치 정보 표시  

✅ **페이스북 로그인 API** → 웹사이트에서 페이스북 계정으로 로그인  

✅ **카카오톡 메시지 API** → 앱에서 카카오톡 메시지 전송

## 결론

API는 **소프트웨어 간 연결을 위한 필수 도구**로, 개발자는 이를 이용해 **더 빠르고 효율적으로 기능을 구현**할 수 있습니다. 오늘날의 웹, 모바일 앱, 클라우드 서비스 등이 원활히 동작하는 **핵심 기술**이 바로 API입니다! 🚀

**💡 한마디로?** API는 **소프트웨어 간 "의사소통"을 위한 창구**입니다! 😊