๐ท 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๋ฒ์งธ ๋ผ์ธ ๊ณ์ ์ค๋ฅ๋จ ์ด์ฉ๋ผ๋๊ฑฐ์ ๋ ๋ณต๋ถํ๊ฑฐ์ผ;
๊ฐ์ฌํฉ๋๋ค. ์ด๋ฐ ์ ๋ณด๋ฅผ ๋๋ ์ฃผ์ ์ ์ข์์.