Skip to content

fix: 랜딩페이지 cta 분기, 사이드바 반응형 충돌, 로고 경로, 캐시 통일#88

Merged
yooolleee merged 1 commit into
mainfrom
feature/landing-fix
Feb 25, 2026
Merged

fix: 랜딩페이지 cta 분기, 사이드바 반응형 충돌, 로고 경로, 캐시 통일#88
yooolleee merged 1 commit into
mainfrom
feature/landing-fix

Conversation

@yooolleee

Copy link
Copy Markdown
Contributor

Summary

  • 이 PR에서 변경한 내용 한 줄 요약

Sidebar.tsx, MobileHeader.tsx 로고 기본 경로 /addteam → / 변경 (공통 컴포넌트라 각 페이지 확인 필요)

Sidebar.module.css / MobileHeader.module.css 에서 반응형 상태에서 정확히 1199px 폭에서 두 컴포넌트가 동시에 렌더되는 구간이 존재

/* 변경 전 */
@media (max-width: 1199px) { ... }

/* 변경 후 */
@media (max-width: 1200px) { ... }

useCurrentUserQuery.ts

(root)/layout.tsx에서 옵션을 전달할 수 없었음
무엇: options 파라미터 추가 (retry 등 오버라이드 가능하도록)

// 변경 전
export function useCurrentUserQuery() {
return useQuery(currentUserQueryOptions());
}

// 변경 후
export function useCurrentUserQuery(options?: { retry?: boolean | number }) {
return useQuery({ ...currentUserQueryOptions(), ...options });
}

Issue

  • Closes #

Scope

  • 포함

    • 변경한 내용
  • 특이사항

@yooolleee yooolleee added this to the 페이지 milestone Feb 25, 2026
@yooolleee yooolleee requested review from a team, HWAN0218, Jieunsse and jungwon123 February 25, 2026 02:15
@yooolleee yooolleee self-assigned this Feb 25, 2026
@yooolleee yooolleee added the 기능추가 기능개발 및 추가할 때 사용해주세요. label Feb 25, 2026
@github-project-automation github-project-automation Bot moved this to 개발 대기중 in workers Feb 25, 2026
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @yooolleee, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 PR은 사용자 경험을 개선하고 여러 UI/UX 문제를 해결하는 데 중점을 둡니다. 랜딩 페이지의 '지금 시작하기' 버튼이 사용자의 로그인 상태에 따라 적절한 페이지로 안내하도록 로직을 강화했으며, 로그인 및 회원가입 플로우를 개선했습니다. 또한, 사이드바와 모바일 헤더 간의 반응형 레이아웃 충돌을 해결하여 다양한 화면 크기에서 일관된 UI를 제공합니다. 마지막으로, 사용자 데이터 조회 훅의 유연성을 높이고 로그아웃 시 오류 처리를 개선했습니다.

Highlights

  • 랜딩 페이지 CTA 분기 로직 추가: 랜딩 페이지의 '지금 시작하기' 버튼이 사용자의 로그인 상태에 따라 /login, /{groupId}, 또는 /addteam으로 적절하게 리다이렉션되도록 로직이 구현되었습니다.
  • 반응형 레이아웃 충돌 해결: 사이드바와 모바일 헤더가 1199px 너비에서 동시에 렌더링되는 문제를 해결하기 위해 미디어 쿼리 기준점이 1199px에서 1200px로 조정되었습니다.
  • 로고 클릭 경로 통일: 사이드바, 모바일 헤더, 루트 레이아웃에서 로고 클릭 시 이동하는 기본 경로가 /addteam에서 /로 변경되었습니다.
  • useCurrentUserQuery 훅 개선: useCurrentUserQuery 훅에 options 파라미터가 추가되어 쿼리 재시도(retry) 설정 등을 동적으로 오버라이드할 수 있게 되었습니다.
  • 로그인 리다이렉션 로직 개선: 로그인 후 teamId 대신 실제 그룹 페이지 경로에 필요한 groupId를 얻기 위해 사용자 정보를 추가로 조회하여 정확한 페이지로 리다이렉션하도록 로직이 변경되었습니다.
  • 카카오 회원가입 버튼 활성화: 회원가입 페이지의 카카오 회원가입 버튼이 활성화되어 카카오 인증 플로우를 시작할 수 있게 되었습니다.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • src/app/(auth)/login/LoginForm.tsx
    • 로그인 후 리다이렉션 로직이 teamId 대신 groupId를 사용하도록 변경되었으며, 이를 위해 사용자 정보를 추가로 조회합니다.
  • src/app/(auth)/signup/SignupForm.tsx
    • 카카오 회원가입 버튼이 활성화되어 클릭 시 카카오 인증 페이지로 이동합니다.
  • src/app/(root)/landing/components/CtaButton.tsx
    • 랜딩 페이지의 '지금 시작하기' 버튼을 위한 새로운 컴포넌트가 추가되었습니다. 이 버튼은 로그인 상태에 따라 /login, /{groupId}, 또는 /addteam으로 분기합니다.
  • src/app/(root)/landing/components/CtaSection/CtaSection.tsx
    • 기존의 정적 로그인 링크가 새로 추가된 CtaButton 컴포넌트로 대체되었습니다.
  • src/app/(root)/landing/components/HeroSection/HeroSection.tsx
    • 기존의 정적 로그인 링크가 새로 추가된 CtaButton 컴포넌트로 대체되었습니다.
  • src/app/(root)/layout.tsx
    • useCurrentUser 훅이 useCurrentUserQuery로 교체되었고, retry: false 옵션이 추가되었습니다.
    • 로그인 상태 확인 로직이 개선되었으며, 로고 클릭 시 /addteam 대신 /로 이동하도록 변경되었습니다.
  • src/app/api/auth/logout/route.ts
    • 로그아웃 처리 중 발생할 수 있는 오류를 콘솔에 기록하는 로직이 추가되었습니다.
  • src/components/sidebar/MobileHeader.tsx
    • 모바일 헤더의 로고 클릭 시 기본 경로가 /addteam에서 /로 변경되었습니다.
  • src/components/sidebar/Sidebar.tsx
    • 사이드바의 로고 클릭 시 기본 경로가 /addteam에서 /로 변경되었습니다.
  • src/components/sidebar/styles/MobileHeader.module.css
    • @media (max-width: 1199px) 미디어 쿼리가 @media (max-width: 1200px)로 수정되었습니다.
  • src/components/sidebar/styles/Sidebar.module.css
    • @media (max-width: 1199px) 미디어 쿼리가 @media (max-width: 1200px)로 수정되었습니다.
  • src/shared/queries/user/useCurrentUserQuery.ts
    • useCurrentUserQuery 함수에 options 파라미터가 추가되어 쿼리 옵션을 동적으로 설정할 수 있게 되었습니다.
Activity
  • 이 PR에는 현재까지 특별한 리뷰 활동이나 코멘트가 기록되지 않았습니다.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist gemini-code-assist Bot left a comment

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.

Code Review

이 PR은 CTA 버튼 로직, 반응형 스타일, 데이터 페칭 패턴 등 여러 수정 및 개선 사항을 포함하고 있습니다. 제 리뷰는 로그인 플로우의 에러 핸들링을 개선하고 커스텀 쿼리 훅의 유연성을 높이는 데 중점을 두었습니다. 로고 클릭 동작 통일 및 CSS 중단점 수정과 같은 나머지 변경 사항들은 좋아 보입니다.

Comment on lines 59 to 61
} else {
router.push('/addteam');
}

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.

high

로그인 후 사용자 정보를 가져오는 데 실패했을 때, 에러를 던져서 catch 블록에서 처리하도록 하는 것이 더 안전해 보입니다. 현재 코드는 사용자 정보 조회에 실패하면 무조건 팀 추가 페이지로 보내는데, 이는 일시적인 네트워크 오류인 경우 사용자에게 혼란을 줄 수 있습니다. 에러를 발생시켜 catch 블록에서 '네트워크 오류' 메시지를 보여주는 것이 더 나은 사용자 경험을 제공할 것입니다.

Suggested change
} else {
router.push('/addteam');
}
} else {
throw new Error('Failed to fetch user data after login.');
}

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

이 코드리뷰는 고치지 않아도 됩니다. /addteam으로 보내는 이유는 로그인 성공 상태에서 토큰도 쿠키에 저장된 상태에서 유저 정보 조회가 일시적으로 실패한 경우 /addteam으로 보내면 거기서 다시 유저 정보를 받아오고, 팀이 있으면 자동으로 팀 페이지로 이동하도록 설계됐습니다. 즉 최악의 경우에도 로그인 상태는 유지되고 정상 경로로 복구됩니다.

AI 제안처럼 에러를 던지면:

로그인 성공 → 유저 정보 조회 실패 → 에러 → catch 블록 → setError('email', ...) → 사용자는 로그인 실패로 인식
이건 실제로 로그인은 됐는데 사용자한테 실패처럼 보여주는 거라 더 혼란스러울 수 있습니다.

Comment on lines +17 to 19
export function useCurrentUserQuery(options?: { retry?: boolean | number }) {
return useQuery({ ...currentUserQueryOptions(), ...options });
}

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.

medium

현재 options 타입이 { retry?: boolean | number }로 매우 제한적입니다. PR 설명에 'retry 등'이라고 언급된 것을 보면 앞으로 다른 옵션도 사용될 가능성이 있어 보입니다. currentUserQueryOptions의 반환 타입을 활용하여 타입을 더 유연하게 만들면 재사용성과 확장성이 향상될 것입니다. 이렇게 하면 retry 외에 staleTime, enabledreact-query가 제공하는 모든 옵션을 타입 안전하게 사용할 수 있습니다.

Suggested change
export function useCurrentUserQuery(options?: { retry?: boolean | number }) {
return useQuery({ ...currentUserQueryOptions(), ...options });
}
export function useCurrentUserQuery(options?: Partial<ReturnType<typeof currentUserQueryOptions>>) {
return useQuery({ ...currentUserQueryOptions(), ...options });
}

@yooolleee yooolleee merged commit 62eafbd into main Feb 25, 2026
1 check passed
@github-project-automation github-project-automation Bot moved this from 개발 대기중 to 개발 완료 in workers Feb 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

기능추가 기능개발 및 추가할 때 사용해주세요.

Projects

Status: 개발 완료

Development

Successfully merging this pull request may close these issues.

2 participants