11์ 30์ผ (ํ)
์ค๋์ ์ด๋ป๊ฒ ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๋์?
- Naver, Kakao, Google ๋ก๊ทธ์ธ ์ธ์ฆ ๊ตฌํ
- Token Function ๊ตฌํ
- Middleware ๊ตฌํ
- OTT Router Controller ๊ตฌํ
- User, Party, Payment ํ์ผ ๊ตฌ์กฐ ์ก๊ธฐ
์ค๋์ ํ๋ก์ ํธ์์ ์ด๋ค ์๋ฌ๊ฐ ๋ฐ์ํ๊ณ , ์ด๋ป๊ฒ ํด๊ฒฐํ๋์?
- ์ด์ ํด๊ฒฐํ์ง ๋ชปํ๋ ์๋ฌ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
์ธ๊ฐ ์ฝ๋๋ฅผ ํ์ธํ ์ ์์์ง๋ง ์ฝ๋ฐฑ ํจ์์ ์ ๋๋ก ๋ฐ์์ง์ง ์์๋ ์ด์ ๋ .env์์ REDIRECT_URI์ ํฌํธ๊ฐ 4000๋ฒ์ด ์๋ 3000๋ฒ์ผ๋ก ๋์ด์์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ฌ๊ธฐ์ ์ค์ํ ์ ์ .env ํ์ผ์ ๋ณ๊ฒฝ์ฌํญ์ ์๋ฒ์ ๋ฐ์ํ๊ธฐ ์ํด์๋ ์ ์ฅ ํ nodemon์ผ๋ก ์๋์ผ๋ก ์๋ฒ๋ฅผ ์คํํ๋ ๊ฒ์ด ์๋๋ผ '์๋ฒ ์์ฒด๋ฅผ ๊ป๋ค๊ฐ ๋ค์ ์คํํด์ค์ผ ํ๋ค๋ ์ '์ ๋๋ค.
3000๋ฒ์ผ๋ก ๋ฐ๊ฟ๋ ๊ณ์ ์๋ฌ๊ฐ ๋ฌ๋ ์ด์ ๊ฐ ์ด ์ ๋๋ฌธ์ด์์ต๋๋ค. - Kakao
์ํฉ: ํ์ฌ Podo์์ access token ๋ฐ๊ธํ ๋ ์ด๋ฉ์ผ๋ง ๊ฐ์ง๊ณ ๋ง๋ค๊ธฐ์ ์ด๋ฉ์ผ ๊ผญ ํ์ํ ์ํฉ์ด์์ต๋๋ค.
๋ฌธ์ : Kakao ์ธ์ฆ ์์ ๋ก๊ทธ์ธ์์ ๋น์ฆ ์ฑ์ผ๋ก ์น๊ฒฉํ์ง ์์ผ๋ฉด ์ด๋ฉ์ผ ์ ๋ณด ์ ๊ณต ์ ํ ๋์๋ง ๊ฐ๋ฅํ ๊ฒ์ด ๋ฌธ์ ์์ต๋๋ค. ๋น์ฆ์ฑ์ผ๋ก ์น๊ฒฉํ๊ธฐ ์ํด์๋ ์ฌ์ ์ ๋ฑ๋ก ํ ์ฌ์ ์ ๋ฑ๋ก ๋ฒํธ ์ ๋ ฅํด์ผ ํฉ๋๋ค. ๋์ ์ ํ๋ฉด ์๋ ์ฝ๋์ ๊ฐ์ด ์ด๋ฉ์ผ์ด ๋ณด์ด์ง ์์์ต๋๋ค.
data: {
id: 2013122492,
connected_at: '2021-11-30T02:29:39Z',
kakao_account: { has_email: true, email_needs_agreement: true }
}
ํด๊ฒฐ๋ฐฉ์: ์ธ๋ฒ์งธ ๋ฐฉ์์ผ๋ก ์งํํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
- Kakao์์ ์ฃผ๋ id๋ก ๊ตฌํ
- Kakao ์ธ์ฆ ๋ฐฉ์ ์ญ์
- email์ ์ ๋ณด๋ด์ค๋ค๋ฉด id๋ฅผ email์ ๋ฃ๊ธฐ
์๋ก ๋ฐฐ์ด ์
- git log --oneline: log๋ฅผ ํ ์ค์ ํํํ๋ ๋ฐฉ๋ฒ
์ค๋์ ํ๋ก์ ํธ์์ ํ๋ ์ ์ ๋ฌด์์ธ๊ฐ์?
- ๋ชฉ ๊ทผ์ก ํต์ฆ์ด ์๋ ๊ฒ ์ธ์๋ ์์์ต๋๋ค.
๋ด์ผ์ ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๊ธฐ ์ํด ๋ฌด์์ ํด์ผ ํ๋์?
- User์ Controller์ Router ๊ตฌํ
- Party์ Controller์ Router ๊ตฌํ
12์ 1์ผ (์)
์ค๋์ ์ด๋ป๊ฒ ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๋์?
- Statement ์๋ํฌ์ธํธ ๊ตฌํ์ ์ํด Controller์ Router ๊ตฌํ
- User Model ์์
- User Seed ์์ฑ
- ์์ ์ฌํญ ๋ฐ์ ์ํด DB Schema, API Document ๋ณ๊ฒฝ
- Home banner opacity(ํฌ๋ช ๋) / Seed ๋ฐ์ดํฐ ์ฝ์ ๊ด๋ จ Error Debugging
์ค๋์ ํ๋ก์ ํธ์์ ์ด๋ค ์๋ฌ๊ฐ ๋ฐ์ํ๊ณ , ์ด๋ป๊ฒ ํด๊ฒฐํ๋์?
- ํ์: localhost:3000์ผ๋ก ํ์ด์ง์ ์ ์ํ์ ๋๋ ๋ฐฐ๋๊ฐ ์ ๋๋ก ์๋ํ์ต๋๋ค. podorang.com์ผ๋ก ์ ์ํ์ ๋๋ ๋ฐฐ๋๊ฐ 0.5์ด ์ ๋ ๋ณด์ด๋ค๊ฐ ์ฌ๋ผ์ง๋ ์๋ฌ๊ฐ ์์์ต๋๋ค. ๊ทธ๋ ์ดํ ์์ญ์ ์๋ฌ์ฌ์ ํด๊ฒฐ์ ๋ฏธ๋ฃฐ๊น ํ์ง๋ง ๊ฐ๋ฐํ ๋ ์ ๋๋ก ํ ํ๋ฉด์ ๋ณด๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ์ ๋๋ฒ๊น
์ ํ์ต๋๋ค.
์์ธ: local ์ฝ๋์ deploy ์ฝ๋๋ฅผ Diffchecker๋ฅผ ํตํด ๋น๊ตํ์ง๋ง ๋ค๋ฅธ ์ ์ด ํ๋๋ ์์์ต๋๋ค. ๊ทธ๋์ ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ์์ ์ฌ๋ฌ ํญ๋ค๊น์ง ๋ค ๋น๊ตํด๋ณด์์ต๋๋ค. ๊ทธ ๊ฒฐ๊ณผ, localhost:3000์ opacity๋ 100%, podorang.com์ opacity๋ 1%์์ต๋๋ค.
ํด๊ฒฐ: ์ด ๋ถ๋ถ์ ์ ๊ฐ ํด๊ฒฐํ ์ ์๋ ๋ถ๋ถ์ด๋ผ ํ๋ก ํธ์๋ ๋ถ๋ค๊ณผ ์์ํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์์ต๋๋ค.
- ํ์: npx sequelize_cli db:seed:all ๋ช
๋ น์ด๋ก ์ ์ฒด seed๊ฐ ์ฌ์ด์ง์ง ์๋ ์๋ฌ๊ฐ ์์์ต๋๋ค.
์์ธ: npx sequelize-cli db:seed:all๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด abcd ์์ผ๋ก seed๊ฐ ๋ฃ์ด์ง๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ ์๋ฌ์์ต๋๋ค.
ํด๊ฒฐ: ์ด ๋ถ๋ถ์ ํ ์คํธํ๋ฉด์ ์์ฃผ ์จ์ผ ํ ๊ฒ ๊ฐ๊ธฐ ๋๋ฌธ์ ์ ๋๋ฆ์ ๊ฐ๋จํ ๋งค๋ด์ผ์ ๋ง๋ค์ด ๋ณด์์ต๋๋ค.
- npx sequelize-cli db:seed:all๋ก capital, ott, party Seed ๋ฃ๊ธฐ
- npx sequelize-cli db:seed --seed user payment statement๋ก ๋ง์ user payment statement ๋ฃ์ด์ฃผ๊ธฐ
- ํ์: ERR_HTTP_HEADERS_SENT๋ผ๋ ์๋ฌ๊ฐ ์์์ต๋๋ค.
์์ธ: res๋ฅผ ํด๋ผ์ด์ธํธ์ ๋ ๋ฒ ๋ณด๋๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ ๋ฌธ์ ์์ต๋๋ค.
ํด๊ฒฐ: return res.sendStatus(200).json({ message: "Success" }) ๋์ return res.status(200).json({ message: "Success" })๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
์ค๋์ ํ๋ก์ ํธ์์ ํ๋ ์ ์ ๋ฌด์์ธ๊ฐ์?
- ์์์ต๋๋ค.
๊ธฐ์ตํ ๋งํ ์
- git stash์ git stash pop ๋ช
๋ น์ด๋ฅผ ๋ฐฐ์์ ์ฌ์ฉํ์ต๋๋ค.
git stash ๋ช ๋ น์ด๋ ๋ณ๊ฒฝ์ฌํญ์ ์์๋๋ ๋ช ๋ น์ด์ ๋๋ค.
git stash pop ๋ช ๋ น์ด๋ ๊ฐ์ฅ ์ต๊ทผ์ ์ ์ฅํ ๋ณ๊ฒฝ์ฌํญ์ ๊บผ๋ด๊ณ ๊ทธ ๋ด์ฉ์ ์ญ์ ํ๋ ๋ช ๋ น์ด์ ๋๋ค. - git reset HEAD^: commit ์๋ณต ๊ธฐ๋ณธ ๋ช
๋ น์ด. default option์ --mixed์ด๋ค.
git reset --soft HEAD^: commit์ ์ทจ์ํ๊ณ ํด๋น ํ์ผ๋ค์ staged ์ํ๋ก ์ํน ๋๋ ํฐ๋ฆฌ์ ๋ณด์กด
git reset --mixed HEAD^: commit์ ์ทจ์ํ๊ณ ํด๋น ํ์ผ๋ค์ unstaged ์ํ๋ก ์ํน ๋๋ ํฐ๋ฆฌ์ ๋ณด์กด
git reset --hard HEAD^: commit์ ์ทจ์ํ๊ณ ํด๋น ํ์ผ๋ค์ unstaged ์ํ๋ก ์ํน ๋๋ ํฐ๋ฆฌ์์ ์ญ์
๋ด์ผ์ ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๊ธฐ ์ํด ๋ฌด์์ ํด์ผ ํ๋์?
- ํ ์ค API ๊ณต๋ถ ๋ฐ ๊ตฌํ
- ๊ธ์ต๊ฒฐ์ ์ API ๊ณต๋ถ ๋ฐ ๊ตฌํ
12์ 2์ผ (๋ชฉ)
์ค๋์ ์ด๋ป๊ฒ ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๋์?
- ๊ธ์ต๊ฒฐ์ ์ API Authorization Code ๋ฐ Access Token ๋ฐ๊ธ
- ํด๋ผ์ด์ธํธ ๋ฐฐํฌ ์๋ํ
- ์ค๊ฐ๋ณด๊ณ ๋ฏธํ ์ฐธ์
์ค๋์ ํ๋ก์ ํธ์์ ์ด๋ค ์๋ฌ๊ฐ ๋ฐ์ํ๊ณ , ์ด๋ป๊ฒ ํด๊ฒฐํ๋์?
- Authorization Code ๋ฐ๊ธ์ด ์ ๋์ง ์์์ต๋๋ค. ์๊ณ ๋ณด๋ ์๋ํฌ์ธํธ๊ฐ ๋ฌ๋ผ์ ์ค๋ฅ๊ฐ ๋ฌ์์ต๋๋ค. ์ ๋๋ก ์ค์ ํด์ฃผ๋ ํด๊ฒฐ๋์์ต๋๋ค.
์ค๋์ ํ๋ก์ ํธ์์ ํ๋ ์ ์ ๋ฌด์์ธ๊ฐ์?
- ์นด๋ ๊ฒฐ์ ๋ ๊ณ์ข ์กฐํ ๊ฐ์ ๋ถ๋ถ์ ๊ธ์ต ๊ด๋ จ ๊ฐ์ธ์ ๋ณด๋ฅผ ๋ค๋ฃจ๋ API์ด๋ค ๋ณด๋ ์ ๋๋ก ์ฌ์ฉํ๋๋ฐ ์ด๋ ค์์ด ์์์ต๋๋ค.
๋ด์ผ์ ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๊ธฐ ์ํด ๋ฌด์์ ํด์ผ ํ๋์?
- ๊ธ์ต ๊ด๋ จ API ๊ตฌํ
- Random Name API ์ฌ์ฉํ์ฌ ๋ณ๋ช ์์ฑ
12์ 3์ผ (๊ธ)
์ค๋์ ์ด๋ป๊ฒ ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๋์?
- ๊ธ์ต๊ฒฐ์ ์ API ๊ณต๋ถ
- getRandomName ํจ์ ๊ตฌํ ๋ฐ ์์ง ์ผ์ด์ค ์ฒ๋ฆฌ
- Naver์ getRandomName ์ ์ฉ
์ค๋์ ํ๋ก์ ํธ์์ ์ด๋ค ์๋ฌ๊ฐ ๋ฐ์ํ๊ณ , ์ด๋ป๊ฒ ํด๊ฒฐํ๋์?
- getRandomName์ ์๋ฒ์์ ์์์ name์ด ์ค๋ณต์ด ๋์ง ์์ ๋๊น์ง (while or ์ฌ๊ท ํจ์ ํ์) ์์ฑํด์ฃผ๋ ํจ์์ ๋๋ค. Promise ํํ ์์์ ์ ๋ถ๋ถ์ ํ์ฉํ๋ ๊ฒ์ด ์ฒ์์ด๋ผ ์ฌ๋ฌ ์๋ฌ๋ฅผ ๋ง๋ฌ์ต๋๋ค. (#135 ์ฐธ๊ณ )
์ค๋์ ํ๋ก์ ํธ์์ ํ๋ ์ ์ ๋ฌด์์ธ๊ฐ์?
- ์์์ต๋๋ค.
๋ด์ผ์ ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๊ธฐ ์ํด ๋ฌด์์ ํด์ผ ํ๋์?
- Google ๋ฐ Kakao์ getRandomName ์ ์ฉ
12์ 4์ผ (ํ )
์ค๋์ ์ด๋ป๊ฒ ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๋์?
- Google, Kakao์ nameFunction ์ ์ฉ
์ค๋์ ํ๋ก์ ํธ์์ ์ด๋ค ์๋ฌ๊ฐ ๋ฐ์ํ๊ณ , ์ด๋ป๊ฒ ํด๊ฒฐํ๋์?
git reset --hard HEAD^๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด์ ์๋ฌ๊ฐ ๋ฐ์ํ์ต๋๋ค. git reset --hard {๋๋๋ฆฌ๊ณ ์ถ์ ์ปค๋ฐ sha1}์ ์ฌ์ฉํด์ ํด๊ฒฐํ์ต๋๋ค (#140 ์ฐธ๊ณ )
์ค๋์ ํ๋ก์ ํธ์์ ํ๋ ์ ์ ๋ฌด์์ธ๊ฐ์?
- ์์์ต๋๋ค.
๋ด์ผ์ ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๊ธฐ ์ํด ๋ฌด์์ ํด์ผ ํ๋์?
- ๊ธ์ต๊ฒฐ์ ์ API ๊ณต๋ถ
'Challenge > Project Log' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Podo - Dev Log (4) (0) | 2021.12.23 |
---|---|
Podo - Dev Log (3) (0) | 2021.12.12 |
Podo - Dev Log (1) (0) | 2021.11.29 |
Podo - SR (0) | 2021.11.26 |
Colorboration (3) - Sprint 3 ํ๊ณ (2) | 2021.11.21 |