์ด๋ฒ ์ฃผ ํ ์ผ
Node.js ํซ์ํฐ ํ๋ก์ ํธ / Back-office-team-project
Keep
1. main์ ์ต์ข
์์ฑ๋ ๊ธฐ๋ฅ์ ํฉ์ณ์ฃผ๊ณ ๊ฐ๋ฐ์ main ์๋์ develop์ด๋ผ๋ ๋ธ๋์น๋ฅผ ์๋ก ํ์,
๊ฑฐ๊ธฐ์์ ๊ฐ์์ ๊ธฐ๋ฅ๋ค์ ๋งก์ ๋ธ๋์น๋ฅผ ๋ง๋ค์ด ์์
ํ ์ .
2. ๋ณธ์ธ ๋ธ๋์น์ ์์ ๊ฒฐ๊ณผ๋ฌผ์ push ํ๊ณ ํ๋ฆฌํ๋ฅผ ์์ฑํด ๋ ๋ค์, merge๋ฅผ ํ๊ณ ์ ํ ๋๋, ํ๋ฆฌํ ์์ฑ ์์๋๋ก, ํ์๋ค๊ณผ ๊ฐ์ด ๋ด๊ฐ๋ฉฐ ์งํํ๋ ๊ฒ์ด ์๊ฐ์์ค, ์ฝ๋์์ค์ ์ค์ผ ์ ์๋ค๋ ์ .
3. ์ด๋ฒ ๊ณ๊ธฐ๋ฅผ ํตํด ํญ์ git์ผ๋ก ํ์ ์ ์งํํ๊ณ ์ ํ๋ค๋ฉด, gitignore ์ด๊ธฐ ์ธํ ์ config ํด๋ ๋๋ .envํ์ผ ๋ฑ์ ์ ์ธํ ํด๋๊ณ ํ์ ์ ๋ค์ด๊ฐ์ผ ํ๋ค๋ ์ .
4. ๋ชจ๋ฅด๋ ํน์ ์๋ก์ด ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค ๋งํ๋ ๋ถ๋ถ์์ ๊ฐ๋ฅํ๋ค๋ฉด ํ์๋ค๊ณผ ๊ฐ์ด ํ๋ฉด๊ณต์ ๋ฅผ ํตํด ์ง๋จ์ง์ฑ์ ํ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด ๋๊ฐ๋ ์ ๋ ์ด๋ฒ ๊ฒฝํ์์ ๊ต์ฅํ ์ธ์๊น์๋ค.
5. ์ญํ ๋ถ๋ฐฐ๋ฅผ ๊ฐ์๊ฐ ๋ถ๋์ ๋ง๊ฒ๋ ์ ๋ฐฐ๋ถํ๊ณ , ํ๋ฃจ๋ง๋ค ์ง๊ธ์ฒ๋ผ ๊ฐ์์ ์์ฑ๋๋ฅผ ์ฒดํฌํ ์ ์๋ ์๊ฐ์ ๊ฐ์ง๋ฉด ์๋ก ์๊ทน๋ ๋๊ณ , ํ์ ๊ฐ์ ์์ฌ์ํต์ ์์ด์ ๊ต์ฅํ ์ป๋ ๋ถ๋ถ์ด ๋ง์๊ฒ ๊ฐ์ผ๋ ์ด ๋ถ๋ถ๋ ์ ์งํ ์ ์๋๋ก ํด์ผ๊ฒ ๋ค.
Poblem
1. git์์ config ์ DB์ ๋ณด๋ฅผ ๊ฐ๋ฆฌ๊ธฐ ์ํด .gitignore๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์ด๋ฏธ ํ ๋ฒ github์ config ํด๋๊ฐ ์ฌ๋ผ๊ฐ๋ ์ ์ด ์์๋ค.
๊ทธ ํ๋ก ๊ฐ์ ์์
์ ์งํํ๋ค๊ฐ, ๋๋ ์์
์ ๋ง์น๊ณ ์ ๋ฒ์ ๊ฒฝํํ๋ ๊ทธ๋๋ก ์๊ฒฉ ๋ ํผ์งํ ๋ฆฌ์ cach๋ง ์ญ์ ๋ฅผ ํ๊ธฐ์ํด ๋ช
๋ น์ด๋ฅผ ์ณค๋๋ฐ, ๊ฐ์๊ธฐ ๋ด ๋ก์ปฌ ์์
ํ์ผ์ config.json ํ์ผ๋ ๋ ๋ผ๊ฐ๊ฒ ๋์๋ค.
2. ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์์ ์ด๋ฉ์ผ ์ธ์ฆ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ์ถ์ด, ์ฌ๋ฌ๊ฐ์ง ์๋๋ฅผ ํด๋ณด์์ง๋ง, ๋๋ด ์คํ์์ผ๋ด์ง ๋ชปํ๋ค.
3. DOM์ผ๋ก ํด๋น HTMLํ๊ทธ๋ฅผ ๊ฐ์ ธ์ ๊ทธ ํ๊ทธ์ addEventListner๋ฅผ ์ ์ฉ์์ผ์ 'ํ์ํํด'๋ผ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ์ ํ๋๋ฐ,
๋ฐ์ดํฐ๋ ๋ฐฑ์ด๋ ์ฐ๊ฒฐ์ด ๋์ ์ ํ๋ฅด๋๊ฑธ ํ์ธํ์ผ๋, ํ๋ฉด์ ํ์ถ๋๋ ๊ฐ์ ์๋ฒ์ ์ฝ๋๊ฐ ์๋์ด์ค๊ณ , ํ์ง๋ง DB๋ฅผ ํ์ธํด๋ณด๋ฉด ํํดํ๊ณ ์ ํ๋ User์ ๊ณ์ ์ด ์ญ์ ๋๊ฑธ๋ก ๋ณด์, ์ต์ข
์ฝ๋๊น์ง๋ ๋ฐ์ดํฐ๊ฐ ์ ๋ฌ์ด ๋์๋ค๋ ๊ฒ์ธ๋ฐ.. ์๋ฒ์์ ์ ์์ ์ผ๋ก ํ์ถํ๊ณ ์ ํ๋ status์ message๊ฐ์ด ์ ์๋์ด์ค๋๊ฑด์ง๋ฅผ ์ฐธ ์ค๋์๊ฐ ํด๋งธ๋ค.
4. ํ๋ก ํธ์ ๋ฐฑ์ ์ฐ๊ฒฐํจ์ ์์ด์ ์ง๋ ๊ณผ์ ์์๋ ejs๋ฅผ ์ฌ์ฉํ์ง๋ง, ์ด๋ฒ์ ejs๋ฅผ ์ฌ์ฉํ์ง ์๊ณ , ์งํ์ ํ๊ณ ์ ํ๊ธฐ์, ์ด๋ป๊ฒ ํ๋ก ํธ๋ฅผ ๊ธ์ด์ ๋์์ค์ผ ํ ์ง ๊ณ ๋ฏผ์ด ๋ง์ด๋์๋ค.
Try
1. ๋ด๊ฐ ์น ์ฝ๋๋ git rm --cached config/config.json์ด๋ค. ์ ๋ฒ์๋ ๋์ผํ ์ฝ๋๋ก ๋์ ์๊ฒฉ๋ ํผ์งํ ๋ฆฌ ์บ์ฌ๋ฅผ ์ญ์ ํ์ ์ด ์์๋ค. ๊ทผ๋ฐ ์ด๋ฒ์ ์ด ๋ช
๋ น์ด๋ฅผ ํ์ดํํ๋ config.jsonํ์ผ์ด ๋ก์ปฌ์์๋ ๋ ๋ผ๊ฐ๋ค....
๋ด๊ฐ git ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ ๋ด์ญ์ ๋ณด์๋ ํน์ด์ ์ ๊ตณ์ด ์ฐพ์๋ฉด ์ ์์ ์ฝ๋๋ฅผ ์ณค์ ๋์ธ๋ฐ... ์ ๋ฒ์ ์ด๋ฏธ ์ฌ๋ ค๋ config๋ฅผ ์ ์ฝ๋๋ฅผ ํตํด ์บ์ฌ๋ฅผ ์ญ์ ํ์๊ณ , ์ค์ ๋ก ๋ก์ปฌ์์๋ ์ฌ๋ผ์ง์ง ์์์ฑ .gitignore๊ฐ ์ ์์ ์ผ๋ก ์ ์ฉ๋์ด์๋๊ฑธ ํ์ธํ๊ณ ์๋ค. ๊ทผ๋ฐ ์ด๋ฒ ํ๋ก์ ํธ์์๋ ์ฌ๋ผ์ ธ์ ๋ง์ด ๋๊ฐํ์๋ค. ์ด ๋ถ๋ถ์ ํด๊ฒฐํ๊ฒ์ ๊ฐ์ ์กฐ ํ์ฅ๋์ ๋์์ผ๋ก git history์์ config๋ฅผ commitํ ๋ด์ญ์ ์ ๋ถ ์ญ์ ํ๊ณ , ์ญ์ ํ์ ์ปค๋ฐ๊ธฐ๋ก์ ๋ค์ ์ปค๋ฐํ๋ค. ์ด๋ ๊ฒ ํด์ config ๋ฟ๋ง ์๋ .env ํ์ผ๋ ์ ์์ ์ผ๋ก ignore ์ํฌ ์ ์์๋ค.
2. ์ด๋ค ์ด๋ฉ์ผ์ด๋ ์๊ด์์์ผ๋, ๋ด๊ฐ ๊ฐ์ฅ ๊ทธ๋๋ ๋ณดํธ์ ์ผ๋ก ๋ง์ด ์ฌ์ฉํ๋ naver์๋ฒ๋ฅผ ํตํด์ ์ธ์ฆ ๋ฉ์ผ์ ๋ฐ์กํ๊ณ ์ ํ๋ค.
๋ฐ์ํ ๋ฌธ์ ์ ์ ์ฐ์ SMTP์๋ฒ ๋ฌธ์ ๊ทธ๋ฆฌ๊ณ port๋ฅผ ์ด๋ค port๋ฅผ ์ฌ์ฉํ๋์ง ๋ชฐ๋๋ค๋ ์ ์ด๋ค. ์ด ๋ถ๋ถ์ naver ์ค์ ์์ ํด๋น SMTP์๋ฒ๋ฅผ ์ด๊ณ port๋ ์ ์๋ ๋ฒํธ๋ฅผ ์ฌ์ฉํ๋ฉด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ผ๋, ๊ทธ ์ด์์ ์ง์ ์ด ์์๋ค. ๊ทธ๋์ ์ด ๊ธฐ๋ฅ์ ๊ตฌํํด ๋ณธ ์ฌ๋์ ์ฐพ์๊ฐ์ ์ด๋ค์์ผ๋ก ํด๊ฒฐํ๋์ง ์ค๋ช
์ ์์ฒญํ๊ณ , ํด๋น ์ฝ๋๋ฅผ ์ฐธ๊ณ ์ผ์ ๋์ ์ฝ๋์ ๋น๊ตํด๋ณด์๋ค. ์ด ๋ถ๋ถ์ ํตํด์ ์ด๋ฉ์ผ ์ธ์ฆ ๋ก์ง์ ์ถ๊ฐํ ์์ ์ด๋ค.
3. DOM์ผ๋ก ๊ฐ์ ธ์จ HTML ํ๊ทธ๊ฐ formํ๊ทธ์๊ธฐ ๋๋ฌธ์ ์๋์ผ๋ก ๋ฆฌ๋ก๋๋๋ ๊ธฐ๋ฅ์ด ์์๋ค. ๊ทธ ๋ถ๋ถ์์ e.preventDefault()๋ฅผ ํตํด์ ์๋ ๊ธฐ๋ฅ์ ํด์ ํ์๋ค. ์์ ๋ฉ์๋๋ ๊ธฐ๋ฅ์ ๋ช
์์ ์ผ๋ก ์ ์ํ์ง ์๋ ํ ๊ธฐ์กด์ ๊ธฐ๋ฅ๋ค์ ์ ๋ถ ์๋์ ํด์ ํด์ฃผ๋ ์ญํ ์ ํ๋ค.
์์ ๋ฉ์๋๋ฅผ ์ ์ฉํ๊ณ ๋์๋ ์ ์์ ์ผ๋ก return๊ฐ์ด ์ํ๊ฐ์ผ๋ก ์กํ๊ธฐ ์์ํ๊ณ ์ค์ ํ ๋ฉ์์ง ๊ฐ๋ค์ด ์ ์์ ์ผ๋ก ์ถ๋ ฅ๋์๋ค.
4. ejs์์๋ res.render๋ฅผ ํตํด์ ์ค์ ํ htmlํ์ผ์ ๋ณด์ฌ์คฌ๋๋ฐ ์ด๋ฒ์๋ sendFile๋ฅผ ํตํด์ ํ๋ก ํธ์ html์ ๊ธ์ด์์ ๋ณด์ฌ์ฃผ์๋ค. path ํจํค์ง์ join๋ฉ์๋๋ฅผ ํตํด ์ค์ ํ ๊ฒฝ๋ก์ ํ์ผ์ ๊ฐ์ ธ์๊ณ , res.sendFile ์์ join ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ๋ฐ์ดํฐ๋ฅผ ๋์์ฃผ์ด์ ์ ์์ ์ผ๋ก ํ๋ก ํธ์ ๋ฐฑ์ ์ฐ๊ฒฐ์์ผฐ๋ค.
#KPT #ํ๊ณ #1์กฐ #์ฐ์ด #๋ฐฑ์คํผ์ค #ํซ์ํฐ #ํํ๋ก์ ํธ
'ํ๊ณ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[KPTF] : Node.js 7์ฃผ์ฐจ (2) | 2023.07.13 |
---|---|
[KPTF] : Node.js 6์ฃผ์ฐจ (0) | 2023.07.13 |
[KPTF] : 5์ฃผ์ฐจ Node.js ์ ๋ฌธ. (0) | 2023.06.19 |
[WIL / KPTF] : 4์ฃผ์ฐจ ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ ํ ํ๋ก์ ํธ ๊ธฐ๋ฅ ๊ตฌํ. (0) | 2023.06.10 |
[WIL / KPTF] : ์ฒซ ๊ฐ์ธ๊ณผ์ (๋ฐ๋๋ผ ์๋ฐ ์คํฌ๋ฆฝํธ ์นํ์ด์ง ๋ง๋ค๊ธฐ) 3์ฃผ์ฐจ (0) | 2023.06.03 |