1son 2023. 3. 3. 23:45

API(Application Programming Interface)๋Š” ๋‘˜ ์ด์ƒ์˜ ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ์ด

์„œ๋กœ ํ†ต์‹ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด์ž ์ปดํ“จํ„ฐ ์‚ฌ์ด์— ์žˆ๋Š” ์ค‘๊ณ„ ๊ณ„์ธต์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. 

 

 

์ปดํ“จํ„ฐ A์™€ ์ปดํ“จํ„ฐ B๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ํ†ต์‹ ํ•œ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ

 

A๊ฐ€ B์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•œ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ, 

B๊ฐ€ A์—๊ฒŒ ์ค„ API๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด ๋†“๋Š” ๊ฒƒ

 

1.

์ด API์—๋Š” ๋ญ๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ๋ƒ, 

ํ†ต์‹  ๋ฐฉ๋ฒ• : Http / Https

๋ฐฉ๋ฒ• : Get, Post

๋ฐ์ดํ„ฐ : XML, JSON

์ด๋Ÿฐ ๋ฐฉ๋ฒ•๋“ค์ด ๋“ค์–ด๊ฐ€ ์žˆ๊ณ  

 

2.

์ปดํ“จํ„ฐ์™€ ์ปดํ“จํ„ฐ ์‚ฌ์ด ์ค‘๊ณ„ ๊ณ„์ธต ์—ญํ• ์„ ํ•œ๋‹ค. _ ๋‹ค๋ฆฌ๊ฐ™์€ ์—ญํ• 

 

 

-> ์ด๊ฒŒ ๋ฐ”๋กœ API

 

 


 

์˜ˆ๋ฅผ ๋“ค์–ด์„œ

1. ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค UI๋ฅผ ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ์Šต๋‹ˆ๋‹ค 

UI๋Š” ์ปดํ“จํ„ฐ์™€ ์‚ฌ๋žŒ์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. 

 

์‚ผ์„ฑ ์Šค๋งˆํŠธํฐ์„ ๋ณด์„ธ์š”,

์•ฑ์„ ์‹คํ–‰์‹œํ‚ค๋ ค๋ฉด ํด๋ฆญ์„ ํ•ด์•ผํ•˜๊ณ  ์ด๋Ÿฐ๊ฑฐ ์žˆ์ž–์•„์š” 

์ด๊ฒŒ ํ•ธ๋“œํฐ๊ณผ ์‚ฌ๋žŒ์„ ์—ฐ๊ฒฐํ•œ๋‹ค๋Š” ๊ฒƒ

 

๋˜ ๋‹ค๋ฅธ ์˜ˆ์‹œ 

2. ๋„ค์ด๋ฒ„ ์›นํˆฐ

'๊ด‘๋งˆํšŒ๊ท€'๋ผ๋Š” ์›นํˆฐ์„ ๋ณด๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ•˜๋Š”๊ฐ€?

๊ฒ€์ƒ‰-> ๊ธˆ์š”์›นํˆฐ -> ...-> 

์ด๋Ÿฐ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๋ ค๋ฉด ์•Œ๊ฒŒ ๋ชจ๋ฅด๊ฒŒ ๊ทœ์น™๋“ค์„ ๋”ฐ๋ฅด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 

 

๊ทธ๋Ÿฐ๊ฑฐ๋ฅผ ์ƒ๊ฐํ•˜์‹œ๋ฉด ์‰ฝ๋‹ค!

 

์‚ฌ์‹ค ์ €ํฌ๋Š”

๋„ค์ด๋ฒ„ ์›นํˆฐ์˜ ์„œ๋ฒ„๊ฐ€ ์–ด๋–ป๊ฒŒ ๋˜์–ด์žˆ๋Š”์ง€,

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์–ด๋–ป๊ฒŒ ๋˜์–ด์žˆ๋Š” ์ง€ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. 

๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ

์›นํˆฐ์˜ ์„œ๋น„์Šค๋ฅผ ์ฆ๊ธธ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด์ฃ .

 


 

์‚ฌ์‹ค API๋Š” ๊ณผ๊ฑฐ๋ถ€ํ„ฐ ๋ฐœ์ „๋˜์–ด์˜จ ์šฉ์–ด์ž…๋‹ˆ๋‹ค.

์ด์— ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋œป์ด ์žˆ์Šต๋‹ˆ๋‹ค. 

์ง€๊ธˆ ์„ค๋ช…๋“œ๋ฆฌ๋Š” ๊ฒƒ์€ web API๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…๋“œ๋ฆด๊ฑด๋ฐ, 

๋งŽ์€ ๋œป์ด ์žˆ๋‹ค. 

 

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๋ช…์„ธ์„œ๋ผ๋Š” ๋œป๋„ ์žˆ๊ณ ,

์›น์ƒ์—์„œ WEB API(์šฐ๋ฆฌ๊ฐ€ ์„ค๋ช…ํ• ),

Web Socket API ๋ผ๋Š” ๋œป๋„ ์žˆ๋‹ค. 

 

๊ทผ๋ฐ ์š”์ƒˆ๋Š” API๋ผ๊ณ  ํ–ˆ์„ ๋•Œ๋Š” ,

๋ณดํ†ต WEB API๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. 

 

 


API์˜ ๊ตฌ์กฐ 

1. ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด์„œ ์„œ๋ฒ„์— ์š”์ฒญ์„ ํ•˜๊ฒŒ ๋˜๋ฉด์€

API๊ฐ€ ์ค‘๊ณ„ ๊ณ„์ธต ์—ญํ• ์„ ํ•˜๋ฉฐ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜์žˆ๋‹ค.

-> ์ง์ ‘ ์„œ๋ฒ„์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผ ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ๋„ ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

 

๊ทธ๋ ‡๋‹ค๋ฉด?

API์˜ ์žฅ์ 

1. ์ œ๊ณต์ž(API๋ฅผ ๋งŒ๋“  ์‚ฌ๋žŒ)์€ ์„œ๋น„์Šค์˜ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์„ ๋“œ๋Ÿฌ๋‚ด์ง€ ์•Š์•„๋„ ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด DB์„ค๊ณ„ ๊ตฌ์กฐ๋‚˜ ๋“œ๋Ÿฌ๋‚ด๊ณ  ์‹ถ์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ” ์ •๋ณด, ์„œ๋ฒ„์˜ ์ƒ์ˆ˜๊ฐ’ ๋“ฑ์„ ๋“œ๋Ÿฌ๋‚ด์ง€ ์•Š๊ณ  ๋“œ๋Ÿฌ๋‚ด๊ณ  ์‹ถ์€ ๋ถ€๋ถ„๋งŒ์„ ๋“œ๋Ÿฌ๋‚ผ ์ˆ˜ ์žˆ๋‹ค. 

 

2. ์‚ฌ์šฉ์ž๋Š” ํ•ด๋‹น ์„œ๋น„์Šค๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋˜๋Š” ์ง€ ์•Œ ํ•„์š”์—†์ด ํ•„์š”ํ•œ ์ •๋ณด๋งŒ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. 

 

3. OPEN API์˜ ๊ฒฝ์šฐ ์•ฑ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹จ์ˆœํ™”์‹œํ‚ค๊ณ  ์‹œ๊ฐ„๊ณผ ๋น„์šฉ์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ๋‹ค. 

- ๋„ค์ด๋ฒ„๋กœ ๋กœ๊ทธ์ธ, ์นด์นด์˜ค๋กœ ๋กœ๊ทธ์ธ 

- ์–ด๋–ค ํ™ˆํŽ˜์ด์ง€ ๋“ค์–ด๊ฐ€๋ฉด ํ•˜๋‹จ๋ถ€์— ์นด์นด์˜ค ์ง€๋„ ๊ฐ™์€๊ฑฐ 

์ด ๋‘๊ฐ€์ง€๊ฐ€ ๋ฐ”๋กœ open API๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒƒ 

 

4. ์ œ๊ณต์ž์˜ ๊ฒฝ์šฐ API๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋˜๋ฉด ๋‚ด๋ถ€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ˆ˜์ •๋˜์—ˆ์„ ๋•Œ ๋งค๋ฒˆ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ API๊ฐ€ ์ˆ˜์ •์ด ์•ˆ๋˜๊ฒŒ๋” ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ๋‚ด๋ถ€๊ฐ€ ๋ณ€๊ฒฝ์ด ๋˜์–ด๋„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. 

 

- API๋Š” ์ค‘๊ณ„๊ณ„์ธต์ด๋ผ๊ณ  ํ–ˆ๋‹ค. ๋งŒ์•ฝ DB๊ฐ€ ์ˆ˜์ •์ด ๋  ๋•Œ๋งˆ๋‹ค

  API๊ฐ€ ๋ณ€๊ฒฝ์ด ๋œ๋‹ค๊ณ  ํ•˜๋ฉด ์žฆ์€ ์—…ํ…Œ์ดํŠธ๊ฐ€ ๋ฐœ์ƒ์ด ๋˜๊ฒ ์ฃ ? -> ์ข‹์€ ๊ฒƒ์ด๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์—†์Œ -> ๊ทผ๋ฐ ์ด API๋ผ๋Š” ๊ฒƒ์ด ์žˆ๊ธฐ   ๋•Œ๋ฌธ์— DB๊ฐ€ ๋ณ€๊ฒฝ์ด ๋˜๋„ ํ•œ 10๋ฒˆ ? ๋˜๋„ API๋Š” 1๋ฒˆ ๋ณ€๊ฒฝ ์ด๋Ÿฐ ์‹์œผ๋กœ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ

์‚ฌ์šฉ์ž๋Š” ์ˆ˜์ •ํ•œ ์ง€๋ฅผ ๋ชจ๋ฅด๊ฒŒ๋” ํ•  ์ˆ˜ ์žˆ๋‹ค!!

 

5. ์ œ๊ณต์ž๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๊ณณ์— ๋ชจ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ํฐ๋Œ์˜ˆ์Šค24๋ผ๋Š” ์ฑ…์„ ํŒŒ๋Š” ์‡ผํ•‘๋ชฐ์„ ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ํ•ฉ์‹œ๋‹ค.

ํ•ด๋‹น ์‚ฌ์ดํŠธ์— ๋ฐฉ๋ฌธํ•˜๋Š” ๋ฐฉ๋ฌธ์ž๊ฐ€ ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค.

๊ทธ ๋•Œ, ์–ด๋–ค ํŠน์ •ํ•œ ๊ฒƒ์„ ํด๋ฆญํ•˜๋Š” ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์ด๋ฒคํŠธ๋ฅผ ์ง‘๊ณ„ํ•˜๊ณ  ์‹ถ์„ ๋•Œ

ํ•ด๋‹น API๋ฅผ ๋งŒ๋“ค๊ณ  ํ•ด๋‹น ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ํ•ด๋‹น API๋ฅผ ํ˜ธ์ถœํ•˜๊ฒŒ ๋งŒ๋“ค๋ฉด

ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๊ณณ์— ๋ชจ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

6. ์ œ๊ณต์ž์˜ ๊ฒฝ์šฐ, API๋ฅผ ์ด์šฉํ•ด ์ œ3์ž๊ฐ€ ๋งŒ๋“ค์–ด๋‚ธ ์•ฑ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•  ์ˆ˜๋„ ์žˆ๊ณ ,

ํ•ด๋‹น ์„œ๋น„์Šค๋ฅผ ํ™•์žฅํ•ด ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ™๋ณด์—๋„ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. 

 

- ์นด์นด์˜ค ๋„ค์ด๋ฒ„์˜ ๊ธฐ์—… ํ™๋ณด

- ํŒŒํŒŒ๊ณ  _ ์ธ๊ณต์ง€๋Šฅ์˜ ํŠน์„ฑ์ƒ ๋งŽ์€ ์ •๋ณด ํ•„์š”๋กœํ•จ

 

 

API์˜ ์ข…๋ฅ˜ 

 

- private : ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฃผ๋กœ ํ•ด์‹œํ‚ค๋ฅผ ํ•˜๋“œ์ฝ”๋”ฉํ•ด๋†“๊ณ  ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์„œ๋ฒ„์™€ ์„œ๋ฒ„๊ฐ„์˜ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ํŒŒํŠธ๋„ˆ์™€๋„ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. privateํ•˜๊ฒŒ๋„ ํ•ด๋‹น ํŒŒํŠธ๋„ˆ์™€ ํ•ด์‹œํ‚ค๋ฅผ ๊ณต์œ ํ•ด ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค. 

(ํ•ด์‹œํ‚ค๊ฐ€ ์žˆ์–ด์•ผ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ)

 

- public : ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŽ์€ ํŠธ๋ž˜ํ”ฝ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ•˜๋ฃจ ์š”์ฒญ ์ˆ˜์˜ ์ œํ•œ, ๊ณ„์ •๋‹น ๋ช‡๊ฐœ ๋“ฑ์œผ๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.