
1. Node.js์ Express์ ๊ด๊ณ Express๋ Node๋ฅผ ์ฝ๊ฒ ๋ง๋ค ์ ์๋๋ก ๋์์ฃผ๋ ํ๋ ์์ํฌ์ด๋ค. 2. Node.js์ npm ๋ค์ด๋ก๋ > 1. cmd ์คํ > // node.js ์ค์น ์ฌ๋ถ๋ฅผ ํ์ธ > 2. node -v > // ๊ฐ์ฅ ์ต์ ๋ฒ
ํด๋ผ์ด์ธํธ ์๋ฒ ํต์ ๋ฐฉ๋ฒ ํด๋ผ์ด์ธํธ์์ input์ ๋ ฅ ํ ๊ทธ ๊ฐ์ ์๋ฒ์๊ฒ ์ ์ก. ์ด๋ body-parser dependency๋ฅผ ์ด์ฉํ์ฌ ํด๋ผ์ด์ธํธ๊ฐ ์ ์กํ๋ ๊ฑธ ์๋ฒ์์ ๋ฐ์ ์ ์์. body-parser dependency ์ค์น index.js ์์ ๋ฒ์
๋น๋ฐ์ ๋ณด ๋ณดํธํ๊ธฐ ์์ค์ฝ๋๋ฅผ git์๋ค ์ฌ๋ฆฌ๋ฉด ๋ค๋ฅธ ์ฌ๋๋ค์ด scretํ ์ ๋ณด๋ค์ ๋ณด๊ฒ๋จ. ์ด๋ฅผ ๋ชป๋ณด๊ฒ ํ๋ ค๋ฉด, ๋น๋ฐ์ ๋ณด๋ค์ ๋ค ํ ํ์ผ์ ๋ชฐ์๋ ํ .gitignore ํ์ผ์ ๋ฃ์ด์ค ์๋ฅผ๋ค์ด, index.js์ ์๋ mongo DB ์ด๋ฆ๊ณผ ๋น๋ฐ๋ฒํธ๋ ๋น๋ฐ์ ๋ณด! ๊ทธ
๋ก๊ทธ์ธ ๊ธฐ๋ฅ ๊ตฌํ index.js์์ ๋ก๊ทธ์ธ route ๋ง๋ค๊ธฐ route ์์์ ๊ตฌํ ํด์ผํ ๊ฒ DB์ ์์ฒญํ ์ด๋ฉ์ผ ์ฐพ๊ธฐ DB์ ์์ฒญํ ์ด๋ฉ์ผ์ด ์๋ค๋ฉด ๋น๋ฐ๋ฒํธ๊ฐ ๊ฐ์์ง ํ์ธ ๋น๋ฐ๋ฒํธ๊น์ง ๊ฐ๋ค๋ฉด Token์ ์์ฑ (Token ์์ฑ์ ์ํด์ JSONWEBTOKEN ๋ผ์ด

Auth route ์์ฑ ๋ก๊ทธ์ธ์ ์ํ ์ฌ์ฉ์๋ ์ด์ฉํ ์ ์๋ ํ์ด์ง ๋๋ ๊ด๋ฆฌ์๋ง ์ด์ฉํ ์ ์๋ ํ์ด์ง ๋ฑ์ ์ฒดํฌํ๊ธฐ ์ํด Auth ๊ธฐ๋ฅ์ ๋ง๋ค์ด์ผํจ client์์ ํ ํฐ์ด ์ธ์ฝ๋ ๋์ด์๋ ์ํ๋ก, ์ด๋ฅผ ์๋ฒ์์ ๋ณตํธํ ํ๋ฉด userId๊ฐ ๋์จ๋ค. ์๋ฒ์์๋ u
NPM์ registry๋ผ๋ ์ ์ฅ์ ์ญํ ์ด๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ ๋ ํญ์ NPM ~ ํ๋ฉฐ ๋ช ๋ น์ด๋ฅผ ์์ฑํ์๋๋ฐ, ์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๋ด๊ณ ์๋ ๊ณณ์ด๋ผ ํ ์ ์๋ค. NPM build ~๋ฅผ ํตํด ๋ฐฐํฌ๋ฅผ ํ ์ ์์package.js์ NPM์ ๊ดํ ์ ๋ณด๊ฐ ๋ด๊ฒจ ์์๋ก

์ ์๋ Client๊ฐ ์์๊ธฐ ๋๋ฌธ์ Postman์ ์ด์ฉํ์ฌ ํต์ ํ์์ด์ ๋ Client๊ฐ ์์ผ๋, Axios๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ์ ํต์ ํ ์ ์์.๊ทธ๋ ๋ค๋ฉด, ๊ณง๋ฐ๋ก ์๋ฒ์ ํด๋ผ์ด์ธํธ ํต์ ์ ํด๋ณด์!์ฝ์์ ๋ฌ ์ค๋ฅ ์ค ์ฒซ ๋ฒ์งธ ์ค๋ฅ๋ฅผ ๋ณด์๋ฉด CORS(Cross-Origin

function ์ปดํฌ๋ํธ๋ณด๋ค ๋ ๋ง์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ค.๋์ , ์ฝ๋๊ฐ ๋ ๊ธธ์ด์ง๊ณ ๋ณต์กํด์ง๋ค.์ฑ๋ฅ์ด ๋๋ ค์ง๋ค.์ ๊ณต๋๋ ๊ธฐ๋ฅ์ด ํ์ ์ ์ด๋ค.-> hook์ ํตํด ๋ง์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๊ฒ ๋จ๋์ , ์ฝ๋๊ฐ ์งง์์ง๊ณ ๊ฐ๊ฒฐํด์ง๋ค.์ฑ๋ฅ์ด ๋น ๋ฅด๋ค.
๋ฆฌ๋์ค ํ์ต ๋ธ๋ก๊ทธ ์ฐธ๊ณ (1) props์ state props properties์ ์ค์๋ง ๋ถ๋ชจ์ ์์ ์ปดํฌ๋ํธ ๊ฐ ๋ฌด์ธ๊ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ์ฌ์ฉ (๋ถ๋ชจ์์ ์์์ผ๋ก) props๋ ๋ณํ ์ ์์ (ex, ๋ถ๋ชจ์์ ์์์ผ๋ก 1์ด๋ผ๋ ๊ฐ์ ๋ด๋ ค์คฌ์ ๋, ์์์์๋ 1์

Node.js๋ก ๊ฐ๋จํ๊ฒ ์๋ฒ api ๋ง๋ค๊ณ , ํ๋ก ํธ์ ์ฐ๊ฒฐ์ํค๋ ๊ณผ์ ์ ํด๋ณด์๋ค!!์ฒ์์ผ๋ก ์ง์ ๋ง๋ api๋ฅผ ์ฌ์ฉํ๋ ๊ฑฐ๋ผ ์ ๊ธฐํ๊ณ ํฅ๋ฏธ๋กญ๊ตฐ . . . ๋ก๊ทธ์ธ ํ์ด์ง ํ๋ฉด ๋ค๋ฅธ ํ์ด์ง๋ค๋ ๊ตฌํํด๋ด์ผ๊ฒ ๋ค โจ์ฐ์ MONGO DB์ ์ด๋ฉ์ผ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ด์ฉํ์ฌ ํ์๊ฐ์

๋ก๊ทธ์ธ ํ์ด์ง๋ฅผ ๊ตฌํํ๋ค๋ฉด, ํ์๊ฐ์ ํ์ด์ง์์๋ ๋ช๊ฐ์ง ์ธ๋ถ์์๋ฅผ ์ ์ธํ๊ณ ๊ตฌํ ๋ฐฉ๋ฒ์ ๋์ผํ๋ค. ํ์ง๋ง ์ธ๋ถ์ ์ผ๋ก ์ ๊ฒฝ์ธ ๋ถ๋ถ์ ๊ธฐ๋กํด๋๊ธฐ ์ํด์ ์์ฑ !!โจ return res.status(200).json({success: true}) ์ด ๋ถ๋ถ์์ success

ํ์ด์ง ์ค์์ ์๋ฌด๋ ์ ๊ทผํ ์ ์๋ ํ์ด์ง ๋๋ ๊ด๋ฆฌ์๋ง ์ ๊ทผํ ์ ์๋ ํ์ด์ง, ๋ก๊ทธ์ธํ ์ฌ๋๋ง ์ ๊ทผํ ์ ์๋ ํ์ด์ง, ๋ก๊ทธ์ธ์ ํ๋๋ฐ ๋๋ค์ ๋ก๊ทธ์ธ ํ์ด์ง๋ก ์ง์ ํ๋ ๋ฑ ํ์ด์ง์ ๋ํ ๊ถํ์ด ๊ฐ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ `Auth๋ฅผ ํ์ธ`ํด์ผ ํ๋ค. > ๊ทธ๋ฌ๋ ค๋ฉด `HO

์ฑํ ๋ฐฉ์ด๋ ๋ฉ์ ์ ๊ธฐ๋ฅ์ ๋ง๋ค ๋ ์ ํฉํ socket.io๋ฅผ ์ด์ฉํ์ฌ ๊ฐ๋จํ ์ฑํ ๊ธฐ๋ฅ์ ๋ง๋ค์ด ๋ณผ ๊ฒ์ด๋ค. ๐ ๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ๋ server์ client ํด๋๋ฅผ ๊ฐ๊ฐ ๋ง๋ค๊ณ client์ react ์ค์น, server์ npm init , npm i socket.
์ฑํ ํ์ด์ง ๊ตฌํ์ ๋์ผ๋ก ๊ฐ์ธํ๋ก์ ํธ์ ๋ง์ ๋ด๋ ธ๋ค ..!! ๋ชจ๋ฅด๋ฉด ๋ํผ๋ฐ์ค๋ฅผ ์ฐธ์กฐํ๊ณ , ์ปค๋ฎค๋ํฐ์ ๋์์ ์์ฒญํ๋ฉฐ ํ๋ํ๋ ๋ง๋ ํ๋ก์ ํธ๋ผ ์ ์ฐฉ์ด ํฌ๋ค. ๐ฅฒ ์์ผ๋ก ๋ ๋ง์ ํ๋ก์ ํธ๋ฅผ ๊ฒฝํํ ํ ๋ฐ ๋ฐ๊ฑฐ๋ฆ์ด ๋๊ฒ ์ง. ๊ธฐ๋๊ฐ ๋๋ค. ๐ช๐ป !! 1\. ์๋ฒ์์ soc
ํ๋ก์ ํธ๋ฅผ ๊ตฌํํ ๋ ์ง๋ฌด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ณ ๋ฏผ์๋ด.. ์ผ์ข ์ ์๋ฃจ์ ์ ์ ๊ณตํด์ฃผ๋ chatbot์ ๊ตฌํํด๋ณด๊ณ ์ถ์ด node, react, ๊ตฌ๊ธ์ dialogflow api๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ๊ฒ ์ฑ๋ด ๊ธฐ๋ฅ์ ๊ตฌํํด๋ณด์๋ค. ๊ทธ๋ฌ๋ ๋ง์ ํ๋ก์ ํธ์๋ socket ์ฌ์ฉํด์ ์ฌ์ฉ์ ๊ฐ