๐ŸŒฑ โ†’ ๐ŸŒณ

[node.js] GET ์š”์ฒญ ์ฒ˜๋ฆฌ ๋ณธ๋ฌธ

Server/Node.js

[node.js] GET ์š”์ฒญ ์ฒ˜๋ฆฌ

thals0 2022. 8. 25. 14:31
728x90

์ฝ”๋”ฉ์• ํ”Œ ๊ฐ•์˜๋ฅผ ๊ธฐ๋ฐ˜ํ•˜์—ฌ ๊ณต๋ถ€ํ•œ ๊ธฐ๋ก์ž…๋‹ˆ๋‹ค.

https://codingapple.com/

 

์ฝ”๋”ฉ์• ํ”Œ ์˜จ๋ผ์ธ ๊ฐ•์ขŒ - ๊ฐœ๋ฐœ์ž๋„ ๋‹จ๊ธฐ์™„์„ฑ!

๋‹จ์—ฐ NO1 ๊ฐ•์‚ฌ๋‹˜์˜ NO.1 ๊ฐ•์˜ ์—ญ์‹œ๋‚˜ ๋ช…๊ฐ•์ž…๋‹ˆ๋‹ค. IT ์—…๊ณ„์˜ ๋Œ€์น˜๋™ NO1. ๊ฐ•์‚ฌ๊ฐ™์€ ์—„์ฒญ๋‚œ ๊ฐ•์˜๋ ฅ. ์ฝ”๋”ฉ์• ํ”Œ๋‹˜์˜ ๊ฐ•์˜๋Š”, ์—„์ฒญ๋‚˜๊ฒŒ ๊ธฐ์ดˆ์ ์ธ ๊ฒƒ๋ถ€ํ„ฐ ๊ฐ€๋ฅด์น˜๋Š” ๋“ฏ ๋ณด์ด์ง€๋งŒ, ์‹ค์ œ๋กœ ๋‹ค๋ฃจ๋Š” ๊นŠ์ด๋Š” ์ ˆ

codingapple.com

 

โœ… express ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ๋ฒ• 

const express = require('express');
const app = express();

app.listen(8080, function() {
    console.log('listening on 8080')
})

๊ตณ์ด ํ•ด์„ํ•ด๋ณด์ž๋ฉด ์ฒซ ๋‘์ค„์€ express ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ฒจ๋ถ€์™€ ์‚ฌ์šฉ,

๋ฐ‘์— app.listen()์€ ์›ํ•˜๋Š” ํฌํŠธ์— ์„œ๋ฒ„๋ฅผ ์˜คํ”ˆํ•˜๋Š” ๋ฌธ๋ฒ•์ด๋‹ค.

 

listen() ํ•จ์ˆ˜ ์•ˆ์—” ๋‘๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ํ•„์š”ํ•œ๋ฐ,

listen(์„œ๋ฒ„๋ฅผ ์˜คํ”ˆํ•  ํฌํŠธ๋ฒˆํ˜ธ, function(){์„œ๋ฒ„ ์˜คํ”ˆ์‹œ ์‹คํ–‰ํ•  ์ฝ”๋“œ})

์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

 

์œ„ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ํ„ฐ๋ฏธ๋„์„ ์ผœ์„œ node server.js๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์„œ๋ฒ„๊ฐ€ ๋œฌ๋‹ค.

๋ธŒ๋ผ์šฐ์ €์—์„œ localhost:8080 ์ด๋ผ๊ณ  ์ ‘์†ํ•˜๋ฉด ํ™•์ธ ๊ฐ€๋Šฅ

 

โœ… PORT๋ž€?

์ปดํ“จํ„ฐ๋Š” ํ•ญ์ƒ ์™ธ๋ถ€ ์ปดํ“จํ„ฐ์™€ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ์„ค๊ณ„๋˜์–ด์žˆ๋‹ค.

๋žœ์„ ์„ ๊ฝ‚๊ฑฐ๋‚˜ ์™€์ดํŒŒ์ด๋ฅผ ์ผœ๊ฑฐ๋‚˜ ํ•˜์‹œ๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์—ฌ๋Ÿฌ๋ถ„ ์ปดํ“จํ„ฐ๋กœ ์ ‘์†์„ ์š”์ฒญํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

์ปดํ“จํ„ฐ๋Š” ์™ธ๋ถ€์™€ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ๋ฉ์ด 60000๊ฐœ ์ •๋„ ์žˆ๋Š”๋ฐ ์ด๊ฑธ 'ํฌํŠธ'๋ผ๊ณ  ๋ถ€๋ฆ„

ํ‰์ƒ์‹œ์—” ๋ง‰ํ˜€์žˆ๋Š”๋ฐ, ์™ธ๋ถ€ ์ปดํ“จํ„ฐ ์ ‘์†์„ ํ—ˆ๊ฐ€ํ•˜๋ ค๋ฉด ํฌํŠธ๋ฅผ ์—ด์–ด์•ผ ํ•œ๋‹ค.

์˜ˆ์ „์—” "์„ธ์ดํด๋Ÿฝ ์ฑ„ํŒ…์„ ํ•˜๋ ค๋ฉด ์ œ ์ปดํ“จํ„ฐ ์•„์ดํ”ผ ์ฃผ์†Œ๋ฅผ ์น˜๊ณ  6900 ํฌํŠธ๋กœ ๋“ค์–ด์˜ค์„ธ์š”~"

์ด๋Ÿฐ ์‹์œผ๋กœ ํ™œ์šฉํ–ˆ์Œ.

 

์ด์™€ ๋น„์Šทํ•˜๊ฒŒ ์šฐ๋ฆฌ๋Š” ๋ฌด์ž‘์œ„๋กœ ํ•˜๋‚˜ ๊ณ ๋ฅธ 8080๋ฒˆ์งธ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์„œ๋ฒ„๋ฅผ ๋„์šด ๊ฒƒ์ผ ๋ฟ

์ด์ œ ์™ธ๋ถ€ ์ปดํ“จํ„ฐ๊ฐ€ ๋‚ด ์ปดํ“จํ„ฐ ์•„์ดํ”ผ ์ฃผ์†Œ:8080์ด๋ผ๊ณ  ์ž…๋ ฅํ•˜๋ฉด ๋‚ด ์ปดํ“จํ„ฐ๋กœ ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ

 

โœ… callback ํ•จ์ˆ˜๋ž€?

 

function(){} ์ด๋ผ๋Š” ๋ฌธ๋ฒ•์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ํ•จ์ˆ˜๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค๊ฒ ์Šต๋‹ˆ๋‹ค~ ๋ผ๋Š” ๋œป

function ํ•จ์ˆ˜์ด๋ฆ„( ){ }

 

 

๊ทธ๋Ÿฐ๋ฐ ์œ„์—์„œ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋Š” ์ด๋ ‡๊ฒŒ ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. 

.listen(์„œ๋ฒ„๋ฅผ ์˜คํ”ˆํ•  ํฌํŠธ๋ฒˆํ˜ธ, function(){์„œ๋ฒ„ ์˜คํ”ˆ์‹œ ์‹คํ–‰ํ•  ์ฝ”๋“œ})

์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ๋ฌธ๋ฒ•์  ๊ฐœ๋… ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ฐ”๋กœ function(){} ๋ถ€๋ถ„์ด๋‹ค.

1. ๊ทธ๋Ÿฐ๋ฐ ์œ„์˜ ์˜ˆ์ œ ์ฝ”๋“œ์—์„  ํ•จ์ˆ˜๋ช…์„ ์ž‘๋ช…ํ•˜๋Š” ๋ถ€๋ถ„์ด ์—†๊ณ  function(){} ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ 

2. listen()์ด๋ผ๋Š” ํ•จ์ˆ˜ ์•ˆ์— ํ•จ์ˆ˜๋ฅผ ์ง‘์–ด๋„ฃ๋Š” ํ˜•ํƒœ๋กœ ์‚ฌ์šฉ

์ด๊ฑธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„  '์ฝœ๋ฐฑํ•จ์ˆ˜'๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

์ •์˜๋Š” ํ•จ์ˆ˜์•ˆ์— ๋“ค์–ด๊ฐ€๋Š” ํ•จ์ˆ˜

 

์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ์“ฐ๋Š” ์ด์œ ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ญ”๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ

listen() ์ด๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ๋™์ž‘์‹œํ‚จ ๋‹ค์Œ์— function(){} ๋‚ด์— ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ด์ฃผ์„ธ์š”~ ๋ผ๋Š” ๋œป์œผ๋กœ ์‚ฌ์šฉํ•œ ๊ฒƒ

Node.js ํŠน์„ฑ์ƒ ์ฝ”๋“œ๋ฅผ ์—ฐ๋‹ฌ์•„์„œ 2๊ฐœ ์ ๋Š”๋‹ค๊ณ  ๊ทธ ์ฝ”๋“œ๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰๋œ๋‹ค๋Š” ๋ณด์žฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— 

๋ญ”๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰ํ•  ๋•Œ 'ํ•จ์ˆ˜์•ˆ์— ํ•จ์ˆ˜๋ฅผ ์ง‘์–ด๋„ฃ๋Š” ์ฝœ๋ฐฑํ•จ์ˆ˜'๋ฅผ ๊ผญ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.  

 

๐Ÿ“Œ GET ์š”์ฒญ ์ฒ˜๋ฆฌ ๊ธฐ๊ณ„ ๋งŒ๋“ค๊ธฐ

์„œ๋ฒ„๋Š” ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๊ณ„์ด๋‹ค.

์š”์ฒญ์„ ์–ด๋–ป๊ฒŒ ํ•˜๋ƒ๋ฉด, ๋ฐ”๋กœ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ผœ์„œ ์ฃผ์†Œ์ฐฝ์— URL์„ ์ž…๋ ฅ

์ด ์š”์ฒญ์€ ์ „๋ฌธ์šฉ์–ด๋กœ GET ์š”์ฒญ์ด๋ผ๊ณ  ํ•จ. ๊ฐ„๋‹จํ•˜๊ฒŒ ์ฃผ์†Œ์ฐฝ์— URL์„ ๋–„๋ ค๋ฐ•์•„์„œ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ

 

์šฐ๋ฆฌ ์„œ๋ฒ„์˜ /pet ๊ฒฝ๋กœ๋กœ ์ ‘์†ํ•˜๋ฉด 'ํŽซ์šฉํ’ˆ ์‚ฌ์„ธ์š”' ๋ผ๋Š” ์•ˆ๋‚ด๋ฉ”์„ธ์ง€๋ฅผ ๋„์›Œ์ฃผ๋Š” ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž. 

app.get('/pet', function(์š”์ฒญ, ์‘๋‹ต) { 
  ์‘๋‹ต.send('ํŽซ์šฉํ’ˆ ์‚ฌ์‹œ์˜ค')
})

์ด๋ ‡๊ฒŒ server.js ํ•˜๋‹จ์— ์ถ”๊ฐ€ํ•˜์‹œ๋ฉด ๋œ๋‹ค.

๋ธŒ๋ผ์šฐ์ € ์ผœ์„œ localhost:8080/pet ์ด๋ผ๊ณ  ์ ‘์†ํ•˜๋ฉด ํŽซ์šฉํ’ˆ ์‚ฌ๋ผ๋Š” ์•ˆ๋‚ด๋ฌธ์ด ๋œธ

(ํ„ฐ๋ฏธ๋„์—์„œ ctrl + c ๋ˆ„๋ฅด์‹œ๊ณ  ์„œ๋ฒ„๋ฅผ ๋ˆ ๋‹ค์Œ node server.js ์ž…๋ ฅํ•ด์„œ ์„œ๋ฒ„๋ฅผ ์žฌ์‹œ์ž‘ํ•˜์…”์•ผํ•ฉ๋‹ˆ๋‹ค)

728x90