๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœ๏ธ 21-2 IPP/Node.js study

Node.js - 5 GET, POST ์š”์ฒญ

by hanwitjus 2021. 10. 14.

์ด๋ฒˆ์—๋Š” ๋‹ค๋ฅธ ๋ฐฉ์‹์˜ ์„œ๋ฒ„ ์š”์ฒญ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ–ˆ๋‹ค.

(์•„์ง๊นŒ์ง€ ๋ญ๊ฐ€ ๋‹ค๋ฅธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค. ๋” ๊ณต๋ถ€ํ•ด์•ผ ํ• ๋“ฏ...)

 

์ผ๋‹จ ์ˆ˜์ •๋œ ์ฝ”๋“œ ์ „์ฒด์ด๋‹ค.

 

 

์•ž์„œ ์ง  ์ฝ”๋“œ์™€ ๋‹ค๋ฅธ ์ ์€, ์•ž์„  ์ฝ”๋“œ๋Š” 

app = http.createServer(์ฝœ๋ฐฑ ํ•จ์ˆ˜)

์ด๋ ‡๊ฒŒ ๋˜์–ด์žˆ์—ˆ๋Š”๋ฐ, 

 

์—ฌ๊ธฐ์„œ๋Š” ์ผ๋‹จ

app = http.createServer();

app.on("request", (req, res) => {...});

ํ•˜๊ณ  on์ด๋ผ๋Š” ๋ฉ”์†Œ๋“œ ์•ˆ์— ์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ์ •์˜ํ–ˆ๊ณ ,

 

์‘๋‹ต์„ ๋‹ซ์œผ๋ฉด์„œ html ์ฝ˜ํ…์ธ ๋ฅผ ๋ณด๋‚ธ๋‹ค.

res.end(responseMessage);

์ด๋ ‡๊ฒŒ.

 

์œ„์ฝ”๋“œ๋ฅผ ์ด๋ ‡๊ฒŒ ์‹คํ–‰์‹œ์ผœ ๋ณด๋ฉด, ํฌํŠธ ๋ฒˆํ˜ธ๋„ ์ฝ˜์†”์— ์ž˜ ๋œจ๊ณ , 

์›น ๋ธŒ๋ผ์šฐ์ €์—๋„ ์ด๋ ‡๊ฒŒ ์ž˜ ๋œฌ๋‹ค.

 

 

 

์—ฌ๊ธฐ์„œ Routing ์ด๋ผ๋Š” ๊ฐœ๋…์ด ๋‚˜์˜จ๋‹ค.

 

๋ผ์šฐํŒ…์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์š”์ฒญํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ์— ์–ด๋–ป๊ฒŒ ๋ฐ˜์‘ํ•˜๋Š”์ง€ ์ •ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

๊ฐ ์š”์ฒญ ๊ฐ์ฒด๋Š” url ์†์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, req.url ์†์„ฑ์„ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์–ด๋–ค url ์š”์ฒญ์„ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

์ด๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด app.on ๋ฉ”์†Œ๋“œ ์ฝ”๋“œ ๋ธ”๋ก์— ๋ฐ‘์— ๋‚˜์™€์žˆ๋Š” ์„ธ์ค„์˜ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ์„ธ์ค„์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๋‚˜์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•ด๋ณด๋ฉด,

 

์œ„์—์„œ๋ถ€ํ„ฐ http ๋ฉ”์†Œ๋“œ ์ข…๋ฅ˜(GET), header ์ •๋ณด, ์š”์ฒญ๋œ url ๋กœ๊ทธ(/)๊ฐ€ ์ฐจ๋ก€๋กœ ์ž˜ ์ถœ๋ ฅ๋œ๋‹ค.

 

 

์š”์ฒญ์˜ ์ผ๋ถ€ ๊ฐœ์ฒด๋Š” ๋‹ค๋ฅธ ์ค‘์ฒฉ ๊ฐœ์ฒด๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, JSON.stingify๋ผ๋Š” ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐœ์ฒด๋ฅผ ๋” ์ฝ๊ธฐ ์‰ฌ์šด ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” JavaScript ๊ฐ์ฒด๋ฅผ ์ธ์ˆ˜๋กœ ์‚ฌ์šฉํ•ด ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 

 

 

๊ทธ๋ž˜์„œ ์ด๋ ‡๊ฒŒ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜ getJSONString์„ ์„ ์–ธํ•˜๊ณ , ์ฝ˜์†”์— ์ถœ๋ ฅํ•˜๋Š” ์ถœ๋ ฅ๋ฌธ๋„ ๊ทธ์— ๋งž๊ฒŒ ๋ฐ”๊ฟ”์ฃผ์—ˆ๋‹ค.

 

 

๊ทธ๋ ‡๊ฒŒ ํ•ด์„œ ์‹คํ–‰ํ•ด๋ณด๋ฉด, 

 

์ด๋ ‡๊ฒŒ ์ž˜ ๋‚˜์˜จ๋‹ค. ์‚ฌ์‹ค ์•„๊นŒ๋ž‘ ๋ญ๊ฐ€ ๋‹ค๋ฅธ์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค.

 

์ด ๋ฐ–์— ์ฑ…์—์„œ ์‹œํ‚จ๊ฒŒ localhost:3000/test/test2 ์ฒ˜๋Ÿผ ๋‹ค๋ฅธ URL์„ ํ•œ๋ฒˆ ์ž…๋ ฅํ•ด๋ณด๋ฉด ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ๋˜‘๊ฐ™์€ ํ…์ŠคํŠธ๋ฅผ ๋ณด์—ฌ์ฃผ์ง€๋งŒ ์ฝ˜์†”์—์„œ๋Š” ์ž…๋ ฅํ•œ URL์„ ์ถœ๋ ฅํ•  ๊ฒƒ์ด๋ผ๊ณ  ํ•ด์„œ ํ•ด๋ดค๋‹ค.

 

๊ทธ๋žฌ๋”๋‹ˆ ์ฝ˜์†”์—์„œ๋Š” ์ž…๋ ฅํ•œ๋Œ€๋กœ

์ด๋ ‡๊ฒŒ ์ž˜ ๋‚˜์™”๋‹ค.

 

 

 

์ด์ œ POST ๋ฐฉ์‹์ผ ๋•Œ์˜ ์š”์ฒญ ์ฒ˜๋ฆฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค.

 

๋จผ์ € POST ๋ฐฉ์‹์˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด์ง€๋Š” ์ง€๋ฅผ ์‚ดํŽด๋ณด๋ฉด,

 

๋ˆ„๊ตฐ๊ฐ€ ์„œ๋ฒ„์— POST ์š”์ฒญ์„ ํ•˜๋Š” ๊ฒฝ์šฐ, ๊ทธ POST์˜ ๋‚ด์šฉ์€ ์š”์ฒญํ•œ ๋ณธ๋ฌธ์— ์ €์žฅ๋œ๋‹ค.

์„œ๋ฒ„๊ฐ€ ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์–‘์„ ์•Œ์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฒŒ์‹œ ๋œ ๋ฐ์ดํ„ฐ๋Š” ๋ฐ์ดํ„ฐ ์ฒญํฌ(chunk)๋ฅผ ํ†ตํ•ด http ์„œ๋ฒ„๋กœ ๋“ค์–ด์˜จ๋‹ค.

 

๊ทธ๋ž˜์„œ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ์ •์˜ํ•˜๊ณ  ์„œ๋ฒ„์— ์ฒญํฌ๊ฐ€ ๋„์ฐฉํ•  ๋•Œ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ์ฒญํฌ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค.

๋ชจ๋“  ๋ฐ์ดํ„ฐ ์ฒญํฌ๊ฐ€ ๋ชจ์•„์ง€๋ฉด ๋‹จ์ผ ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ์œผ๋กœ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค.

 

 

์œ„์˜ ์ฝ”๋“œ์— ์ถ”๊ฐ€ํ•œ ๊ฒƒ ์ฒ˜๋Ÿผ ๋ฐฐ์—ด์€ body๋กœ ๋งŒ๋“ค์–ด์ง€๊ณ  ์ฐธ์กฐ๋˜๋ฉฐ, ์š”์ฒญ ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆ˜์‹ ๋  ๋•Œ๋งˆ๋‹ค ๋˜ ๋‹ค๋ฅธ ์ฝœ๋ฐฑ ํ•จ์ˆ˜์—์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค.

์ˆ˜์‹ ๋œ ๋ฐ์ดํ„ฐ๋Š” body ๋ฐฐ์—ด์— ์ถ”๊ฐ€๋œ๋‹ค. 

 

๋ฐ์ดํ„ฐ ์ „์†ก์ด ์™„๋ฃŒ๋˜๋ฉด ์„ธ ๋ฒˆ์งธ ์ฝœ๋ฐฑ ํ•จ์ˆ˜์—์„œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. 

body ๋ฐฐ์—ด์€ ํ…์ŠคํŠธ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๋€Œ๊ณ  ์š”์ฒญ ๋‚ด์šฉ์€ ์ฝ˜์†”์— ๊ธฐ๋กํ•œ๋‹ค.

 

 

์•„์ง ๋ฐ์ดํ„ฐ ์ œ์ถœ์„ ์œ„ํ•œ ํผ์„ ๋งŒ๋“ค์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— curl ๋ช…๋ น์„ ์‚ฌ์šฉํ•ด์„œ ์„œ๋ฒ„๋กœ POST ์š”์ฒญ์„ ๋ณด๋‚ด๋ณด์•˜๋‹ค.

 

๋จผ์ € curl ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ, 

https://chocolatey.org/install

 

Installing Chocolatey

Chocolatey is software management automation for Windows that wraps installers, executables, zips, and scripts into compiled packages. Chocolatey integrates w/SCCM, Puppet, Chef, etc. Chocolatey is trusted by businesses to manage software deployments.

chocolatey.org

 

์—ฌ๊ธฐ์„œ Chocolatey๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ด์„œ ์„ค์น˜ํ–ˆ๋‹ค.

 

์›๋ž˜ ํ„ฐ๋ฏธ๋„์—์„œ ๋จผ์ € ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œ์ผœ ๋†“์€ ํ›„,

๋˜ ๋‹ค๋ฅธ ํ„ฐ๋ฏธ๋„์„ ๋„์›Œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ช…๋ น์„ ์ž…๋ ฅํ–ˆ๋‹ค.

 

์ €๋ ‡๊ฒŒ ์š”์ฒญ ๊ฒฐ๊ณผ๊ฐ€ ์ž˜ ์ถœ๋ ฅ๋˜๊ณ , 

 

์›๋ž˜ ํ„ฐ๋ฏธ๋„์—๋„

 

์ด๋ ‡๊ฒŒ ์š”์ฒญ ๋ฐฉ์‹๊ณผ ์š”์ฒญ ๋ฐ์ดํ„ฐ ๋‚ด์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

๋„์

 

 

LIST

๋Œ“๊ธ€