Skip to content

Feat: 개발 QA 1차(랜딩페이지 디테일 수정)#123

Merged
jjangminii merged 4 commits intodevelopfrom
fix/#122/landing-design
Sep 19, 2025
Merged

Feat: 개발 QA 1차(랜딩페이지 디테일 수정)#123
jjangminii merged 4 commits intodevelopfrom
fix/#122/landing-design

Conversation

@jjangminii
Copy link
Collaborator

@jjangminii jjangminii commented Sep 19, 2025

📌 Related Issues

관련된 Issue를 태그해주세요. (e.g. - close #25)

📄 Tasks

  • 오타 수정
  • 헤더 추가
  • 메타데이터 변경

⭐ PR Point (To Reviewer)

📷 Screenshot

image image

Summary by CodeRabbit

  • New Features
    • 랜딩 페이지에 상단 고정 헤더 추가: 좌측 로고, 우측 "다운로드" 버튼 포함.
    • 헤더가 스크롤 컨테이너 상단에 렌더링되어 HeroSection 위에 표시됩니다.
  • Style
    • HeroSection 버튼 라벨을 "스트롤하기"에서 "스크롤하기"로 수정했습니다.

@jjangminii jjangminii linked an issue Sep 19, 2025 that may be closed by this pull request
@vercel
Copy link

vercel bot commented Sep 19, 2025

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

Project Deployment Preview Comments Updated (UTC)
pinback-client-client Ready Ready Preview Comment Sep 19, 2025 9:00am

@coderabbitai
Copy link

coderabbitai bot commented Sep 19, 2025

Walkthrough

랜딩 앱에 고정 상단 헤더 컴포넌트를 신설하고 App에서 렌더링하도록 연결했습니다. HeroSection은 주석 제거와 버튼 라벨 오타를 수정했습니다. 공개 API 시그니처 변경은 없습니다.

Changes

Cohort / File(s) Change summary
Landing App 통합
apps/landing/src/App.tsx
Header 컴포넌트 임포트 및 JSX에 추가하여 스크롤 컨테이너 상단에 렌더링. 기존 주석 처리된 <Header /> 활성화.
Header 컴포넌트 추가
apps/landing/src/components/Header.tsx
고정 상단 바 컴포넌트 신설. 좌측 로고 아이콘(logo, 87x24), 우측 "다운로드" 버튼 렌더. 레이아웃 클래스 적용, onClick TODO 주석. 기본 내보내기.
HeroSection 텍스트 수정
apps/landing/src/components/HeroSection.tsx
JSX 주석 제거(런타임 영향 없음). 버튼 라벨을 "스트롤하기" → "스크롤하기"로 수정.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor User
  participant App as App (Landing)
  participant Header as Header
  participant Hero as HeroSection

  User->>App: 페이지 진입
  App->>Header: 고정 상단 바 렌더
  App->>Hero: 히어로 섹션 렌더
  note over Header,Hero: 독립적으로 UI 구성 (상단 헤더 + 본문 히어로)
  User->>Header: "다운로드" 버튼 클릭
  note right of Header: onClick TODO (미연결)
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested labels

fix

Suggested reviewers

  • constantly-dev
  • jllee000

Poem

새벽 빛 위에 헤더 한 줄, 탁—
로고는 살짝, 버튼은 반짝! ✨
“스크롤하기” 오타도 싹—
토끼는 귀를 세우고 박수 짝짝! 🐰
랜딩의 길, 매끄럽게 착!

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Linked Issues Check ⚠️ Warning PR은 랜딩 페이지 관련 작업인 Issue #122([#122])의 목표인 헤더 추가 및 오타 수정을 충족합니다(앱에 Header 컴포넌트 추가 및 App.tsx 반영 확인). 반면 Issue #25([#25])가 요구하는 디자인 시스템용 Progress 컴포넌트 구현, 스토리·인터랙션 테스트, 런타임 의존성(@radix-ui/react-progress) 추가 등은 변경 요약에 전혀 포함되어 있지 않아 해당 요구사항은 미이행입니다. 따라서 연결된 이슈 전체 관점에서는 부분적으로만 충족되어 현재 상태로는 연관 이슈 준수 체크를 통과하지 못합니다. 해결 방안으로는 PR에서 Issue #25 링크를 제거하거나 PR에 #25의 코드·문서·테스트 변경을 포함시켜 요구사항을 모두 반영해 주세요; 또한 PR 본문에 처리 범위를 명확히 기재해 검토자가 어떤 이슈를 이 PR로 해결하려는지 혼동이 없도록 해 주세요.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (3 passed)
Check name Status Explanation
Title Check ✅ Passed 제목은 '랜딩페이지 디테일 수정'이라는 PR의 핵심 변경(헤더 추가 및 오타 수정)을 직접적으로 포함해 PR의 주요 목적을 잘 요약하고 있습니다. 다만 '개발 QA 1차'와 작성자명 '(정민)'은 히스토리에서 불필요한 메타정보로 보일 수 있어 간결성이 떨어질 여지가 있습니다.
Out of Scope Changes Check ✅ Passed 변경 사항은 apps/landing의 App.tsx, components/Header.tsx, HeroSection.tsx에 국한되어 있어 Issue #122(랜딩 페이지 수정) 범위에 부합합니다. 요약된 변경 목록에서는 디자인 시스템(예: Progress 컴포넌트)이나 다른 모듈에 대한 수정이 보이지 않아 범위 외 변경은 발견되지 않습니다.
Description Check ✅ Passed PR 설명은 리포지토리의 템플릿 구조를 대체로 잘 따르고 있으며 '📌 Related Issues'에 - close #122가 명확히 기재되어 있고 '📄 Tasks'에는 오타 수정, 헤더 추가, 메타데이터 변경 등 주요 작업이 요약되어 있으며 '📷 Screenshot'에 시각적 증빙도 포함되어 있습니다. '⭐ PR Point'가 비어있긴 하나 템플릿상 선택적 섹션이므로 필수 요건을 충족하지는 않습니다. 전반적으로 리뷰를 진행하는 데 필요한 기본 컨텍스트는 제공됩니다.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/#122/landing-design

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions bot added the fix 버그 수정하라 러브버그 label Sep 19, 2025
@jjangminii jjangminii changed the title Fix/#122/landing design Feat: 개발 QA 1차(정민 | 랜딩페이지 디테일 수정) Sep 19, 2025
@github-actions
Copy link

github-actions bot commented Sep 19, 2025

✅ Storybook chromatic 배포 확인:
🐿️ storybook

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (8)
apps/landing/src/components/HeroSection.tsx (3)

49-57: 스크롤 타겟 접근성 힌트 추가 권장

버튼에 대상 섹션을 가리키는 힌트가 있으면 스크린리더 사용성이 개선됩니다.

-          <Button
-            variant="secondary"
-            onClick={() => {
+          <Button
+            type="button"
+            aria-controls="bookmark-section"
+            aria-label="북마크 섹션으로 스크롤"
+            variant="secondary"
+            onClick={() => {

32-40: 이미지 대체 텍스트 정교화

두 이미지가 모두 "Landing Icon"으로 동일합니다. 장식용이면 빈 alt로, 의미가 있다면 구체적으로 작성하세요.

-          <img src={landing_icon} alt="Landing Icon" />
+          <img src={landing_icon} alt="" aria-hidden="true" />
...
-          <img src={landing_bell} alt="Landing Icon" />
+          <img src={landing_bell} alt="알림 벨 아이콘" />

20-26: 스타일 태그 중복 주입 방지

HMR/중복 마운트 시 스타일 태그가 누적될 수 있습니다. id로 식별해 1회만 추가하는 편이 안전합니다.

   useEffect(() => {
-    const style = document.createElement('style');
-    style.innerHTML = floatAnimationStyle;
-    document.head.appendChild(style);
+    const id = 'hero-float-keyframes';
+    let style = document.getElementById(id) as HTMLStyleElement | null;
+    if (!style) {
+      style = document.createElement('style');
+      style.id = id;
+      style.innerHTML = floatAnimationStyle;
+      document.head.appendChild(style);
+    }
     return () => {
-      document.head.removeChild(style);
+      const el = document.getElementById(id);
+      if (el) document.head.removeChild(el);
     };
   }, []);
apps/landing/src/components/Header.tsx (3)

6-6: 헤더 배경/분리감 추가로 가독성 개선

배경이 없으면 콘텐츠 위에 텍스트가 겹쳐 보일 수 있습니다. 얇은 배경/블러/보더 추천합니다.

-    <header className="fixed left-0 right-0 top-0 z-50 flex h-[7.4rem] w-full items-center justify-between px-4 md:px-8">
+    <header className="fixed left-0 right-0 top-0 z-50 flex h-[7.4rem] w-full items-center justify-between px-4 md:px-8 bg-white/80 backdrop-blur-sm supports-[backdrop-filter]:bg-white/60 border-b border-gray200">

7-11: 로고/버튼 접근성 보강

  • 로고는 홈 링크이거나 대체 텍스트가 있어야 합니다.
  • 버튼은 명확한 타입/라벨이 있으면 좋습니다.
-      <Icon name={'logo'} width={87} height={24} />
+      <a href="/" aria-label="홈">
+        <Icon name={'logo'} width={87} height={24} aria-hidden="true" />
+      </a>
...
-        {/*TODO: onClick 추가 */}
-        <Button>다운로드</Button>
+        {/*TODO: onClick 추가 */}
+        <Button type="button" aria-label="앱 다운로드">다운로드</Button>

10-10: 다운로드 동작 미구현(TODO)

스토어 링크(or 파일) 연결 필요 시 알려주세요. 구현 PR 보조 가능합니다.

apps/landing/src/App.tsx (2)

20-22: 고정 헤더에 의해 앵커가 가려지는 현상 예방

북마크 섹션에 scroll-mt를 주어 헤더 높이만큼 오프셋을 두세요. 버튼의 scrollIntoView와도 잘 동작합니다.

-      <section className="h-dvh snap-start" id="bookmark-section">
+      <section className="h-dvh snap-start scroll-mt-[7.4rem]" id="bookmark-section">

12-14: 헤더를 스크롤 컨테이너 밖으로 이동 고려

지금도 fixed라 동작엔 문제 없으나, 스크롤-스냅/포커스 관리 분리를 위해 컨테이너 밖에 두면 더 안전합니다.

이 변경이 디자인 의도와 맞는지 확인 부탁드립니다.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 88b0212 and 5811865.

📒 Files selected for processing (3)
  • apps/landing/src/App.tsx (1 hunks)
  • apps/landing/src/components/Header.tsx (1 hunks)
  • apps/landing/src/components/HeroSection.tsx (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: storybook
🔇 Additional comments (2)
apps/landing/src/components/HeroSection.tsx (1)

58-58: 오타 수정 LGTM

버튼 라벨 “스크롤하기” 수정 좋습니다.

apps/landing/src/App.tsx (1)

8-8: 헤더 연결 LGTM

컴포넌트 분리 및 import 적절합니다.


const Header = () => {
return (
<header className="fixed left-0 right-0 top-0 z-50 flex h-[7.4rem] w-full items-center justify-between px-[8rem]">
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

모바일에서 좌우 패딩 과다로 레이아웃 깨짐 가능

px-[8rem](128px)은 작은 뷰포트에서 요소가 겹치거나 넘칠 수 있습니다. 반응형 패딩으로 조정하세요.

-    <header className="fixed left-0 right-0 top-0 z-50 flex h-[7.4rem] w-full items-center justify-between px-[8rem]">
+    <header className="fixed left-0 right-0 top-0 z-50 flex h-[7.4rem] w-full items-center justify-between px-4 md:px-8">
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<header className="fixed left-0 right-0 top-0 z-50 flex h-[7.4rem] w-full items-center justify-between px-[8rem]">
<header className="fixed left-0 right-0 top-0 z-50 flex h-[7.4rem] w-full items-center justify-between px-4 md:px-8">
🤖 Prompt for AI Agents
In apps/landing/src/components/Header.tsx around line 6 the header uses a fixed
large horizontal padding `px-[8rem]` which can break layout on small viewports;
replace the hardcoded padding with responsive utility classes (e.g., small fixed
padding on mobile and progressively larger paddings on wider breakpoints) or use
a centered container with responsive horizontal padding (container/mx-auto +
responsive px) so the header no longer overflows on mobile.

@jjangminii jjangminii merged commit 72ed6bc into develop Sep 19, 2025
8 checks passed
@jjangminii jjangminii changed the title Feat: 개발 QA 1차(정민 | 랜딩페이지 디테일 수정) Feat: 개발 QA 1차(랜딩페이지 디테일 수정) Sep 20, 2025
@coderabbitai coderabbitai bot mentioned this pull request Oct 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fix 버그 수정하라 러브버그

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Fix] sp1 QA 랜딩 페이지 디자인 수정

1 participant