Skip to content

랜딩페이지 개발 #61

Closed
yooolleee wants to merge 8 commits into
mainfrom
feature/landing-v2
Closed

랜딩페이지 개발 #61
yooolleee wants to merge 8 commits into
mainfrom
feature/landing-v2

Conversation

@yooolleee

Copy link
Copy Markdown
Contributor

Summary

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

프레이머 모션에서 풀페이지 기능은 잠시 제거 했습니다. 추후 논의 후 개발하는 방향으로 가겠습니다.

Issue

Scope

  • 포함

    • 변경한 내용
  • 특이사항

@yooolleee yooolleee added this to the 페이지 milestone Feb 21, 2026
@yooolleee yooolleee self-assigned this Feb 21, 2026
@yooolleee yooolleee added the 기능추가 기능개발 및 추가할 때 사용해주세요. label Feb 21, 2026
@github-project-automation github-project-automation Bot moved this to 개발 대기중 in workers Feb 21, 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은 애플리케이션의 랜딩 페이지를 완전히 새로운 버전(Landing V2)으로 개편합니다. 새로운 랜딩 페이지는 모듈형 컴포넌트 구조로 구축되었으며, 히어로 섹션, 기능 소개, CTA(Call-to-Action) 섹션 등을 포함하여 다양한 화면 크기에 최적화된 반응형 디자인을 제공합니다. 또한, 검색 엔진 최적화를 위한 중요한 SEO 메타데이터가 추가되었습니다. 기존 Framer Motion 기반의 풀페이지 기능은 추후 논의를 위해 일시적으로 제외되었으며, 개발 환경 개선을 위해 React Query 개발 도구 추가 및 Next.js 개발 지표 비활성화 등의 설정 변경도 이루어졌습니다.

Highlights

  • 랜딩 페이지 V2 구현: 새로운 랜딩 페이지(Landing V2)가 구현되었습니다. 이는 HeroSection, FeatureSection, CtaSection 등 여러 모듈형 컴포넌트와 각 컴포넌트의 CSS 모듈을 포함합니다.
  • 반응형 디자인 적용: 새로운 랜딩 페이지의 모든 섹션은 PC, 태블릿, 모바일 등 다양한 화면 크기에 맞춰 반응형으로 디자인되었습니다.
  • SEO 메타데이터 추가: 루트 페이지(page.tsx)에 SEO를 위한 메타데이터(제목, 설명, Open Graph 태그, robots 지시어)가 추가되어 검색 엔진 최적화에 기여합니다.
  • Framer Motion 기능 임시 제거: 기존 Framer Motion을 사용한 풀페이지 기능이 임시로 제거되었으며, 추후 논의를 통해 개발 방향을 결정할 예정입니다.
  • 개발 도구 및 설정 업데이트: Next.js 개발 지표가 비활성화되었고, React Query 디버깅을 위한 @tanstack/react-query-devtools 의존성이 추가되었습니다.

🧠 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
  • next.config.ts
    • 개발 지표(devIndicators)를 비활성화하도록 Next.js 설정이 업데이트되었습니다.
  • package.json
    • 개발 의존성에 @tanstack/react-query-devtools가 추가되었습니다.
  • pnpm-lock.yaml
    • 새로운 의존성 추가에 따라 pnpm lockfile이 업데이트되었으며, 여러 패키지 해상도에 libc 필드가 추가되었습니다.
  • src/app/(root)/landing/LandingLayout.module.css
    • 랜딩 페이지의 주요 레이아웃 구조를 위한 CSS 모듈이 생성되었습니다.
  • src/app/(root)/landing/LandingPage.module.css
    • 새로운 반응형 랜딩 페이지 섹션들의 스타일을 정의하는 CSS 모듈이 생성되었습니다.
  • src/app/(root)/landing/LandingPage.tsx
    • HeroSection, FeatureSection, CtaSection을 LandingShell 내부에 통합하는 랜딩 페이지의 메인 컴포넌트가 생성되었습니다.
  • src/app/(root)/landing/components/CtaSection/CtaSection.module.css
    • CTA(Call-to-Action) 섹션의 CSS 모듈이 생성되었으며, 텍스트와 버튼에 대한 반응형 스타일이 포함되었습니다.
  • src/app/(root)/landing/components/CtaSection/CtaSection.tsx
    • 랜딩 페이지의 CTA 컴포넌트가 생성되었으며, 제목, 설명, 로그인 페이지로 연결되는 버튼을 포함합니다.
  • src/app/(root)/landing/components/FeatureSection/FeatureSection.module.css
    • 재사용 가능한 기능 섹션들을 위한 CSS 모듈이 생성되었으며, 배경, 텍스트, 미디어 및 반응형 이미지 스타일을 정의합니다.
  • src/app/(root)/landing/components/FeatureSection/FeatureSection.tsx
    • 아이콘, 제목, 설명 및 반응형 이미지를 사용하여 다양한 기능 섹션을 표시하는 재사용 가능한 컴포넌트가 생성되었습니다.
  • src/app/(root)/landing/components/HeroSection/HeroSection.module.css
    • 랜딩 페이지의 Hero 섹션을 위한 CSS 모듈이 생성되었으며, 텍스트, 버튼 및 이미지에 대한 반응형 스타일이 포함되었습니다.
  • src/app/(root)/landing/components/HeroSection/HeroSection.tsx
    • 랜딩 페이지의 Hero 섹션 컴포넌트가 생성되었으며, 로고, 제목, 키커 텍스트 및 반응형 이미지가 있는 CTA 버튼을 표시합니다.
  • src/app/(root)/landing/components/LandingShell.tsx
    • 랜딩 페이지 레이아웃을 위한 클라이언트 측 래퍼 컴포넌트가 생성되었으며, Sidebar 및 MobileHeader를 통합하고 클라이언트 측 훅 및 레이아웃 구조를 관리합니다.
  • src/app/(root)/page.module.css
    • 이전 루트 페이지의 CSS 스타일링이 제거되었습니다.
  • src/app/(root)/page.tsx
    • 루트 페이지가 새로운 랜딩 페이지 컴포넌트를 렌더링하도록 업데이트되었으며, SEO 메타데이터가 추가되었습니다.
  • src/assets/buttons/human/profile.svg
    • 새로운 프로필 SVG 아이콘이 추가되었습니다.
  • src/assets/icons/landing/gradation_check.svg
    • 그라데이션 체크마크를 위한 새로운 SVG 아이콘이 추가되었습니다.
  • src/assets/icons/landing/gradation_folder.svg
    • 그라데이션 폴더를 위한 새로운 SVG 아이콘이 추가되었습니다.
  • src/assets/icons/landing/gradation_logo.svg
    • 그라데이션 로고를 위한 새로운 SVG 아이콘이 추가되었습니다.
  • src/assets/icons/landing/gradation_message.svg
    • 그라데이션 메시지를 위한 새로운 SVG 아이콘이 추가되었습니다.
  • src/components/sidebar/styles/Sidebar.module.css
    • 사이드바 CSS에서 중복된 position: relative 선언이 제거되었습니다.
  • src/shared/styles/color.css
    • 슬레이트 및 블루 계열 색상에 대한 새로운 CSS 변수들이 추가되었습니다.
Activity
  • yooolleee 님이 PR을 생성했습니다.
  • PR 설명에 따르면 이슈 #60이 해결되었습니다.
  • Framer Motion 풀페이지 기능은 임시로 제거되었으며, 추후 논의를 통해 개발될 예정입니다.
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

랜딩 페이지 v2 작업을 통해 전반적인 디자인과 레이아웃이 크게 개선되었습니다. 특히 Framer Motion 기반의 복잡한 라이브러리 대신 CSS scroll-snap을 활용하여 부드러운 섹션 전환을 구현한 점이 성능과 유지보수 측면에서 좋은 선택이라고 생각됩니다. 다만, 여러 CSS 파일 간의 반응형 브레이크포인트 설정이 일관되지 않아 특정 해상도에서 레이아웃이 깨질 위험이 있으며, 일부 컴포넌트에서 주석으로 언급된 스타일 클래스가 실제 구현에서 누락된 부분이 발견되었습니다. 또한 프로젝트에 이미 포함된 clsx 라이브러리를 활용하여 클래스 바인딩 로직을 개선할 것을 권장합니다.

flex-shrink: 0;
}

@media (max-width: 375px) {

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

모바일 브레이크포인트가 375px로 매우 작게 설정되어 있습니다. 최근 대부분의 스마트폰(예: iPhone 13/14/15, Galaxy S 시리즈 등)은 가로 너비가 375px를 초과하므로, 현재 설정으로는 대다수의 모바일 기기에서 PC용 레이아웃(예: 80px의 큰 패딩 등)이 노출되어 화면이 깨져 보일 수 있습니다. HeroSection.module.css 등 다른 파일에서 사용된 기준과 맞춰 767px 또는 1199px 정도로 범위를 넓히는 것이 안전합니다.

Suggested change
@media (max-width: 375px) {
@media (max-width: 1199px) {

Comment on lines +55 to +62
copyClass: styles.copyRight,
mediaClass: styles.mediaThree,
/*
* 3번 이미지(966×649)는 가로 비율이 커서
* imgPc 공통값 height:100%를 그대로 쓰면 가로가 섹션 너비를 초과함
* → imgPcWide 클래스로 width:100%, height:auto 적용
*/
},

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

three 변이(variant)에 대한 주석에는 가로가 넓은 이미지를 처리하기 위해 imgPcWide 클래스를 적용한다고 명시되어 있으나, 실제 FEATURE_DATA 객체에는 imgPcClass 값이 누락되어 있습니다. 또한 FeatureSection.module.css 파일에도 해당 클래스 정의가 보이지 않습니다. 의도하신 레이아웃을 위해 데이터와 스타일을 보완해 주세요.

    copyClass: styles.copyRight,
    mediaClass: styles.mediaThree,
    imgPcClass: styles.imgPcWide,


return (
<section
className={[styles.section, bg === 'brand' ? styles.bgBrand : styles.bgSlate].join(' ')}

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

클래스 이름을 배열의 join(' ') 방식으로 직접 결합하고 있습니다. package.json에 이미 clsx 라이브러리가 포함되어 있으므로, 이를 사용하면 조건부 클래스 할당이나 undefined 값 필터링 등을 더 깔끔하고 안전하게 처리할 수 있습니다.

    <section
      className={clsx(styles.section, bg === 'brand' ? styles.bgBrand : styles.bgSlate)}
    >

.scrollContainer {
flex: 1;
height: 100vh;
overflow-y: scroll;

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

overflow-y: scroll;은 콘텐츠 양과 관계없이 항상 스크롤바 영역을 강제로 표시합니다. 운영체제나 브라우저 설정에 따라 불필요한 스크롤바가 보일 수 있으므로, 콘텐츠가 넘칠 때만 스크롤바가 생기도록 auto로 설정하는 것이 일반적입니다.

Suggested change
overflow-y: scroll;
overflow-y: auto;

@yooolleee yooolleee changed the title Feature/landing v2 랜딩페이지 개발 Feb 21, 2026
@yooolleee yooolleee closed this Feb 23, 2026
@github-project-automation github-project-automation Bot moved this from 개발 대기중 to 개발 완료 in workers Feb 23, 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