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

์ด์ •์ธยท2023๋…„ 11์›” 13์ผ
0

Node.js

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


๐ŸŒท 21์ผ์ฐจ (2023/11/8 ~ 2023/11/14)๐ŸŒท

โœ…์‹œํ€„๋ผ์ด์ฆˆ ์‹ค์Šตํ•˜๊ธฐ
โœ…ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ๊ฐ–์ถ”๊ธฐ
โœ…๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ธํŒ…ํ•˜๊ธฐ


๐Ÿ“Œํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ๊ฐ–์ถ”๊ธฐ(์„น์…˜ 8)

โœจ ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ

  • ๋ฒ„์ „์„ ์ œ์ผ ๋‚ฎ์€ ๋ฒ„์ „์ธ 0.0.1๋กœ ์„ค์ •ํ•˜๋Š” ์ด์œ 
    : ๋ฒ„์ „์„ ํ•œ๋ฒˆ ์˜ฌ๋ฆฌ๋ฉด ๋‹ค์‹œ ๋‚ด๋ฆด ์ˆ˜ ์—†์Œ..
  • ๋ผ์šฐํ„ฐ -> ์ปจํŠธ๋กค๋Ÿฌ -> ์„œ๋น„์Šค(์š”์ฒญ, ์‘๋‹ต ๋ชจ๋ฆ„)

    1) ์ƒˆ๋กœ ๋งŒ๋“  ๋””๋ž™ํ† ๋ฆฌ (ํด๋”) ๋กœ ์ด๋™ cd ์ด๋™ํ• ํด๋”
    2) npm init ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์ดˆ๊ธฐ ์„ธํŒ… (์œ„ ์‚ฌ์ง„ ์ฐธ๊ณ )
    3) npm i sequelize mysql2 sequelize-cli
    4) npx sequelize init
    : '"node"'์€(๋Š”) ๋‚ด๋ถ€ ๋˜๋Š” ์™ธ๋ถ€ ๋ช…๋ น, ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ, ๋˜๋Š” ๋ฐฐ์น˜ ํŒŒ์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋ผ๋Š” ์˜ค๋ฅ˜ ๋ฐœ์ƒ
    -> ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• : powershell ๋ง๊ณ  cmd์—์„œ ์‹คํ–‰ (default terminal์„ cmd๋กœ ๋ฐ”๊ฟˆ)
    5) passport, public, routes, views ํŒŒ์ผ์„ ์ƒ์œ„ ๋””๋ž™ํ† ๋ฆฌ์ธ Ch_09์— ์ƒ์„ฑ
    6) .env, app.js ํŒŒ์ผ ์ƒ์œ„ ๋””๋ž™ํ† ๋ฆฌ์ธ Ch_09์— ์ถ”๊ฐ€
    : app.js ํŒŒ์ผ์ด ๋ฉ”์ธ ํŒŒ์ผ์ž„
    7) npm i express cookie-parser express-session morgan multer dotenv nunjucks ๋ช…๋ น์–ด๋กœ ์„ค์น˜
    8) npm i -D nodemon ๊ฐœ๋ฐœ์šฉ ์„œ๋ฒ„ ๋…ธ๋“œ๋ชฌ ์„ค์น˜
    9) app.js ํŒŒ์ผ ์ž‘์„ฑ
    10) routes ํŒŒ์ผ ์•ˆ์— page.js ํŒŒ์ผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ž‘์„ฑ
    11) views ํŒŒ์ผ ์•ˆ์— error.html ํŒŒ์ผ ์ถ”๊ฐ€
    12) .env ํŒŒ์ผ์— COOKIE_SECRET=cookiesecret ์ž‘์„ฑ
    13) routes ํŒŒ์ผ์˜ page.js ์ž‘์„ฑ
    14) ์ƒ์œ„ ๋””๋ž™ํ† ๋ฆฌ์— controllers ๋””๋ž™ํ† ๋ฆฌ ์ƒ์„ฑ
    15) controllers ํด๋”์— page.js ํŒŒ์ผ ์ƒ์„ฑํ›„ ์ž‘์„ฑ
    16) views ํด๋”์— profile.html, join.html, main.html ํŒŒ์ผ ์ƒ์„ฑ
    17) github.com/ZeroCho/nodejs-book/ ์—ฌ๊ธฐ์—์„œ Ch_09 > 09.01 > controllers ์— ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ๋“ค ๋‹ค ๋ณต๋ถ™ํ•˜๊ธฐ
    18) Ch_09 > 09.01 > public > main.css ๋ณต๋ถ™
    19) Ch_09 > package.json ์— "start": "nodemon app.js" ์ถ”๊ฐ€ํ•ด์•ผ npm start ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ

๐Ÿ“Œํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ๊ฐ–์ถ”๊ธฐ(์ด๊ฑด section9 ์ด๋„ค;)

โœจ API (Application Programming Interface)

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

โœจ ํฌ๋กค๋ง (Crawling)

  • ์›น ์‚ฌ์ดํŠธ๊ฐ€ ์ž์ฒด์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” API๊ฐ€ ์—†๊ฑฐ๋‚˜ API ์ด์šฉ์— ์ œํ•œ์ด ์žˆ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ํ‘œ๋ฉด์ ์œผ๋กœ ๋ณด์ด๋Š” ์›น ์‚ฌ์ดํŠธ์˜ ์ •๋ณด๋ฅผ ์ผ์ • ์ฃผ๊ธฐ๋กœ ์ˆ˜์ง‘ํ•ด ์ž์ฒด์ ์œผ๋กœ ๊ฐ€๊ณตํ•˜๋Š” ๊ธฐ์ˆ 
  • ์›น ์‚ฌ์ดํŠธ์—์„œ ์ง์ ‘ ์ œ๊ณตํ•˜๋Š” API๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ ์–ป์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Œ
  • ์›น ์‚ฌ์ดํŠธ๊ฐ€ ์–ด๋–ค ํŽ˜์ด์ง€์˜ ํฌ๋กค๋ง์„ ํ—ˆ์šฉํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๋„๋ฉ”์ธ/robots.txt์— ์ ‘์†ํ•˜๋ฉด ๋จ

๐Ÿ“Œ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ธํŒ…ํ•˜๊ธฐ

โœจ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ๊ฐ–์ถ”๊ธฐ cont.

  • db๋ฅผ jsํŒŒ์ผ์„ ํ†ตํ•ด ๋งŒ๋“ค์—ˆ๋‹ค๊ฐ€ ์ˆ˜์ •ํ•˜๋ ค๋ฉด ์ง์ ‘ ์ˆ˜์ •ํ•ด์ค˜์•ผ ํ•จ
  • js ํŒŒ์ผ์„ ์ˆ˜์ •ํ•œ๋‹ค๊ณ ํ•ด์„œ db๊ฐ€ ๋ฐ”๋€Œ์ง€๋Š” ์•Š์Œ
    1) models ํด๋”์— user.js, post.js, hashtag.js ํŒŒ์ผ ์ถ”๊ฐ€ & ์ž‘์„ฑ

!!!!! models > index.js ํŒŒ์ผ์˜ 24๋ฒˆ์งธ ๋ผ์ธ ๊ณ„์† ์˜ค๋ฅ˜๋‚จ ์–ด์ฉŒ๋ผ๋Š”๊ฑฐ์ž„ ๋‚œ ๋ณต๋ถ™ํ•œ๊ฑฐ์•ผ;

profile
๋‘‰์ด๋‹

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

comment-user-thumbnail
2023๋…„ 11์›” 13์ผ

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์ •๋ณด๋ฅผ ๋‚˜๋ˆ ์ฃผ์…”์„œ ์ข‹์•„์š”.

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ

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