Node.js - 18์ผ์ฐจ ๐ŸŒท

์ด์ •์ธยท2023๋…„ 10์›” 31์ผ
0

Node.js

๋ชฉ๋ก ๋ณด๊ธฐ
18/21


๐ŸŒท 18์ผ์ฐจ (2023/10/11 ~ 2023/10/30)๐ŸŒท

โœ…package.json
โœ…express ์„œ๋ฒ„ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ
โœ…express๋กœ html ์„œ๋น™ํ•˜๊ธฐ
โœ…๋ฏธ๋“ค์›จ์–ด ์‚ฌ์šฉํ•˜๊ธฐ
โœ…๋ฏธ๋“ค์›จ์–ด ํŠน์„ฑ ์ดํ•ดํ•˜๊ธฐ
โœ…next ํ™œ์šฉ๋ฒ•
โœ…morgan, bodyParser, cookieParser
โœ…MYSQL ์„ค์น˜ํ•˜๊ธฐ


๐Ÿ“Œpackage.json

โœจ npm ์ด๋ž€

  • ๋…ธ๋“œ์˜ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €
  • ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋งŒ๋“  ์†Œ์Šค ์ฝ”๋“œ๋“ค์„ ๋ชจ์•„๋‘” ์ €์žฅ์†Œ
  • ๋‚จ์˜ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐ€๋Šฅ
  • ์ด๋ฏธ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๋‹ค์‹œ ๊ตฌํ˜„ํ•  ํ•„์š”๊ฐ€ ์—†์–ด ํšจ์œจ์ 
  • ์˜คํ”ˆ ์†Œ์Šค ์ƒํƒœ๊ณ„๋ฅผ ๊ตฌ์„ฑ์ค‘
  • ํŒจํ‚ค์ง€ : npm์— ์—…๋กœ๋“œ๋œ ๋…ธ๋“œ ๋ชจ๋“ˆ
  • ๋ชจ๋“ˆ์ด ๋‹ค๋ฅธ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋“ฏ ํŒจํ‚ค์ง€๋„ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
  • ์˜์กด ๊ด€๊ณ„๋ผ๊ณ  ๋ถ€๋ฆ„

โœจ package.json

  • ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์ •๋ณด์™€ ์‚ฌ์šฉ ์ค‘์ธ ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด์€ ํŒŒ์ผ
  • ๊ฐ™์€ ํŒจํ‚ค์ง€๋ผ๋„ ๋ฒ„์ „๋ณ„๋กœ ๊ธฐ๋Šฅ์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ฒ„์ „์„ ๊ธฐ๋กํ•ด๋‘์–ด์•ผ ํ•จ
  • ๋™์ผํ•œ ๋ฒ„์ „์„ ์„ค์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ์Œ
  • ๋…ธ๋“œ ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ ์ „ package.json ๋ถ€ํ„ฐ ๋งŒ๋“ค๊ณ  ์‹œ์ž‘ํ•จ (npm init)

โœจ package.json ์†์„ฑ๋“ค

  • package name : ํŒจํ‚ค์ง€์˜ ์ด๋ฆ„
  • version : ํŒจํ‚ค์ง€์˜ ๋ฒ„์ „ / npm์˜ ๋ฒ„์ „์„ ๋‹ค์†Œ ์—„๊ฒฉํ•˜๊ฒŒ ๊ด€๋ฆฌ๋จ
  • entry point : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ํŒŒ์ผ ์ง„์ž…์  / ๋ณดํ†ต ๋งˆ์ง€๋ง‰์œผ๋กœ module.exports๋ฅผ ํ•˜๋Š” ํŒŒ์ผ ์ง€์ •ํ•จ
  • test command : ์ฝ”๋“œ๋ฅผ ํ…Œ์ŠคํŠธํ•  ๋•Œ ์ž…๋ ฅํ•  ๋ช…๋ น์–ด
  • git repository : ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•ด๋‘” Git ์ €์žฅ์†Œ ์ฃผ์†Œ / ๋‚˜์ค‘์— ์†Œ์Šค์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ ์‚ฌ์šฉ์ž๋“ค์ด ์ด ์ €์žฅ์†Œ์— ๋ฐฉ๋ฌธํ•ด ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•  ์ˆ˜ ์žˆ๊ณ , ์ฝ”๋“œ ์ˆ˜์ •๋ณธ์„ ์˜ฌ๋ฆด ์ˆ˜๋„ ์žˆ์Œ
  • keywords : ํ‚ค์›Œ๋“œ๋Š” npm ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์—์„œ ํŒจํ‚ค์ง€๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ
  • license : ํ•ด๋‹น ํŒจํ‚ค์ง€์˜ ๋ผ์ด์„ ์Šค ๋„ฃ๊ธฐ

โœจ npm ์Šคํฌ๋ฆฝํŠธ


๐Ÿ“Œexpress ์„œ๋ฒ„ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ

โœจ express ์†Œ๊ฐœ

  • http ๋ชจ๋“ˆ๋กœ ์›น ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค ๋•Œ ์ฝ”๋“œ๊ฐ€ ๋ณด๊ธฐ ์ข‹์ง€ ์•Š๊ณ , ํ™•์žฅ์„ฑ๋„ ๋–จ์–ด์ง


๐Ÿ“Œ๋ฏธ๋“ค์›จ์–ด ์‚ฌ์šฉํ•˜๊ธฐ

โœจ ์™€์ผ๋“œ์นด๋“œ

  • ์‚ฌ์šฉ๋ฒ•
app.get('/category/:name', (req, res)=> {
	res.send(`hello ${req.params.name}`)
}))
app.get('/category/:name', (req, res)=>{
	res.send('hello wildcard')
})
app.get('/category/Javascript', (req, res) => {
	res.send('hello Javascript')
})
  • ๋”ฐ๋ผ์„œ ์™€์ผ๋“œ ์นด๋“œ์™€ ๋ฒ”์œ„๊ฐ€ ๋„“์€ ๋ผ์šฐํ„ฐ๋“ค์€ ๋ณดํ†ต ์•„๋ž˜์— ์จ์คŒ

๐Ÿ“Œ๋ฏธ๋“ค์›จ์–ด ํŠน์„ฑ ์ดํ•ดํ•˜๊ธฐ

โœจ ๋ฏธ๋“ค์›จ์–ด๋ž€

app.use((req, res, next)=>{
    console.log('๋ชจ๋“  ์š”์ฒญ์— ์‹คํ–‰ํ•˜๊ณ ์‹ถ์–ด์š”')
    next()
})

์ด ๋ถ€๋ถ„์—์„œ

(req, res, next)=>{
    console.log('๋ชจ๋“  ์š”์ฒญ์— ์‹คํ–‰ํ•˜๊ณ ์‹ถ์–ด์š”')
    next()
}

์ด ๋ถ€๋ถ„์„ use ์— ์žฅ์ฐฉ ์‹œํ‚จ๊ฒƒ์ž„.

  • ๋ฏธ๋“ค์›จ์–ด ์—ฌ๋Ÿฌ๊ฐœ ์“ธ ์ˆ˜ ์žˆ์Œ
  • ํ•˜๋‚˜์˜ ๋ฏธ๋“ค์›จ์–ด์—์„œ send๋Š” ํ•œ๋ฒˆ๋งŒ ํ—ˆ์šฉ๋จ
    ex) res.sendFile / res.send / res.json

๐Ÿ“Œnext ํ™œ์šฉ๋ฒ•

โœจnext

  • next ๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ๋‹ค์Œ ์ฝ”๋“œ๋กœ ๋„˜์–ด๊ฐ
  • next๋ฅผ ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜๋ฉด ์‘๋‹ต์ด ์ „์†ก๋˜์ง€ ์•Š์Œ
  • ๋‹ค์Œ ๋ฏธ๋“ค์›จ์–ด(๋ผ์šฐํ„ฐ ๋ฏธ๋“ค์›จ์–ด)๋กœ ๋„˜์–ด๊ฐ€์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ
  • next์— ์ธ์ˆ˜๋กœ ๊ฐ’์„ ๋„ฃ์œผ๋ฉด ์—๋Ÿฌ ํ•ธ๋“ค๋Ÿฌ๋กœ ๋„˜์–ด๊ฐ

โœจ์—๋Ÿฌ ์ฒ˜๋ฆฌ

  • ์—๋Ÿฌ ๋ฏธ๋“ค์›จ์–ด๋กœ ๋„˜์–ด๊ฐ
  • next()์— ์ธ์ˆ˜๊ฐ€ ๋‹ด๊ธฐ๋ฉด ์—๋Ÿฌ ๋ฏธ๋“ค์›จ์–ด๋กœ ๋„˜์–ด๊ฐ

  • '์‹คํ–‰๋˜๋‚˜์š”?'๊ฐ€ ์ถœ๋ ฅ๋˜์ง€ ์•Š๊ณ  ๋‹ค์Œ ๋ฏธ๋“ค์›จ์–ด๋กœ ๋„˜์–ด๊ฐ€ '์‹คํ–‰๋˜์ง€๋กฑ'์ด ์ถœ๋ ฅ๋จ

๐Ÿ“ŒMYSQL ์„ค์น˜ํ•˜๊ธฐ

โœจ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ž€

  • ์ง€๊ธˆ๊นŒ์ง€๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ–ˆ์Œ
    -> ์„œ๋ฒ„๋ฅผ ์žฌ์‹œ์ž‘ํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋„ ์‚ฌ๋ผ์ ธ๋ฒ„๋ฆผ => ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅํ•  ๊ณต๊ฐ„ ํ•„์š”
  • MySQL ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ
    -> ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค : ๊ด€๋ จ์„ฑ์„ ๊ฐ€์ง€๋ฉฐ ์ค‘๋ณต์ด ์—†๋Š” ๋ฐ์ดํ„ฐ๋“ค์˜ ์ง‘ํ•ฉ
    -> DBMS : ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์‹œ์Šคํ…œ
    -> ์„œ๋ฒ„์˜ ํ•˜๋“œ ๋””์Šคํฌ๋‚˜ SSD ๋“ฑ์˜. ์ €์žฅ ๋งค์ฒด์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ
    -> ์„œ๋ฒ„ ์ข…๋ฃŒ ์—ฌ๋ถ€์™€ ์ƒ๊ด€ ์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
    -> ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ๋™์‹œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ณ , ๊ถŒํ•œ์„ ๋”ฐ๋กœ ์ค„ ์ˆ˜ ์žˆ์Œ
profile
๋‘‰์ด๋‹

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

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด