ZenTechie.log
๋ก๊ทธ์ธ
ZenTechie.log
๋ก๊ทธ์ธ
[TIL] 2023.09
ZenTechie
ยท
2023๋ 9์ 5์ผ
ํ๋ก์ฐ
0
0
TIL
๋ชฉ๋ก ๋ณด๊ธฐ
6/6
09.11
์ฝํ ์คํฐ๋ ๋ฌธ์ ํ๊ธฐ
๋ฐฑ์ค ์ถ์ฒ๋ฌธ์ 5๊ฐ
ํ๋ก๊ทธ๋๋จธ์ค Lv.3 2๊ฐ
09.08
Buddies
feat
PWA ์ค์ ์ ์งํํ๋ค. ์ ์ฉ ์ ์๋ ์น ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฐ์ด๋ผ ๋ฐ์ ์ฃผ์ ํ์์ค์ด ๋ ์ ํ๋ฉด์ด ์ฝ๊ฐ ์๋ ค ์คํฌ๋กค์ ํด์ผ ํ์๋๋ฐ, ์ ์ฉ ํ์๋ ํ๋์ ์ดํ์ฒ๋ผ ์๋ํ๋ค. ์์ง ์๋ฒฝํ์ง๋ ์์์ ์ฐจ์ฐจ ํด๊ฒฐํ ์์ ~
fix
๊ตฌ๊ธ ๋ก๊ทธ์ธ ์๋๊ฐ ์ฐจ๋จ๋๋ ํ์ โก๏ธ ๋๋ฉ์ธ ์ฃผ์๋ก URI๋ฅผ ์ค์ ํ์ง ๋ชปํด์ ๋ฐ์
(ํด๊ฒฐ)
์นด์นด์ค ๋ก๊ทธ์ธ ๋ฌดํ ๋ฃจํ โก๏ธ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ๋ฌธ์ ์์ผ๋ ์ฝ๋์ ์คํ ์์ ๋ฌธ์
(ํด๊ฒฐ)
์ฑํ ๋์ด ์งค๋ฆผ โก๏ธ ์น ๋ธ๋ผ์ฐ์ ์ ์ฃผ์ ํ์์ค ๋๋ฌธ์ ๋ฐ์. PWA ์ ์ฉํ๋ฉด ๋ฐ์ํ์ง ์์
(ํด๊ฒฐ)
๊ตฌ๊ธ ๋ก๊ทธ์ธ ๋ก์ง์ ์ ๋ฐ์ ์ผ๋ก ์์ ํ๋ค. ๊ธฐ์กด์๋ Firebase Authentication์ signWithPopup์ผ๋ก ์งํํ์ง๋ง, ๋ชจ๋ฐ์ผ์์๋ redirect๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค๊ณ ํ๋ค. ๊ทธ๋์ signInWithRedirect๋ก ์์ ํ๋ค. ํ์ง๋ง, NextAuth์ redirect๋ฅผ ํจ๊ป ์ฌ์ฉํ๊ธฐ์๋ ๋ฆฌ์กํธ์ LifeCycle์ ๋ฌดํ๋ฃจํ๊ฐ ๊ฑธ๋ ค์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์๊ฐํด์ผ ํ๋ค.
๊ฒฐ๊ตญ signInWithCredential๋ก ์งํํ๋ค. ๊ธฐ์กด์๋ LoginSection์์ ์ํํ๋ Firebase Authentication์ NextAuth์ signIn callback ์์์ ์ํํ๋๋ก ํ๋ค.
(ํด๊ฒฐ)
signInWithCredential๋ ๋ฌธ์ (๋จ์ )์ด ์๋ค. popup, redirect๋ ๋ก๊ทธ์ธ์ด ์๋ฃ๋๋ฉด firebase์ indexedDB์ ๋ก๊ทธ์ธ ์ ๋ณด๊ฐ ์ ์ฅ๋๋ค. ๊ทธ์ ๋ฐ๋ผ auth.currentUser์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค. ํ์ง๋ง signInWithCredential์ indexedDB์ ์ ์ฅ๋์ง ์์, auth.currentUser์ ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํ๋ค.
์ด๊ฒ์ด ์ ๋ฌธ์ ์ธ๊ฐ? ํ์ํํด ๊ธฐ๋ฅ์๋ auth.currentUser์ ๋จผ์ ์ ๊ทผํด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค.(๋ก๊ทธ์ธ ์ํ ์ ์ง๋ cookie๋ก handle์ค์ด๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๋ ์๋ค.)
'๋นํ์์ผ๋ก ์ด์ฉํ๊ธฐ' ๋ชจ๋ฌ์ด ์ฌ๋ผ์ด๋์ ๊ฒน์น๋ ๋ฌธ์ ๋ฅผ ์์ ํ๋ค.(z-index๋ฅผ ์ด๋ป๊ฒ ์ค์ ํด์ ํด๊ฒฐํ๋๋ฐ, ๊ธฐ์กด ์ฝ๋์ ๋๊ฐ์ ๊ฒ ๊ฐ์๋ฐ ๊ฐ์๊ธฐ ํด๊ฒฐ๋๋ค..)
need to think
๊ฒฐ๊ตญ ํ์ํํด ๊ธฐ๋ฅ์ ์ํด์๋ redirect๋ก ๊ตฌ๊ธ ๋ก๊ทธ์ธ์ ์ํํด์ผ ํ๋ค. ๊ธฐ์กด ๋ฌธ์ ์ ์ ํด๊ฒฐํ ์ ์๋ ๋ก์ง์ ์๊ฐํด์ผ ํ๋ค.
์นด์นด์ค ๋ก๊ทธ์ธ์ ํ์ฌ popup ํ์์ผ๋ก ๋ก๊ทธ์ธ์ ์ํํ๋ค. ๋ชจ๋ฐ์ผ์์๋ redirect๊ฐ ๊ถ์ฅ๋๋ ๋งํผ, ์ด ๊ธฐ๋ฅ๋ ์์ ์ ์๊ฐํด์ผ ํ๋ค.
์คํ๋์ฌ ํ๋ฉด ๋ ๋๋ง ๋ก์ง ์์ . react์ LifeCycle ๋๋ฌธ์ ๋ถ๊ฐํผํ๊ฒ ์ธ์ ์ด ์กด์ฌํจ์๋ ์คํ๋์ฌ ํ๋ฉด์ด ์ ๊น ๋ณด์ฌ์ก๋ค๊ฐ ๋ฉ์ธ ์ปดํฌ๋ํธ๊ฐ ๋ณด์ฌ์ง๊ฒ ๋๋ค. ์์ ์ด ํ์ํ๋ค. ์๋๋ฉด ๋ค๋ฅธ ๋ ๋๋ง ๋ฐฉ์์ ์๊ฐํด์ผ ํ๋ค.
์ ์ ํ์ด์ง๋ 4๊ฐ์ง์ ๋ค๋ฅธ ๋ฐฐ๊ฒฝ ์์ ๊ฐ์ง๋ค.(์ด์ ๋ฉ์ธ ํ์ด์ง์์ ์ด๋ค ์ฑ๋ด์ ์ ํํ๋๋์ ๋ฐ๋ผ ์๊น์ด ๋ฌ๋ผ์ง.) ์ด๋ ์ ์ญ ์ํ ๊ด๋ฆฌ๋ก ํด๊ฒฐํ ์ ์์ ๊ฒ ๊ฐ์๋ฐ, ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํด๋ ๋ณํ์ง ์์์ผ ํ๋ฏ๋ก redux-persist๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ๊ฒ๊ฐ๋ค. ๊ทผ๋ฐ ์ด๋ ๊ฒ ๊น์ง ํด์ผํ ๊น?
PWA ์ ์ฉ ํ
๋ฉ์ธํ์ด์ง
์ ์ ํ์ด์ง
์ค์ ํ์ด์ง
09.07
Buddies ๋ฐฑ์๋ ๊ตฌํ ์งํ
feat
๋ํ๋ด์ญ ์ ์ฅํ๊ธฐ in Firestore
์ด์ ๋ํ๋ด์ญ ๋ถ๋ฌ์ค๊ธฐ from Firestore
fix
๊ธฐ์กด์ cookie์ firestore์ ์ ์ ์ ๋ณด๋ฅผ ์ ์ฅํ ๋ uid๋ฅผ ์ฌ์ฉํ์๋ค. ์ด๋ฅผ email๋ก ๋ณ๊ฒฝํ๋ค.
Why?
uid๋ ๋ฏผ๊ฐํ ์ ๋ณด๋ผ๊ณ ์๊ฐํด์ ์ฟ ํค์ ๋ฃ๋๊ฑด ์ณ์ง ์๋ค๊ณ ํ๋จ.
uid์ ์ด์ค์ฑ โก๏ธ ํ์ฌ NextAuth๋ก OAuth ๋ก๊ทธ์ธ์ ์ฒ๋ฆฌํ๊ณ , Firebase์ ๋ก๊ทธ์ธํ ์ ์ ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค. NextAuth์์ ๋ฐํํ๋ uid์ Firebase์์ ๋ฐํํ uid๊ฐ ์๋ก ๋ค๋ฅด๋ค.
๋ํ๋ด์ญ์ ๋ถ๋ฌ์ค๋ ๊ธฐ๋ฅ์ Server-side์์ ์ํํ๋๋ฐ, Firebase์ auth.currentUser๋ SSR์์ ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅํด์ uid๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์๋ค. ๋ํ, ๋ํ๋ฅผ ์ ์ฅํ ๋๋ uid๋ก ์ ์ฅํ ๊ฒฝ๋ก๋ฅผ ํ์ํ๋๋ฐ, uid๊ฐ ์๋ก ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ํญ์ ๋์ผํ ๊ฐ์ธ email์ ์ฌ์ฉํด์ผ ํ๋ค. ์ด๋ฅผ ์ํด NextAuth์ getServerSession๋ฅผ ์ฌ์ฉํ๋ค.(=> route์์ ์ฌ์ฉ ๊ฐ๋ฅ, server-side์์ ๋์)
๋นํ์์ ๋ํ ๋ด์ญ ์ ์ฅ์ ๋ํด์ ๊ณ ๋ฏผํ๋ค. ์ผ๋จ, ๋นํ์์ ์ ์ ์ ๋ณด๋ฅผ ์ดํด๋ณด๋ฉด ๋๋ถ๋ถ์ ์ ๋ณด(email ํฌํจ)๊ฐ null๋ก ์ค์ ๋์ด์๋ค. ๊ตฌ๋ณํ ์ ์๋ ๋ฐฉ๋ฒ์ uid ํ๋ ๋ฟ์ธ๋ฐ ์ด๋ง์ ๋ auth.currentUser๋ฅผ ์ฌ์ฉํ ์ ์์ด์ ๊ตฌ๋ณํ ๋ฐฉ๋ฒ์ด ์์๋ค. ์ด๋ ์ ์ ์ ๋ณด๋ฅผ ์ ์ฅํ ๋๋ ๋ฌธ์ ์ธ๋ฐ, email๋ก ์ ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๊ธฐ์กด์ ๊ธฐ๋ฅ๊ณผ ์ถฉ๋ํ๋ค. (๋นํ์์ ์ด๋ฉ์ผ ์ ๋ณด๊ฐ ์๊ธฐ ๋๋ฌธ)
๊ทธ๋์, ๋นํ์์ด ๋ก๊ทธ์ธ ํ ๋๋ randomUUID๋ฅผ ๋ถ์ฌํด์ ์ ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋๋ก ํ๊ณ , ๋ํ๋ด์ญ์ ๋นํ์์ด๋ผ๋ฉด ์ ์ฅํ์ง ๋ชปํ๋๋ก ์์ธ ์ฒ๋ฆฌ๋ฅผ ์ํํ๋ค.
firestore์์ ๋ฌธ์๋ฅผ ๋ถ๋ฌ์ฌ ๋, ํ๋์ ์๋ฌด๋ฐ ๊ฐ์ด ์๋ค๋ฉด ๋ฌธ์ ์์ฒด๋ฅผ ์๋ค๊ณ ์ธ์ํ๋ค. ๋ฌธ์๋ฅผ ๋ถ๋ฌ์ฌ ๋, ํ๋์ ์์์ ๊ฐ์ ์ถ๊ฐํ๊ณ ํ์ ๊ฒฝ๋ก๋ฅผ ํ์ํด์ผ ํ๋ค. ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก๋, firestore ์ฝ์์์ ํ๋์ ๊ฐ์ ์ถ๊ฐํ๊ณ ์ญ์ ํ๋ฉด ๋ฌธ์๋ฅผ ์ ๋๋ก ์ธ์ํ๋ค. (๊ทผ๋ฐ ์ด๊ฑด ๋นํจ์จ์ ์ด๋, ํ๋์ ๊ฐ์ ์ถ๊ฐํ๋ ์ฝ๋๋ฅผ ์์ฑํ์.)
Chore
๋ฐ์ํ ์ฒ๋ฆฌ
์ฌ์ฉํ์ง ์๋ ์ฝ๋ ์ญ์ (๋์ค์ ์ฐ์ด์ง ์์๊น? ํ๋ ์๊ฐ์ ์ฝ๊ฒ ์ญ์ ํ์ง ๋ชปํ๋๋ฐ ๊ฒฐ๊ตญ ์ญ์ ํ๋ค.)
Buddies ๋ฐฐํฌ ์๋
Error
Firebase invalid/api-key error ๋ฐ์
There is a problem with the server configuration. NextAuth
Please define a secret in production. โก๏ธ .env์ NEXT_AUTH='๊ฐ' ์ถ๊ฐ
๋ฐฐํฌ ๋ฒ์ ์์ ์ฑํ ์, timestamp๊ฐ ์ด์ํ๊ฒ ์ฐํ์ ๋ํ๋ด์ญ์ด firestore์ ์ฌ๋ฐ๋ฅด๊ฒ ์ ์ฅ๋์ง ์์.
Buddies ๋ฐฐํฌ ์๋ฃ
Need to fix
์นด์นด์คํก ๋ก๊ทธ์ธ ํด๋ ํ์ผ๋ก ๋์ด๊ฐ์ง ์์.
๊ตฌ๊ธ ๋ก๊ทธ์ธ ์ฐจ๋จ๋จ.
๋ก๊ณ svg, ์บ๋ฆญํฐ svg ์ ํด์๋
์ฑํ ํ๋ฉด ๋์ด ์งค๋ฆผ โก๏ธ iPhone 12 mini, iPhone 13 mini ๊ธฐ์ค
ํ์ด์ง ์ ํ ์๋๊ฐ ๋๋ฆผ. (๋๋ ์ด ์ฌํจ)
๊ฒฝ์ ์ ๋ฌธ์คํฌ๋ฉ 2ํ๋ถ
09.06
Buddies ์บ๋ฆฐ๋ ๋ชจ๋ ์คํ์ผ ์ถ๊ฐ
09.05
JWT ๊ฐ๋ ๊ณต๋ถ
๋ธ๋ก ๊ฒ์ ๋ฌธ์ ๋ค์ ๋ณด๊ธฐ
๊ฒฝ์ ์ ๋ฌธ์คํฌ๋ฉ
09.04
2019 KAKAO BLIND RECRUITMENT ๋ณต์ต
ํ๋ณดํค โ
๋ธ๋ก ๊ฒ์ โ
๊ฒฝ์ ์ ๋ฌธ์คํฌ๋ฉ
09.03
portfolio ์์
09.02
weather-NextJS ๊ฐ๋ฐ๊ธฐ ์์ฑ
weather-NextJS Readme ์์ฑ
09.01
weather-NextJS ๊ตฌํ ๋๋ด๊ธฐ
๊ฒฝ์ ์ ๋ฌธ์คํฌ๋ฉ
ZenTechie
๋ฐ๋ธ์ฝ์ค ์งํ ์ค.. ~ 2024.03
ํ๋ก์ฐ
์ด์ ํฌ์คํธ
[TIL] 2023.08
0๊ฐ์ ๋๊ธ
๋๊ธ ์์ฑ