Skip to content

[Feat] 로그인 상태 관리#191

Merged
kwonsaebom merged 23 commits intodevelopfrom
feat/#187/loginState
Sep 19, 2025
Merged

[Feat] 로그인 상태 관리#191
kwonsaebom merged 23 commits intodevelopfrom
feat/#187/loginState

Conversation

@kwonsaebom
Copy link
Copy Markdown
Contributor

@kwonsaebom kwonsaebom commented Sep 15, 2025

💡 Summary

close #187

✅ Tasks

  • 로그인 성공 시 데이터 저장
  • 로그인 여부에 따라 헤더 변경

👀 To Reviewer

✔️ 로그인 여부 확인 방법

const isLoggedIn = useAuthStore((state) => state.isLoggedIn);

✔️ 유저 데이터 가져오는 법

const user = useAuthStore((state) => state.user);

✔️ 유저 데이터의 타입

export interface UserType {
  id?: number;
  name: string;
  email: string;
  profileImageUrl: string;
  birthday?: string;
  job?: string;
  answers?: AnswerType[];
}

++ 커밋 중간에 테스트 코드 있는데, 이 부분은 서버에서 데이터 하나를 삭제해서 내일 다시 복구되는 코드입니다 !
우선 작동하는 것 볼 수 있도록 임시로 작성 해놓은 코드라서 머지 전에 주석 코드로 변경할 예정 입니다 !!

📸 Screenshot

image
2025-09-16.12.47.06.mov

@kwonsaebom kwonsaebom self-assigned this Sep 15, 2025
@kwonsaebom kwonsaebom added the ✨ Feature 기능 개발 label Sep 15, 2025
@kwonsaebom kwonsaebom linked an issue Sep 15, 2025 that may be closed by this pull request
1 task
@vercel
Copy link
Copy Markdown

vercel bot commented Sep 15, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
ninedot Ready Ready Preview Comment Sep 19, 2025 2:27pm

@github-actions
Copy link
Copy Markdown

🎨 스토리북 배포 완료!

👉 스토리북 미리보기

변경된 컴포넌트의 디자인을 확인해주세요.

@github-actions
Copy link
Copy Markdown

빌드 결과

빌드 성공 🎉

@github-actions
Copy link
Copy Markdown

🎨 스토리북 배포 완료!

👉 스토리북 미리보기

변경된 컴포넌트의 디자인을 확인해주세요.

Copy link
Copy Markdown
Collaborator

@jisooooooooooo jisooooooooooo left a comment

Choose a reason for hiding this comment

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

zustand 처음이라 고생하셨을 텐데 깔끔하게 정리해 주신 것 같아요!!
저도 리팩토링할 때 참고하겠습니당
고생 많으셨어욤 😙

@github-actions
Copy link
Copy Markdown

빌드 결과

빌드 성공 🎉

@github-actions
Copy link
Copy Markdown

🎨 스토리북 배포 완료!

👉 스토리북 미리보기

변경된 컴포넌트의 디자인을 확인해주세요.

@github-actions
Copy link
Copy Markdown

빌드 결과

빌드 성공 🎉

@github-actions
Copy link
Copy Markdown

🎨 스토리북 배포 완료!

👉 스토리북 미리보기

변경된 컴포넌트의 디자인을 확인해주세요.

@github-actions
Copy link
Copy Markdown

빌드 결과

빌드 성공 🎉

@github-actions
Copy link
Copy Markdown

🎨 스토리북 배포 완료!

👉 스토리북 미리보기

변경된 컴포넌트의 디자인을 확인해주세요.

Copy link
Copy Markdown
Contributor

@shinjigu shinjigu left a comment

Choose a reason for hiding this comment

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

Zustand를 제가 써본 적이 없어서 리뷰가 충분했을지는 모르겠지만,,ㅎㅎ 로그인 상태 관리 흐름이 깔끔하게 잘 구성되어 있는 것 같아요 수고 많으셨습니다 !! 하위 리팩토링 시 참고하겠습니다 😻

Comment on lines +18 to +23
setUser: (newUser) => set({ user: newUser, isLoggedIn: !!getToken() }),
resetUser: () => {
localStorage.removeItem('accessToken');
set({ user: defaultUser, isLoggedIn: false });
},
updateLoginStatus: () => set({ isLoggedIn: !!getToken() }),
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

p4) getToken()을 호출할 때마다 localStorage를 읽는 대신,
zustand 스토어에서 token을 상태로 관리하고 구독해서 쓰는 방식을 고려해 봐도 좋을 것 같습니다 !! 이러면 토큰이 갱신될 때 전역에서 자동 반영돼서 코드 중복도 줄고 일관성도 더 좋아질 것 같아요 ☺️

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

p3) 여기서 에러가 터지면 상위 인터셉터에서만 확인해야 해서 디버깅이 어려울 수 있다고 생각합니다 ! try/catch로 래핑해서 에러 메시지를 명확히 하거나 그대로 throw 하되, 로그를 남기면 좋을 것 같습니다 !!

@github-actions
Copy link
Copy Markdown

빌드 결과

빌드 성공 🎉

@github-actions
Copy link
Copy Markdown

🎨 스토리북 배포 완료!

👉 스토리북 미리보기

변경된 컴포넌트의 디자인을 확인해주세요.

@kwonsaebom kwonsaebom merged commit f2d95f3 into develop Sep 19, 2025
6 checks passed
@kwonsaebom kwonsaebom deleted the feat/#187/loginState branch September 19, 2025 14:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: 로그인 상태 관리

3 participants