๐Ÿ”ฌComputer Science/๋„คํŠธ์›Œํฌ

TIL) ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜, API, ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์˜ ํ†ต์‹ , HTTP, ํ”„๋กœํ† ์ฝœ์ด๋ž€?

hellohailie 2022. 6. 9. 10:57

 

ํด๋ผ์ด์–ธํŠธ - ์„œ๋ฒ„ ์•„ํ‚คํ…์ฒ˜(2ํ‹ฐ์–ด ์•„ํ‚คํ…์ฒ˜) // Client Server Architecture (2 Tier Architecture)

 

์ƒํ’ˆ ์ •๋ณด๋ฅผ ์ธํ„ฐ๋„ท ์–ด๋”˜๊ฐ€์— ์กด์žฌํ•˜๋Š” ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์•„์˜จ๋‹ค.

๐Ÿค”๋งŒ์•ฝ ์„œ๋ฒ„๊ฐ€ ๋”ฐ๋กœ ์กด์žฌํ•˜์ง€ ์•Š๊ณ , ์ „๋ถ€ ์•ฑ ์•ˆ์— ๋‹ด๊ฒจ ์žˆ๋‹ค๋ฉด?

โžฅ ๋Š์ž„์—†์ด ์•ฑ์„ ์—…๋ฐ์ดํŠธํ•ด์•ผํ•œ๋‹ค. ์•ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ƒํ’ˆ ์ •๋ณด๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ „๋‹ฌํ•˜๊ธฐ ์–ด๋ ต๋‹ค. 

๋˜ํ•œ ๊ฒฐ์ œ๋„ ๋ถˆ๊ฐ€! (๊ฒฐ์ œ๋„ ์€ํ–‰ ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐํ•ด์„œ ํ•˜๋Š”๊ฑฐ๋‹ˆ๊นŒ)

 

์ƒํ’ˆ ์ •๋ณด ๊ฐ™์€ ๋ฆฌ์†Œ์Šค๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ณณ๊ณผ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•ฑ์„ ๋ถ„๋ฆฌ์‹œํ‚จ ๊ฒƒ์„ 2ํ‹ฐ์–ด ์•„ํ‚คํ…์ณ / ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ์•„ํ‚คํ…์ฒ˜๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. 

๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•ฑ์ด ํด๋ผ์ด์–ธํŠธ,

๋ฆฌ์†Œ์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ณณ์€ ์„œ๋ฒ„

 

์„œ๋ฒ„๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์ „๋‹ฌ๋งŒ ํ•ด์ฃผ๊ณ , ๋ฆฌ์†Œ์Šค๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์ด ๋”ฐ๋กœ ์žˆ๋‹ค. ์—ฌ๊ธฐ๊ฐ€ ๋ฐ”๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค!

โžฅ ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„-์•„ํ‚คํ…์ณ ํ˜•ํƒœ๋ฅผ 3 Tier ์•„ํ‚คํ…์ณ๋ผ๊ณ  ํ•œ๋‹ค. 

 

ํ”„๋ก ํŠธ์—”๋“œ์˜ ์˜์—ญ - ํด๋ผ์ด์–ธํŠธ/๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•ฑ (์œ ์ €์™€์˜ ์ „๋ฐ˜์ ์ธ ์ƒํ˜ธ์ž‘์šฉ)

๋ฐฑ์—”๋“œ์˜ ์˜์—ญ - ์„œ๋ฒ„ & ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค/ ๋ฆฌ์†Œ์Šค๋ฅผ ์ „๋‹ฌํ•ด์ฃผ๋Š” ์•ฑ & ๋ฆฌ์†Œ์Šค ์ €์žฅ ๊ณต๊ฐ„ (์‚ฌ์šฉ์ž ์ธ์ฆ, ์‹œ์Šคํ…œ ์„ค๊ณ„)

 


ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ํ†ต์‹ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ธ API

 

ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ํ†ต์‹ ์€ ์š”์ฒญ๊ณผ ์‘๋‹ต์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. 

 

ํ”„๋กœํ† ์ฝœ์€ ํ†ต์‹  ๊ทœ์•ฝ์ด๋‹ค. (์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ”„๋กœํ† ์ฝœ์ด ์žˆ๋‹ค.)

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ์„œ๋กœ HTTP๋ผ๋Š” ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•ด์„œ ๋Œ€ํ™”ํ•œ๋‹ค. 

 

์‘์šฉ ๊ณ„์ธต์˜ ์ฃผ์š” ํ”„๋กœํ† ์ฝœ

  • HTTP: ์›น์—์„œ html, json๋“ฑ์˜ ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ํ”„๋กœํ† ์ฝœ
  • HTTPS : HTTP์—์„œ ๋ณด์•ˆ์ด ๊ฐ•ํ™”๋œ ํ”„๋กœํ† ์ฝœ
  • FTP: ํŒŒ์ผ ์ „์†ก ํ”„๋กœํ† ์ฝœ
  • SMTP: ๋ฉ”์ผ์„ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ
  • SSH: CLIํ™˜๊ฒฝ์˜ ์›๊ฒฉ ์ปดํ“จํ„ฐ์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ
  • RDP: Windows ๊ณ„์—ด์˜ ์›๊ฒฉ ์ปดํ“จํ„ฐ์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ
  • WebSocket: ์‹ค์‹œ๊ฐ„ ํ†ต์‹ ,Push๋“ฑ์„ ์ง€์›ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ

์ „์†ก ๊ณ„์ธต์˜ ์ฃผ์š” ํ”„๋กœํ† ์ฝœ

  • TCP: HTTP, FTP ํ†ต์‹ ๋“ฑ์˜ ๊ทผ๊ฐ„์ด ๋˜๋Š” ์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ // ์–‘๋ฐฉํ–ฅ ์—ฐ๊ฒฐ ์„œ๋น„์Šค, ์ŠคํŠธ๋ฆผ์œ„์ฃผ, ์‹ ๋ขฐ์„ฑ
  • UDP: (์–‘๋ฐฉํ–ฅ์˜ TCP์™€๋Š” ๋‹ค๋ฅด๊ฒŒ) ๋‹จ๋ฐฉํ–ฅ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ํ›ค์”ฌ ๋” ๋‹จ์ˆœํ•˜๊ณ  ๋น ๋ฅด์ง€๋งŒ, ์‹ ๋ขฐ์„ฑ์ด ๋‚ฎ์€ ์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ // ๋น„์—ฐ๊ฒฐํ˜• ์„œ๋น„์Šค, ๋น ๋ฅธ์†๋„/์—ฌ๋Ÿฌ์‚ฌ์šฉ์ž/๋ฐ˜๋ณต, ์†๋„

 


API(Application Programming Interface)๋ž€?

 

์ปดํ“จํ„ฐ์—๊ฒŒ ์š”์ฒญํ•  ๋•Œ๋Š” ์ •ํ™•ํ•œ ์ฃผ๋ฌธ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ์š”์ฒญํ•ด์•ผํ•œ๋‹ค. 

์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฆฌ์†Œ์Šค๋ฅผ ์ž˜ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์—ญํ• ์„ API๊ฐ€ ํ•œ๋‹ค. 

 

์‰ฝ๊ฒŒ ์„ค๋ช…ํ•ด์„œ API๋Š” ๋ฉ”๋‰ดํŒ๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜๋Š” ๊ฑธ๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. 

 

์ธํ„ฐ๋„ท์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•  ๋•Œ์—๋Š” HTTP๋ผ๋Š” ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ฃผ์†Œ(URL, URI)๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

HTTP ์š”์ฒญ์—๋Š” ๋ฉ”์„œ๋“œ๋ผ๋Š” ๊ฒƒ์ด ์กด์žฌํ•œ๋‹ค.

๋ฆฌ์†Œ์Šค๋ฅผ ๊ทธ์ € ๋‹ฌ๋ผ๊ณ (GET) ์š”์ฒญ๋„ ๊ฐ€๋Šฅํ•˜๊ณ ,  ์‚ฌ์šฉ์ž๋ฅผ ์ถ”๊ฐ€ํ•ด ๋‹ฌ๋ผ๊ณ (CREATE) ์š”์ฒญํ•˜๊ฑฐ๋‚˜, ์ง€์›Œ๋‹ฌ๋ผ๊ณ (DELETE) ์š”์ฒญํ•  ์ˆ˜๋„ ์žˆ๋‹ค. CRUD ๊ฐ๊ฐ์˜ ํ–‰๋™๊ณผ ์ผ์น˜ํ•˜๋Š” HTTP ๋ฉ”์„œ๋“œ์˜ ์ข…๋ฅ˜๊ฐ€ ์กด์žฌํ•œ๋‹ค.

 

 

<HTTP API ๋””์ž์ธ์„ ์ž˜ ํ•˜๊ธฐ ์œ„ํ•ด ๊ผญ ๊ธฐ์–ตํ•ด์•ผ ํ•  5๊ฐ€์ง€ ๋ฉ”์„œ๋“œ>

์ฐธ๊ณ 

https://developer.mozilla.org/ko/docs/Web/HTTP/Methods

 

HTTP ์š”์ฒญ ๋ฉ”์„œ๋“œ - HTTP | MDN

HTTP๋Š” ์š”์ฒญ ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•˜์—ฌ, ์ฃผ์–ด์ง„ ๋ฆฌ์†Œ์Šค์— ์ˆ˜ํ–‰ํ•˜๊ธธ ์›ํ•˜๋Š” ํ–‰๋™์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ฐ„ํ˜น ์š”์ฒญ ๋ฉ”์„œ๋“œ๋ฅผ "HTTP ๋™์‚ฌ"๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ๋ฉ”์„œ๋“œ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์˜๋ฏธ๋ฅผ ๊ตฌํ˜„ํ•˜์ง€๋งŒ, ์ผ๋ถ€

developer.mozilla.org

 

 

HTTP ๋ฉ”์„œ๋“œ๋Š” CRUD ํ–‰๋™์— ๋”ฐ๋ผ ๋ชฉ์ ์— ๋งž๊ฒŒ ์จ์•ผํ•œ๋‹ค!!