Skip to content

✨ Add login page#8

Merged
young-52 merged 10 commits intomainfrom
feat/login
Jan 1, 2026
Merged

✨ Add login page#8
young-52 merged 10 commits intomainfrom
feat/login

Conversation

@jun-0411
Copy link
Collaborator

@jun-0411 jun-0411 commented Jan 1, 2026

πŸ“ μž‘μ—… λ‚΄μš©

  • 둜그인 νŽ˜μ΄μ§€ μž‘μ—…μ„ μ§„ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.
  • axios 라이브러리λ₯Ό μ΄μš©ν•΄μ„œ api μž‘μ—…μ„ μ§„ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.
  • zustand 라이브러리λ₯Ό μ΄μš©ν•΄μ„œ λ‘œκ·ΈμΈμ‹œ μœ μ € 정보와 인증 토큰이 둜컬 μŠ€ν† λ¦¬μ§€μ— μ €μž₯되게 ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
  • μ†Œμ…œ 둜그인 λ‘œμ§μ„ λ§Œλ“€κ³  μ†Œμ…œ λ‘œκ·ΈμΈμ‹œ μ½œλ°±λ˜λŠ” νŽ˜μ΄μ§€λ₯Ό λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.

πŸ“Έ μŠ€ν¬λ¦°μƒ· (선택)

μŠ€ν¬λ¦°μƒ· 2026-01-01 210036

πŸš€ 리뷰 μš”κ΅¬μ‚¬ν•­ (선택)

  • 헀더 μž‘μ—…μ„ λͺ¨λ‹ˆ 인증 토큰을 context둜 μ €μž₯ν•˜μ…¨λŠ”λ°, zustandλ₯Ό λ„μž…ν•˜λŠ”κ±΄ μ–΄λ–¨κΉŒμš”? zustandλ₯Ό μ΄μš©ν•˜λ©΄ μœ μ € 정보와 인증 토큰을 ν•œ λ²ˆμ— 관리할 수 μžˆμ–΄μ§‘λ‹ˆλ‹€.
  • λ¦¬λ“œλ―Έμ— 적힌 폴더 κ΅¬μ‘°μ—λŠ” μ—†μ§€λ§Œ, type 폴더가 있으면 νŽΈλ¦¬ν•  것 κ°™μ•„μ„œ 폴더λ₯Ό μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€. type 폴더 μ‚¬μš©ν•˜μ§€ μ•Šκ³  contants 폴더에 ν†΅ν•©ν•˜λŠ”κ²Œ 더 μ’‹μ„κΉŒμš”?
  • utils 폴더에 μ»€μŠ€ν…€ 훅을 μœ„μΉ˜ν–ˆμŠ΅λ‹ˆλ‹€. hooks 폴더λ₯Ό λ§Œλ“€μ–΄μ„œ utils와 κ΅¬λΆ„ν•˜λŠ”κ²Œ μ’‹μ„κΉŒμš”?
  • 둜그인과 νšŒμ›κ°€μž…μ— λŒ€ν•œ api ꡬ쑰λ₯Ό κ΅¬μƒν•΄λ΄€μŠ΅λ‹ˆλ‹€. 이건 μŠ¬λž™μ— μ˜¬λ¦΄κ²Œμš”!
  • 컀밋 λ©”μ„Έμ§€ λ‚΄μš©μ΄λ‚˜ κΉƒλͺ¨μ§€μ— λΆ€μ μ ˆν•œκ²Œ μžˆμ—ˆμ„κΉŒμš”...?

@jun-0411 jun-0411 linked an issue Jan 1, 2026 that may be closed by this pull request
@young-52 young-52 self-requested a review January 1, 2026 15:16
@young-52 young-52 self-assigned this Jan 1, 2026
@young-52 young-52 added the enhancement New feature or request label Jan 1, 2026
@young-52 young-52 added this to the Sprint 1 milestone Jan 1, 2026
Copy link
Collaborator

@young-52 young-52 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1. zustand λ„μž…

헀더 μž‘μ—…μ„ λͺ¨λ‹ˆ 인증 토큰을 context둜 μ €μž₯ν•˜μ…¨λŠ”λ°, zustandλ₯Ό λ„μž…ν•˜λŠ”κ±΄ μ–΄λ–¨κΉŒμš”? zustandλ₯Ό μ΄μš©ν•˜λ©΄ μœ μ € 정보와 인증 토큰을 ν•œ λ²ˆμ— 관리할 수 μžˆμ–΄μ§‘λ‹ˆλ‹€.

μ°¬μ„±ν•©λ‹ˆλ‹€! μš°μ„  μ €λŠ” zustandλ₯Ό 써본 적이 μ—†μ–΄μ„œ μ΄λ ‡κ²Œ μž‘μ—…ν•˜κ³  μžˆμ—ˆλŠ”λ°, μ°Ύμ•„λ³΄λ‹ˆκΉŒ λ„μž…ν•˜λ©΄ 쒋을 것 κ°™λ‹€λŠ” 생각이 λ“€μ–΄μš”. 헀더 μž‘μ—…ν•˜λ˜ 것도 zustandλ₯Ό μ‚¬μš©ν•˜λŠ” μ‹μœΌλ‘œ κ³ μ³λ³΄κ² μŠ΅λ‹ˆλ‹€.

2. types 폴더 μ‹ μ„€

λ¦¬λ“œλ―Έμ— 적힌 폴더 κ΅¬μ‘°μ—λŠ” μ—†μ§€λ§Œ, type 폴더가 있으면 νŽΈλ¦¬ν•  것 κ°™μ•„μ„œ 폴더λ₯Ό μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€. type 폴더 μ‚¬μš©ν•˜μ§€ μ•Šκ³  contants 폴더에 ν†΅ν•©ν•˜λŠ”κ²Œ 더 μ’‹μ„κΉŒμš”?

μ €λŠ” types 폴더 λ§Œλ“œλŠ” μͺ½μ„ 더 μ„ ν˜Έν•©λ‹ˆλ‹€! APIκ°€ μ–΄μ°Œλ μ§€ λͺ°λΌμ„œ μš°μ„  언급은 μ•ˆ ν•˜κ³  μžˆμ—ˆλŠ”λ°, μš°μ„  μ΄λ ‡κ²Œ 써보고 λ¬Έμ œκ°€ 생기면 κ·Έλ•Œ 또 μ–˜κΈ°λ₯Ό ν•΄λ΄…μ‹œλ‹€ γ…Žγ…Ž

그리고, μ•žμœΌλ‘œ νƒ€μž…μ„ μ„ μ–Έν•  λ•Œ type을 μ“Έμ§€ interfaceλ₯Ό 쓸지도 μ •ν•˜λ©΄ 쒋을 λ“―ν•œλ°, ν˜Ήμ‹œ typeκ³Ό interfaceλ₯Ό κ΅¬λ³„ν•˜μ—¬ μ‚¬μš©ν•˜μ‹  기쀀이 μžˆλŠ”μ§€ μ—¬μ­™μŠ΅λ‹ˆλ‹€!

3. hooks 폴더 μ‹ μ„€

utils 폴더에 μ»€μŠ€ν…€ 훅을 μœ„μΉ˜ν–ˆμŠ΅λ‹ˆλ‹€. hooks 폴더λ₯Ό λ§Œλ“€μ–΄μ„œ utils와 κ΅¬λΆ„ν•˜λŠ”κ²Œ μ’‹μ„κΉŒμš”?

μœ ν‹Έ ν•¨μˆ˜μ™€ 훅은 λΆ„λ¦¬λ˜λ©΄ 쒋을 것 κ°™μ•„μ„œ, utils ν΄λ”μ˜ 이름을 hooks둜 λ°”κΎΈμ—ˆμŠ΅λ‹ˆλ‹€. μ•„λ§ˆ λ‚˜μ€‘μ— λ‚ μ§œλ‚˜ μ‹œκ°„ λ‹€λ£° 일이 많이 생길 것 같은데, κ·Έλ•Œ μ“°λŠ” ν•¨μˆ˜λ₯Ό utils 폴더에 넣어두면 쒋을 것 κ°™μ•„μš”.

4. API λͺ…μ„Έ

둜그인과 νšŒμ›κ°€μž…μ— λŒ€ν•œ api ꡬ쑰λ₯Ό κ΅¬μƒν•΄λ΄€μŠ΅λ‹ˆλ‹€. 이건 μŠ¬λž™μ— μ˜¬λ¦΄κ²Œμš”!

LGTM!

5. 컀밋 λ©”μ‹œμ§€

컀밋 λ©”μ„Έμ§€ λ‚΄μš©μ΄λ‚˜ κΉƒλͺ¨μ§€μ— λΆ€μ μ ˆν•œκ²Œ μžˆμ—ˆμ„κΉŒμš”...?

근데 이건 정말 μ·¨ν–₯의 μ˜μ—­μ΄λΌβ€¦ μžκΈ°κ°€ ν•œ λ‚΄μš©μ΄ 잘 μš”μ•½λ˜λ©΄ 쒋은 게 μ•„λ‹ˆκ² μŠ΅λ‹ˆκΉŒ γ…Žγ…Ž
λ‹€λ§Œ 저라면 μ΄λ ‡κ²Œ ν–ˆμ„ 것 κ°™κΈ΄ ν•©λ‹ˆλ‹€!

  • πŸ‘½ Add login/signup api logic
    • API κ΄€λ ¨ λ³€ν™”λ‹ˆκΉŒ πŸ‘½ 이λͺ¨μ§€ μΆ”κ°€
  • πŸ›‚ Add auth local stroage
    • 인증 κ΄€λ ¨ λ³€ν™”λ‹ˆκΉŒ πŸ›‚ 이λͺ¨μ§€ μΆ”κ°€
  • πŸ”— Add login/signup routers
    • 이것은 μ’€ μ• λ§€ν•˜κΈ΄ ν•œλ°, μ œλ―Έλ‚˜μ΄μ— λ¬Όμ–΄λ³΄λ‹ˆ πŸ”—λ‚˜ πŸ”§λ₯Ό μΆ”μ²œν•˜λ„€μš”. 저라면 κ·Έλƒ₯ μ•„λ¬΄κ±°λ‚˜ μ“Έ 것 κ°™μŠ΅λ‹ˆλ‹€ γ…‹γ…‹γ…‹γ…‹

근데 이건 μ–΄λ””κΉŒμ§€λ‚˜ μ·¨ν–₯이고, 사싀 κΉƒλͺ¨μ§€ κ³ λ₯΄λŠλΌ 곡 듀일 ν•„μš”λ„ μ—†κ³  ν•˜λ‹ˆκΉŒ, 각자 μŠ€νƒ€μΌλŒ€λ‘œ 해도 쒋을 것 κ°™μ•„μš”!

기타 의견

μ œκ°€ 직접 μ²˜λ¦¬ν•œ 것

  • κ·Έλ ‡κ²Œ μ€‘μš”ν•˜μ§€ μ•Šμ€ λ¦°ν„° μ΄μŠˆκ°€ μžˆμ—ˆλŠ”λ°, λ¦°ν„° 톡과가 μ•ˆ 되면 병합 ν—ˆκ°€κ°€ μ•ˆ λ‚˜μ„œβ€¦ μš°μ„  μ—¬λŸ¬ 개둜 μͺΌκ°œμ Έ 있던 νšŒμ›κ°€μž… 라우트λ₯Ό λ‹€μ‹œ ν•©μ³€μŠ΅λ‹ˆλ‹€.
  • 'νšŒμ›κ°€μž…ν•˜λŸ¬ κ°€κΈ°' λ²„νŠΌμ—λ„ μ „ν™˜ 효과λ₯Ό λ„£μ—ˆμŠ΅λ‹ˆλ‹€.

μ•žμœΌλ‘œ μ²˜λ¦¬ν•˜λ©΄ 쒋을 것

  • μ†Œμ…œ 둜그인 κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λ©΄μ„œ 같은 SVGκ°€ μ—¬λŸ¬ 번 μ‚¬μš©λ˜μ—ˆμ„ 것 κ°™μ€λ°μš”, 이걸 μƒμˆ˜λ‘œ λΆ„λ¦¬ν•˜λŠ” 게 λ‚˜μ„κΉŒ 싢기도 ν•©λ‹ˆλ‹€.
  • useAuth.ts 파일의 useAuth ν•¨μˆ˜μ— κ΄€ν•œ μ˜κ²¬μž…λ‹ˆλ‹€.
    • 둜그인 쀑 μœ νš¨ν•˜μ§€ μ•Šμ€ μ΄λ©”μΌμ΄λ‚˜ λΉ„λ°€λ²ˆν˜Έκ°€ μž…λ ₯되면 alertλ₯Ό 톡해 μ²˜λ¦¬ν•˜κ³  μžˆλŠ”λ°μš”, νŒμ—…μ°½μ„ λ„μš°λŠ” λŒ€μ‹ μ— 아이디/λΉ„λ°€λ²ˆν˜Έ μž…λ ₯λž€ ν…Œλ‘λ¦¬λ₯Ό λΉ¨κ°„μƒ‰μœΌλ‘œ λ°”κΎΈλ©΄μ„œ μ‚¬μš©μžμ—κ²Œ 아이디/λΉ„λ°€λ²ˆν˜Έκ°€ ν‹€λ ΈμŒμ„ μ•Œλ €μ£ΌλŠ” 방식이 더 λΆ€λ“œλŸ¬μšΈ 수 μžˆκ² λ‹€λŠ” 생각이 λ“­λ‹ˆλ‹€. λ‹€λ§Œ 아직 λ””μžμ΄λ„ˆλΆ„λ„ μ•ˆ κ³„μ‹œκ³  ν•˜λ‹ˆ μ’€ 더 μ§€μΌœλ΄λ„ 쒋을 것 κ°™μ•„μš”.
    • νšŒμ›κ°€μž… 쀑 였λ₯˜κ°€ λ°œμƒν–ˆμ„ λ•Œ, μ •ν™•νžˆ μ–΄λ–€ 이유둜 였λ₯˜κ°€ λ°œμƒν–ˆλŠ”μ§€ μ‚¬μš©μžμ—κ²Œ μ•Œλ €μ€„ 수 μžˆλ‹€λ©΄ μ’‹κ² λ‹€λŠ” 생각이 μžˆμŠ΅λ‹ˆλ‹€. 근데 이건 μ œκ°€ axios 라이브러리λ₯Ό 잘 λͺ°λΌμ„œ κ°€λŠ₯ν• μ§€λŠ” λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€.
    • μœ νš¨ν•˜μ§€ μ•Šμ€ 토큰이 λ“€μ–΄μ˜€λ©΄ 'μœ μ € 정보 동기화 쀑 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.'λΌλŠ” 문ꡬ와 ν•¨κ»˜ λ‘œκ·Έμ•„μ›ƒλ˜λŠ”λ°, 이 문ꡬ가 μ‚¬μš©μžκ°€ 보기에 λ‹€μ†Œ λ‹Ήν™©μŠ€λŸ¬μšΈ 것 κ°™μ•„μ„œ 더 μ‚¬μš©μž μΉœν™”μ μΈ 문ꡬλ₯Ό μ“Έ 수 있으면 μ’‹κ² λ‹€λŠ” 생각이 λ“­λ‹ˆλ‹€. 근데 저도 λ”±νžˆ λŒ€μ•ˆμ΄ μ—†μ–΄μ„œ κ·Έλƒ₯ μ΄λ ‡κ²Œ κΈ€λ‘œλ§Œ λ‚¨κΉλ‹ˆλ‹€β€¦ μ‹œμ€‘μ—μ„œ 많이 μ“°μ΄λŠ” λ¬Έκ΅¬λ‘œλŠ” 이런 게 μžˆλ„€μš”.
      개인 정보 보호λ₯Ό μœ„ν•΄ (μ‚¬μš©μžμ˜ λ°˜μ‘μ΄ NλΆ„ λ™μ•ˆ μ—†μ–΄) μžλ™μœΌλ‘œ λ‘œκ·Έμ•„μ›ƒλ˜μ—ˆμŠ΅λ‹ˆλ‹€.
      λ‹€μ‹œ λ‘œκ·ΈμΈν•΄ μ£Όμ„Έμš”.
      

@young-52 young-52 merged commit 0a72cf7 into main Jan 1, 2026
1 check passed
@young-52 young-52 deleted the feat/login branch January 1, 2026 19:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

✨ Login Page

2 participants