[HTTP/Network] Web Application Architecture

Hannahhhยท2022๋…„ 8์›” 4์ผ
0

HTTP/Network

๋ชฉ๋ก ๋ณด๊ธฐ
1/12

๐Ÿ” Web Application Architecture


๐Ÿ‘€ Client-Server Architecture


์‡ผํ•‘๋ชฐ ์•ฑ์„ ์˜ˆ๋ฅผ ๋“ค๋ฉด, ์ƒํ’ˆ ์ •๋ณด๋ฅผ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์•„์™€์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ์ด ์—†๋‹ค๋ฉด ์‡ผํ•‘๋ชฐ ์•ฑ์ด ์ž‘๋™๋˜์ง€ ์•Š๋Š”๋‹ค.

๋‹จ, ์ƒํ’ˆ ์ •๋ณด๊ฐ€ ์ „๋ถ€ ์•ฑ ์•ˆ์— ๋‹ด๊ธด ๊ฒฝ์šฐ, ์•ฑ๊ณผ ์—ฐ๊ฒฐ๋œ ์„œ๋ฒ„๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, ์‹ ์ƒํ’ˆ ์ •๋ณด๋ฅผ ๋ฐ›์•„์˜ค๊ธฐ ์œ„ํ•ด์„œ ๋ˆ์ž„์—†์ด ์•ฑ์„ ์—…๋ฐ์ดํŠธ ํ•ด์•ผํ•œ๋‹ค.
๋”ฐ๋ผ์„œ, ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ณ ๊ฐ๋“ค์—๊ฒŒ ์ƒํ’ˆ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ๊ฐ€ ๋งค์šฐ ์–ด๋ ค์šฐ๋ฉฐ ์€ํ–‰ ์„œ๋ฒ„์™€์˜ ์—ฐ๊ฒฐ์ด ํ•„์š”ํ•œ '๊ฒฐ์ œ'๋ผ๋Š” ํ–‰๋™์„ ํ•  ์ˆ˜ ์—†๋‹ค.

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

  • ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์•ฑ: client
  • ๋ฆฌ์†Œ์Šค๋ฅผ ์ œ๊ณต(serve)ํ•˜๋Š” ๊ณณ: server

client์™€ server๋Š” ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ด€๊ณ„์ด๋‹ค.(Client ์„  ์š”์ฒญ -> Server ํ›„ ์‘๋‹ต)


์ผ๋ฐ˜์ ์œผ๋กœ ์„œ๋ฒ„๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์ „๋‹ฌํ•ด์ฃผ๋Š” ์—ญํ• ๋งŒ ๋‹ด๋‹นํ•˜๋ฉฐ, ๋ฆฌ์†Œ์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋˜์–ด ์žˆ๋‹ค.

๊ธฐ์กด 2ํ‹ฐ์–ด ์•„ํ‚ค๋ฑ์ฒ˜์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ถ”๊ฐ€๋œ ํ˜•ํƒœ๋ฅผ 3ํ‹ฐ์–ด ์•„ํ‚คํ…์ฒ˜๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.



Frontend vs Backend

์›น ๊ฐœ๋ฐœ์ž ์ง๊ตฐ(ํ”„๋ก ํŠธ/๋ฐฑ)์€ ์•„ํ‚คํ…์ฒ˜์—์„œ ์–ด๋–ค ๋ถ„์•ผ๋ฅผ ๋‹ค๋ฃจ๋Š” ์ง€์— ๋”ฐ๋ผ ๊ตฌ๋ถ„๋˜๋ฉฐ,

ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๋Š” client์ฒ˜๋Ÿผ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ๋ˆˆ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๊ณ , ์ƒํ˜ธ์ž‘์šฉ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๋ฉฐ, ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋Š” ๋ˆˆ์— ๋ณด์ด์ง€ ์•Š๋Š” server๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ฐœ๋ฐœ์ž๋กœ, DB๋“ฑ์˜ ์‹œ์Šคํ…œ ์„ค๊ณ„๊นŒ์ง€ ๋งก๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.



โœ” client & server ์ข…๋ฅ˜

โ—พ Client : ์›น์‚ฌ์ดํŠธ(์›น ์•ฑ), ์Šค๋งˆํŠธํฐ.ํƒœ๋ธ”๋ฆฟ ์šฉ ์•ฑ, ๋ฐ์Šคํฌํƒ‘ ์•ฑ

โ—พ Server : ์›น ์„œ๋ฒ„, ํŒŒ์ผ ์„œ๋ฒ„, ๋ฉ”์ผ ์„œ๋ฒ„, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„




๐Ÿ‘€ Client-Server ํ†ต์‹  & API


โœ” Client-Server ํ†ต์‹ 

client์™€ server ๊ฐ„์˜ ํ†ต์‹ ์€ client์˜ ์š”์ฒญ๊ณผ server์˜ ์‘๋‹ต์œผ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ์š”์ฒญ์ด ์žˆ์–ด์•ผ๋งŒ ์‘๋‹ต์ด ์˜จ๋‹ค. ๋”ฐ๋ผ์„œ, server ๋งˆ์‘๋Œ€๋กœ client์— ๋ฆฌ์†Œ์Šค๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š๋Š”๋‹ค.

Client์™€ server๋Š” ์„œ๋กœ HTTP๋ผ๋Š” ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•˜์—ฌ ๋Œ€ํ™”๋ฅผ ๋‚˜๋ˆ„๋ฉฐ, ์ด๋•Œ ์ฃผ๊ณ  ๋ฐ›๋Š” ๋ฉ”์‹œ์ง€๋ฅผ HTTP ๋ฉ”์‹œ์ง€๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.


โญ ํ”„๋กœํ† ์ฝœ?

ํ†ต์‹  ๊ทœ์•ฝ, ์ฆ‰ ์•ฝ์†์œผ๋กœ, ์‹ค์ œ ์‚ฌ๋ก€๋ฅผ ๋“ค์–ด๋ณด์ž๋ฉด ์นดํŽ˜์—์„œ ์ปคํ”ผ๋ฅผ ์ฃผ๋ฌธํ•  ๋•Œ ์“ฐ์ด๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•๋“ค์ด ๋ชจ๋‘ ํ•˜๋‚˜ํ•˜๋‚˜ ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

  • ์นด์šดํ„ฐ๋กœ ์ฐพ์•„๊ฐ€๊ธฐ
  • ์•ฑ์„ ์ด์šฉํ•œ ์ฃผ๋ฌธ
  • ํ‚ค์˜ค์Šคํฌ๋ฅผ ์ด์šฉํ•œ ์ฃผ๋ฌธ

์ œ๋Œ€๋กœ๋œ ํ†ต์‹ ์„ ์œ„ํ•ด์„œ๋Š” ํ”„๋กœํ† ์ฝœ(๊ทœ์•ฝ)์„ ์ง€์ผœ์•ผ ํ•˜๋Š”๋ฐ, ๊ฐ€๊ฒŒ์—์„œ ์™ธ๊ณ„์–ด๋กœ ์ƒํ’ˆ์„ ์ฃผ๋ฌธํ•  ์ˆ˜๋Š” ์—†์œผ๋ฉฐ, ์šฐํŽธ์„ ๋ณด๋‚ผ ๋•Œ์— ์ˆ˜์‹ ์ž์— ๋Œ€ํ•œ ์ •๋ณด ํ‘œ๊ธฐ๊ฐ€ ์—†๊ฑฐ๋‚˜ ์šฐํ‘œ๊ฐ€ ์—†๋‹ค๋ฉด ์šฐํŽธ ์ „์†ก์ด ๋ถˆ๊ฐ€ํ•˜๋‹ค.
์ฆ‰, ์šฐํŽธ ์ „์†ก์„ ์œ„ํ•ด ๋ฐ˜๋“œ์‹œ ์ง€์ผœ์•ผํ•˜๋Š” ๊ทœ์•ฝ์ด ์žˆ์œผ๋ฉฐ ๊ฐ์ž์˜ ํ”„๋กœํ† ์ฝœ๋งˆ๋‹ค ์ง€์ผœ์•ผํ•˜๋Š” ๊ทœ์•ฝ์ด ์กด์žฌํ•œ๋‹ค.



โœ” ์ฃผ์š” ํ”„๋กœํ† ์ฝœ



โœ” API

Client๊ฐ€ server์— ์š”์ฒญ์„ ํ•  ๋•Œ, ์ •ํ™•ํ•œ ์ฃผ๋ฌธ ๋ฐฉ๋ฒ•์„ ๋”ฐ๋ผ ์š”์ฒญํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์ด๋•Œ ์„œ๋ฒ„๋Š” ๋งˆ์น˜ ์‹๋‹น์—์„œ ๋ฉ”๋‰ดํŒ์„ ์ œ๊ณตํ•˜๋“ฏ, ๋ฆฌ์†Œ์Šค๋ฅผ ์ž˜ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก client์—๊ฒŒ API(Application Programming interface)๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

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

HTTP API ๋””์ž์ธ์—๋Š” Best Practice๊ฐ€ ์กด์žฌํ•˜๋ฉฐ, ์•„๋ž˜๋Š” ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ API์ด๋‹ค.

URL ๋””์ž์ธ์€ ๋น„๊ต์  ๋‹จ์ˆœํ•˜๋‚˜ ๋ฉ”์„œ๋“œ๋ผ๋Š” ๊ฐœ๋…์ด ๋“ฑ์žฅํ•œ๋‹ค. ๋”ฐ๋ผ์„œ, HTTP ์š”์ฒญ์—๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์กด์žฌํ•˜๋ฉฐ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ทธ์ € ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•˜๋Š” ๊ฒƒ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์ถ”๊ฐ€๋‚˜ ์‚ญ์ œ๋ฅผ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๋‹ค.


์•„๋ž˜์™€ ๊ฐ™์ด CURD ๊ฐ๊ฐ์˜ ํ–‰๋™๊ณผ ์ผ์น˜ํ•˜๋Š” HTTP ๋ฉ”์„œ๋“œ์˜ ์ข…๋ฅ˜๊ฐ€ ์กด์žฌํ•œ๋‹ค.

HTTP ๋ฉ”์„œ๋“œ๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์ด์šฉํ•ด CRUD ํ–‰๋™์— ๋งž๊ฒŒ ์ ์ ˆํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜์–ด์•ผ ํ•œ๋‹ค.




Reference: ์ฝ”๋“œ์Šคํ…Œ์ด์ธ 

0๊ฐœ์˜ ๋Œ“๊ธ€