article thumbnail image
Published 2022. 7. 19. 01:38

API

APIλž€ Application Programming Interface의 μ•½μžλ‘œ 두 μ†Œν”„νŠΈμ›¨μ–΄μ˜ ꡬ성 μš”μ†Œκ°€ μ„œλ‘œ 톡신할 수 있게 ν•˜λŠ” μΌμ’…μ˜ μ€ν–‰μ˜ '창ꡬ' 역할을 ν•˜λŠ” λ©”μ»€λ‹ˆμ¦˜μž…λ‹ˆλ‹€.
API의 λ§₯λ½μ—μ„œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄λΌλŠ” λ‹¨μ–΄λŠ” κ³ μœ ν•œ κΈ°λŠ₯을 가진 λͺ¨λ“  μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. μΈν„°νŽ˜μ΄μŠ€λŠ” 두 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ°„μ˜ μ„œλΉ„μŠ€ 계약이라고 ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 계약은 μš”μ²­κ³Ό 응닡을 μ‚¬μš©ν•˜μ—¬ 두 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ„œλ‘œ ν†΅μ‹ ν•˜λŠ” 방법을 μ •μ˜ν•©λ‹ˆλ‹€. API λ¬Έμ„œμ—λŠ” κ°œλ°œμžκ°€ μ΄λŸ¬ν•œ μš”μ²­κ³Ό 응닡을 κ΅¬μ„±ν•˜λŠ” 방법에 λŒ€ν•œ 정보가 λ“€μ–΄ μžˆμŠ΅λ‹ˆλ‹€. 즉, μ†Œν”„νŠΈμ›¨μ–΄ κ°„ 톡신할 λ•Œ μΌμ’…μ˜ κ·œμ•½ λ‚΄μ§€λŠ” μ§€μΉ¨μž…λ‹ˆλ‹€.

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

SOAP API

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

RPC API

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

Websocket API

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

REST API

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

REST APIλž€?

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

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

WEB APIλž€?

μ›Ή API λ˜λŠ” μ›Ή μ„œλΉ„μŠ€ APIλŠ” μ›Ή μ„œλ²„μ™€ μ›Ή λΈŒλΌμš°μ € κ°„μ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 처리 μΈν„°νŽ˜μ΄μŠ€μž…λ‹ˆλ‹€. λͺ¨λ“  μ›Ή μ„œλΉ„μŠ€λŠ” APIμ΄μ§€λ§Œ λͺ¨λ“  APIκ°€ μ›Ή μ„œλΉ„μŠ€λŠ” μ•„λ‹™λ‹ˆλ‹€. REST APIλŠ” μœ„μ—μ„œ μ„€λͺ…ν•œ ν‘œμ€€ μ•„ν‚€ν…μ²˜ μŠ€νƒ€μΌμ„ μ‚¬μš©ν•˜λŠ” νŠΉμˆ˜ν•œ μœ ν˜•μ˜ μ›Ή APIμž…λ‹ˆλ‹€.

μ—­μ‚¬μ μœΌλ‘œ APIκ°€ μ›”λ“œ μ™€μ΄λ“œ μ›Ή 전에 λ§Œλ“€μ–΄μ‘ŒκΈ° λ•Œλ¬Έμ— Java API, μ„œλΉ„μŠ€ API λ“± API에 λŒ€ν•œ λ‹€μ–‘ν•œ μš©μ–΄κ°€ μ‘΄μž¬ν•©λ‹ˆλ‹€. μ΅œμ‹  μ›Ή APIλŠ” REST API이며 μš©μ–΄λŠ” μ„œλ‘œ λ°”κΏ” μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

REST API의 μž₯점

  1. 톡합
    APIλŠ” μƒˆλ‘œμš΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κΈ°μ‘΄ μ†Œν”„νŠΈμ›¨μ–΄ μ‹œμŠ€ν…œκ³Ό ν†΅ν•©ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. 그러면 각 κΈ°λŠ₯을 μ²˜μŒλΆ€ν„° μž‘μ„±ν•  ν•„μš”κ°€ μ—†κΈ° λ•Œλ¬Έμ— 개발 속도가 λΉ¨λΌμ§‘λ‹ˆλ‹€. APIλ₯Ό μ‚¬μš©ν•˜μ—¬ κΈ°μ‘΄ μ½”λ“œλ₯Ό ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  2. ν˜μ‹ 
    μƒˆλ‘œμš΄ μ•±μ˜ λ“±μž₯으둜 전체 산업이 λ°”λ€” 수 μžˆμŠ΅λ‹ˆλ‹€. 기업은 μ‹ μ†ν•˜κ²Œ λŒ€μ‘ν•˜κ³  ν˜μ‹ μ μΈ μ„œλΉ„μŠ€μ˜ μ‹ μ†ν•œ 배포λ₯Ό 지원해야 ν•©λ‹ˆλ‹€. 전체 μ½”λ“œλ₯Ό λ‹€μ‹œ μž‘μ„±ν•  ν•„μš” 없이 API μˆ˜μ€€μ—μ„œ λ³€κ²½ν•˜μ—¬ 이λ₯Ό μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  3. ν™•μž₯
    APIλŠ” 기업이 λ‹€μ–‘ν•œ ν”Œλž«νΌμ—μ„œ 고객의 μš”κ΅¬ 사항을 μΆ©μ‘±ν•  수 μžˆλŠ” κ³ μœ ν•œ 기회λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ 지도 APIλ₯Ό μ‚¬μš©ν•˜λ©΄ μ›Ή μ‚¬μ΄νŠΈ, Android, iOS 등을 톡해 지도 정보λ₯Ό 톡합할 수 μžˆμŠ΅λ‹ˆλ‹€. μ–΄λŠ κΈ°μ—…μ΄λ‚˜ 무료 λ˜λŠ” 유료 APIλ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚΄λΆ€ λ°μ΄ν„°λ² μ΄μŠ€μ— μœ μ‚¬ν•œ μ•‘μ„ΈμŠ€ κΆŒν•œμ„ λΆ€μ—¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  4. μœ μ§€ κ΄€λ¦¬μ˜ μš©μ΄μ„±
    APIλŠ” 두 μ‹œμŠ€ν…œ κ°„μ˜ κ²Œμ΄νŠΈμ›¨μ΄ 역할을 ν•©λ‹ˆλ‹€. APIκ°€ 영ν–₯을 받지 μ•Šλ„λ‘ 각 μ‹œμŠ€ν…œμ€ λ‚΄λΆ€μ μœΌλ‘œ λ³€κ²½ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ΄λ ‡κ²Œ ν•˜λ©΄ ν•œ μ‹œμŠ€ν…œμ˜ ν–₯ν›„ μ½”λ“œ 변경이 λ‹€λ₯Έ μ‹œμŠ€ν…œμ— 영ν–₯을 λ―ΈμΉ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

Reference

 

APIλž€ λ¬΄μ—‡μΈκ°€μš”? - API 초보자λ₯Ό μœ„ν•œ κ°€μ΄λ“œ - AWS

 

aws.amazon.com

 

'πŸ”₯ Front-End > Web' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[Web] λͺ¨λ…Έλ ˆν¬(Mono Repo)  (0) 2022.12.06
[Web] JWT  (0) 2022.07.19
λ³΅μ‚¬ν–ˆμŠ΅λ‹ˆλ‹€!