[TIL] 2023.09

ZenTechieยท2023๋…„ 9์›” 5์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
6/6
post-thumbnail

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 ๊ตฌํ˜„ ๋๋‚ด๊ธฐ
  • ๊ฒฝ์ œ์‹ ๋ฌธ์Šคํฌ๋žฉ
profile
๋ฐ๋ธŒ์ฝ”์Šค ์ง„ํ–‰ ์ค‘.. ~ 2024.03

0๊ฐœ์˜ ๋Œ“๊ธ€