[πŸ₯ λ„€νŠΈμ›Œν¬] λ„€νŠΈμ›Œν¬ API(Aplication Programing Interface)

dsfasdΒ·2022λ…„ 10μ›” 2일
0

λ„€νŠΈμ›Œν¬

λͺ©λ‘ 보기
4/4

API의 ν•„μš”μ„± ?

μ„œλ²„μ™€ ν΄λΌμ΄μ–ΈνŠΈκ°€ μžˆλ‹€κ³  μƒκ°ν•΄λ³΄μž.

μ„œλ²„(server) λŠ” 이름 κ·ΈλŒ€λ‘œ 무언가λ₯Ό μ œκ³΅ν•΄ μ£ΌλŠ” 역할이닀.
μ„œλ²„λŠ” μ–΄λ–€ 정보λ₯Ό 가득 κ°–κ³  μžˆκΈ°μ— 정보λ₯Ό μ œκ³΅ν•΄ 쀄 수 μžˆλ‹€.

λ°˜λ©΄μ— ν΄λΌμ΄μ–ΈνŠΈ(client) λŠ” μš”μ²­ν•˜λŠ” 역할이닀.
ν•„μš”ν•œ 정보λ₯Ό μ„œλ²„μ— μš”μ²­ν•œλ‹€.

ν•˜μ§€λ§Œ ν΄λΌμ΄μ–ΈνŠΈλŠ” μ„œλ²„κ°€ μ–΄λ–€ 정보λ₯Ό κ°–κ³ μžˆλŠ”μ§€ μ•Œ 수 μ—†λ‹€.
λ”°λΌμ„œ μ›ν•˜λŠ” 데이터λ₯Ό μ œλŒ€λ‘œ μš”μ²­ν•  수 μ—†κ²Œ λœλ‹€.

❗️ λ”°λΌμ„œ μ„œλ²„λŠ” μΌμ’…μ˜ λ©”λ‰΄νŒμ„ ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ μ œκ³΅ν•˜μ—¬ μ˜¬λ°”λ₯΄κ²Œ μš”μ²­ν•  수 μžˆλ„λ‘ λ•λŠ”λ‹€.

μ΄λ•Œ API(Application Programming Interface)κ°€ λ©”λ‰΄νŒμ˜ κΈ°λŠ₯을 λ‹΄λ‹Ήν•œλ‹€κ³  μƒκ°ν•˜λ©΄ λœλ‹€.

μ„œλ²„λŠ” ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ λ¦¬μ†ŒμŠ€λ₯Ό 잘 ν™œμš©ν•  수 μžˆλ„λ‘ μΈν„°νŽ˜μ΄μŠ€(interface)λ₯Ό μ œκ³΅ν•΄ μ€˜μ•Ό ν•œλ‹€. 이것이 API의 역할인 μ…ˆμ΄λ‹€.

❔APIκ°€ μ–΄λ–€ λ°©μ‹μœΌλ‘œ λ™μž‘ν•˜λŠ”μ§€λŠ” μ „ν˜€ μ•Œ ν•„μš”κ°€ μ—†λ‹€.
μ–΄λ–»κ²Œ μ‚¬μš©ν•˜λŠ”μ§€ λ°©λ²•λ§Œ μ œλŒ€λ‘œ μ•Œλ©΄ λœλ‹€.

λ„€νŠΈμ›Œν¬μ—μ„œλ§Œ APIκ°€ μžˆλŠ” 것이 μ•„λ‹ˆλΌ, web API / window API λ“± μ’…λ₯˜κ°€ λ‹€μ–‘ν•˜λ‹€.


AWS 곡식 λ¬Έμ„œ - API

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

APIλž€ λ¬΄μ—‡μΈκ°€μš”?

APIλŠ” μ •μ˜ 및 ν”„λ‘œν† μ½œ 집합을 μ‚¬μš©ν•˜μ—¬ 두 μ†Œν”„νŠΈμ›¨μ–΄ ꡬ성 μš”μ†Œκ°€ μ„œλ‘œ 톡신할 수 있게 ν•˜λŠ” λ©”μ»€λ‹ˆμ¦˜μž…λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, κΈ°μƒμ²­μ˜ μ†Œν”„νŠΈμ›¨μ–΄ μ‹œμŠ€ν…œμ—λŠ” 일일 기상 데이터가 λ“€μ–΄ μžˆμŠ΅λ‹ˆλ‹€. νœ΄λŒ€ν°μ˜ 날씨 앱은 APIλ₯Ό 톡해 이 μ‹œμŠ€ν…œκ³Ό "λŒ€ν™”"ν•˜κ³  νœ΄λŒ€ν°μ— 맀일 μ΅œμ‹  날씨 정보λ₯Ό ν‘œμ‹œν•©λ‹ˆλ‹€.

APIλŠ” 무엇을 μ˜λ―Έν•˜λ‚˜μš”?

API의 λ§₯λ½μ—μ„œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄λΌλŠ” λ‹¨μ–΄λŠ” κ³ μœ ν•œ κΈ°λŠ₯을 가진 λͺ¨λ“  μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. μΈν„°νŽ˜μ΄μŠ€λŠ” 두 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ°„μ˜ μ„œλΉ„μŠ€ 계약이라고 ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 계약은 μš”μ²­κ³Ό 응닡을 μ‚¬μš©ν•˜μ—¬ 두 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ„œλ‘œ ν†΅μ‹ ν•˜λŠ” 방법을 μ •μ˜ν•©λ‹ˆλ‹€. API λ¬Έμ„œμ—λŠ” κ°œλ°œμžκ°€ μ΄λŸ¬ν•œ μš”μ²­κ³Ό 응닡을 κ΅¬μ„±ν•˜λŠ” 방법에 λŒ€ν•œ 정보가 λ“€μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

API의 λ„€ 가지 μž‘λ™ 방식

APIκ°€ μƒμ„±λœ μ‹œκΈ°μ™€ μ΄μœ μ— 따라 APIλŠ” λ„€ 가지 λ°©μ‹μœΌλ‘œ μž‘λ™ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

SOAP API (λ‹¨μˆœ 객체 μ ‘κ·Ό ν”„λ‘œν† μ½œ)

이 APIλŠ” λ‹¨μˆœ 객체 μ ‘κ·Ό ν”„λ‘œν† μ½œμ„ μ‚¬μš©ν•©λ‹ˆλ‹€. ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„λŠ” XML을 μ‚¬μš©ν•˜μ—¬ λ©”μ‹œμ§€λ₯Ό κ΅ν™˜ν•©λ‹ˆλ‹€. 과거에 더 많이 μ‚¬μš©λ˜μ—ˆμœΌλ©° μœ μ—°μ„±μ΄ λ–¨μ–΄μ§€λŠ” APIμž…λ‹ˆλ‹€.

RPC API (원격 ν”„λ‘œμ‹œμ € 호좜)

이 APIλ₯Ό 원격 ν”„λ‘œμ‹œμ € 호좜이라고 ν•©λ‹ˆλ‹€.
ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„μ—μ„œ ν•¨μˆ˜λ‚˜ ν”„λ‘œμ‹œμ €λ₯Ό μ™„λ£Œν•˜λ©΄ μ„œλ²„κ°€ 좜λ ₯을 ν΄λΌμ΄μ–ΈνŠΈλ‘œ λ‹€μ‹œ μ „μ†‘ν•©λ‹ˆλ‹€.

Websocket API

Websocket APIλŠ” JSON 객체λ₯Ό μ‚¬μš©ν•˜μ—¬ 데이터λ₯Ό μ „λ‹¬ν•˜λŠ” 또 λ‹€λ₯Έ μ΅œμ‹  μ›Ή API κ°œλ°œμž…λ‹ˆλ‹€. WebSocket APIλŠ” ν΄λΌμ΄μ–ΈνŠΈ μ•±κ³Ό μ„œλ²„ κ°„μ˜ μ–‘λ°©ν–₯ 톡신을 μ§€μ›ν•©λ‹ˆλ‹€. μ„œλ²„κ°€ μ—°κ²°λœ ν΄λΌμ΄μ–ΈνŠΈμ— 콜백 λ©”μ‹œμ§€λ₯Ό 전솑할 수 μžˆμ–΄ REST API보닀 νš¨μœ¨μ μž…λ‹ˆλ‹€.

REST API ( Representational State Transfer )

μ˜€λŠ˜λ‚  μ›Ήμ—μ„œ λ³Ό 수 μžˆλŠ” κ°€μž₯ 많이 μ‚¬μš©λ˜κ³  μœ μ—°ν•œ APIμž…λ‹ˆλ‹€. ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„μ˜ μš”μ²­μ„ λ°μ΄ν„°λ‘œ μ „μ†‘ν•©λ‹ˆλ‹€. μ„œλ²„κ°€ 이 ν΄λΌμ΄μ–ΈνŠΈ μž…λ ₯을 μ‚¬μš©ν•˜μ—¬ λ‚΄λΆ€ ν•¨μˆ˜λ₯Ό μ‹œμž‘ν•˜κ³  좜λ ₯ 데이터λ₯Ό λ‹€μ‹œ ν΄λΌμ΄μ–ΈνŠΈμ— λ°˜ν™˜ν•©λ‹ˆλ‹€.

RESTλŠ” Representational State Transfer의 μ€„μž„λ§μž…λ‹ˆλ‹€. RESTλŠ” ν΄λΌμ΄μ–ΈνŠΈκ°€ μ„œλ²„ 데이터에 μ•‘μ„ΈμŠ€ν•˜λŠ” 데 μ‚¬μš©ν•  수 μžˆλŠ” GET, PUT, DELETE λ“±μ˜ ν•¨μˆ˜ 집합을 μ •μ˜ν•©λ‹ˆλ‹€. ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„λŠ” HTTPλ₯Ό μ‚¬μš©ν•˜μ—¬ 데이터λ₯Ό κ΅ν™˜ν•©λ‹ˆλ‹€.

REST API의 주된 νŠΉμ§•μ€ λ¬΄μƒνƒœμž…λ‹ˆλ‹€. λ¬΄μƒνƒœλŠ” μ„œλ²„κ°€ μš”μ²­ 간에 ν΄λΌμ΄μ–ΈνŠΈ 데이터λ₯Ό μ €μž₯ν•˜μ§€ μ•ŠμŒμ„ μ˜λ―Έν•©λ‹ˆλ‹€. μ„œλ²„μ— λŒ€ν•œ ν΄λΌμ΄μ–ΈνŠΈ μš”μ²­μ€ μ›Ή μ‚¬μ΄νŠΈλ₯Ό λ°©λ¬Έν•˜κΈ° μœ„ν•΄ λΈŒλΌμš°μ €μ— μž…λ ₯ν•˜λŠ” URLκ³Ό μœ μ‚¬ν•©λ‹ˆλ‹€. μ„œλ²„μ˜ 응닡은 μ›Ή νŽ˜μ΄μ§€μ˜ 일반적인 κ·Έλž˜ν”½ λ Œλ”λ§μ΄ μ—†λŠ” 일반 λ°μ΄ν„°μž…λ‹ˆλ‹€.


profile
기둝을 μ •λ¦¬ν•˜λŠ” 곡간!

0개의 λŒ“κΈ€