Conversation
Summary of ChangesHello @RookieAND, 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! 이 Pull Request는 프로젝트의 개발 효율성과 코드 품질을 향상시키기 위한 광범위한 문서화를 도입합니다. 새로운 팀원의 온보딩 시간을 단축하고, 개발자 간의 일관된 코드 스타일 및 개발 패턴을 유지하며, PR 생성 및 제출 과정을 자동화하여 반복 작업을 줄이는 것을 목표로 합니다. 이를 통해 전반적인 개발 생산성과 유지보수성을 개선할 것으로 기대됩니다. Highlights
🧠 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
Using Gemini Code AssistThe 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
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 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
|
| export function Button({ variant, className, ...props }: ButtonProps) { | ||
| return ( | ||
| <button | ||
| className={buttonVariants({ variant, className })} | ||
| {...props} | ||
| /> | ||
| ); | ||
| } |
There was a problem hiding this comment.
컴포넌트 작성 규칙 예시가 저장소 스타일 가이드와 일치하지 않습니다. 스타일 가이드(64-77행)에서는 모든 컴포넌트를 화살표 함수로 작성하도록 규정하고 있으나, 예시에서는 function 선언을 사용하고 있습니다. 이는 실제 프로젝트 코드(src/components/button/Button.tsx 등)와도 달라 혼동을 줄 수 있습니다. 가이드의 일관성을 위해 화살표 함수 방식으로 수정하는 것이 좋습니다.
| export function Button({ variant, className, ...props }: ButtonProps) { | |
| return ( | |
| <button | |
| className={buttonVariants({ variant, className })} | |
| {...props} | |
| /> | |
| ); | |
| } | |
| export const Button = ({ variant, className, ...props }: ButtonProps) => { | |
| return ( | |
| <button | |
| className={buttonVariants({ variant, className })} | |
| {...props} | |
| /> | |
| ); | |
| }; |
References
- 모든 컴포넌트는 화살표 함수(Arrow Function)로 작성하고, 선언과 동시에 export해야 합니다. function 선언 방식은 사용하지 않습니다. (link)
| export function ComponentName({ | ||
| variant, | ||
| size, | ||
| disabled, | ||
| loading, | ||
| icon, | ||
| className, | ||
| children, | ||
| ...props | ||
| }: ComponentNameProps) { | ||
| return ( | ||
| <button | ||
| className={cn( | ||
| componentVariants({ variant, size, disabled: disabled || loading }), | ||
| className | ||
| )} | ||
| disabled={disabled || loading} | ||
| {...props} | ||
| > | ||
| {loading && <Spinner />} | ||
| {icon && <span className="ygi:mr-2">{icon}</span>} | ||
| {children} | ||
| </button> | ||
| ); | ||
| } |
There was a problem hiding this comment.
컴포넌트 기본 템플릿 예시가 저장소 스타일 가이드(64-77행)의 컴포넌트 작성 규칙(화살표 함수 사용)과 다릅니다. function 선언 대신 const와 화살표 함수를 사용하는 방식으로 수정하여 가이드의 일관성을 유지하고 개발자의 혼동을 방지해야 합니다.
export const ComponentName = ({
variant,
size,
disabled,
loading,
icon,
className,
children,
...props
}: ComponentNameProps) => {
return (
<button
className={cn(
componentVariants({ variant, size, disabled: disabled || loading }),
className
)}
disabled={disabled || loading}
{...props}
>
{loading && <Spinner />}
{icon && <span className="ygi:mr-2">{icon}</span>}
{children}
</button>
);
};References
- 모든 컴포넌트는 화살표 함수(Arrow Function)로 작성하고, 선언과 동시에 export해야 합니다. function 선언 방식은 사용하지 않습니다. (link)
| import { [domain]Keys } from "./queryKey"; | ||
| import type { Create[Domain]Request } from "./type"; | ||
|
|
||
| export const use Create[Domain] = () => { |
| export const HeavyComponent = memo(function HeavyComponent({ data }: Props) { | ||
| // 복잡한 렌더링 로직 | ||
| }); |
There was a problem hiding this comment.
React.memo 사용 예시 또한 스타일 가이드(64-77행)에 따라 화살표 함수로 작성하는 것이 일관성에 좋습니다. memo로 감싸는 컴포넌트도 화살표 함수 형태로 수정하는 것을 권장합니다.
| export const HeavyComponent = memo(function HeavyComponent({ data }: Props) { | |
| // 복잡한 렌더링 로직 | |
| }); | |
| export const HeavyComponent = memo(({ data }: Props) => { | |
| // 복잡한 렌더링 로직 | |
| }); |
References
- 모든 컴포넌트는 화살표 함수(Arrow Function)로 작성해야 한다는 규칙은 일관성을 위해
React.memo로 감싸는 컴포넌트에도 적용하는 것이 좋습니다. (link)
4e1b9c5 to
3cdc64b
Compare
- CLAUDE.md: 프로젝트 아키텍처 및 코딩 컨벤션 가이드 - .claude/skills/pr-create/SKILL.md: PR 문서 자동 생성 스킬 - .claude/skills/pr-submit/SKILL.md: PR GitHub 제출 스킬
- src/apis/README.md: API 레이어 구조 및 신규 도메인 추가 가이드 - src/components/README.md: 컴포넌트 작성 규칙 및 접근성 체크리스트
- pr-create SKILL: PR 제목 생성 시 scope 괄호를 무조건 제거하도록 규칙 명시 * feat(ci): → feat: * fix(api): → fix: - pr-submit SKILL: scope 제거 관련 설명 추가 - 예시 및 Notes 섹션에 중요 규칙으로 강조 Co-Authored-By: Claude (us.anthropic.claude-sonnet-4-5-20250929-v1:0) <noreply@anthropic.com>
3cdc64b to
3bca552
Compare
youngminss
left a comment
There was a problem hiding this comment.
오케이 이거는 일단 프로젝트에 바로 반영하자 !
나는 회사에서는 작업하면서 내가 반복적으로 프롬프팅하거나 추가적인 팀 컨벤션이 생기면 지속적으로 보완해주는 skill 을 따로 만들어서 등록해서 사용하고 있는데 괜찮은 것 같았어
## 1.0.0-beta.1 (2026-02-16) ### Features * [#70](#70) ([#72](#72)) ([b676e0e](b676e0e)) * [QA] 모임 생성 완료, 결과페이지 페이지 UI 개선 ([#66](#66)) ([f10225d](f10225d)) * [QA] 서비스 전체 배경색 및 Layout Root 그림자 효과 적용 ([#59](#59)) ([384b56f](384b56f)) * api client 모듈 생성 ([#37](#37)) ([a37b0a9](a37b0a9)), closes [#38](#38) [#39](#39) [#40](#40) [#41](#41) * Button 컴포넌트 추가 ([#11](#11)) ([83b7607](83b7607)) * Chip Component 추가 ([#9](#9)) ([e9d8b8f](e9d8b8f)) * Color theme 초기화 ([#2](#2)) ([97f1dcc](97f1dcc)) * DotsLoader 컴포넌트 추가 ([#48](#48)) ([cfe4582](cfe4582)), closes [#49](#49) * GA4 이벤트 트래킹 통합 ([#70](#70)) ([0c1b9fa](0c1b9fa)) * GTM(Google Tag Manager) 통합을 위한 Analytics 컴포넌트 추가 ([#57](#57)) ([87a6ded](87a6ded)) * IconBase 컴포넌트 및 아이콘 컴포넌트들 구축 ([#13](#13)) ([8557b75](8557b75)), closes [#FFCD00](https://github.com/Nexters/yogieat/issues/FFCD00) [#FFAD00](https://github.com/Nexters/yogieat/issues/FFAD00) [#15](#15) [#ff5a3c](https://github.com/Nexters/yogieat/issues/ff5a3c) * InputField 컴포넌트 추가 ([#16](#16)) ([99b8aa2](99b8aa2)) * Landing / Opinion Form 페이지 분리 ([#61](#61)) ([0f11e71](0f11e71)) * Layout 컴포넌트 추가 ([#10](#10)) ([9efce6f](9efce6f)) * Semantic Color Token 추가 ([#19](#19)) ([fcaedaf](fcaedaf)) * Spacing utility 클래스 초기화 ([#8](#8)) ([2e38d7a](2e38d7a)) * Tag 컴포넌트 추가 ([#20](#20)) ([f69dd05](f69dd05)) * Toast 컴포넌트 추가 ([#21](#21)) ([76e84b0](76e84b0)) * 모임 생성 퍼널 Step 1 (인원 선택) 구현 ([#23](#23)) ([7fc01a1](7fc01a1)), closes [#24](#24) [#1f2933](https://github.com/Nexters/yogieat/issues/1f2933) [#ff5a3c](https://github.com/Nexters/yogieat/issues/ff5a3c) [#25](#25) [#26](#26) [#27](#27) [#28](#28) [#29](#29) [#30](#30) [#31](#31) [#32](#32) [#34](#34) * 프로젝트 기초 세팅 진행 ([aa0ec20](aa0ec20)) * 프로젝트 폴더 구조 반영 ([e54962d](e54962d)) ### Bug Fixes * 1순위를 1개라도 선택했다면 바로 CTA 가 활성화 되도록 수정 ([#60](#60)) ([e5758b4](e5758b4)) * 1차 MVP 배포 이전 최종 QA 항목 반영 ([#58](#58)) ([6574231](6574231)) * Button/Chip type 속성 추가 및 의견 수렴 UX 개선 ([#50](#50)) ([7e86e4a](7e86e4a)), closes [#51](#51) [#52](#52) [#53](#53) [#54](#54) [#55](#55) [#56](#56) * cat 에서 echo 로 env.production 파일을 생성하도록 수정 ([f15307d](f15307d)) * CI/CD health check 타이밍 개선 및 수동 배포 기능 추가 ([54fd2b8](54fd2b8)) * Docker build-args로 환경 변수 전달 방식 변경 ([#77](#77)) ([e5fa0b9](e5fa0b9)) * Docker 이미지 강제 pull 및 컨테이너 재생성 ([#79](#79)) ([c253ec1](c253ec1)) * Health check 전략 개선 및 curl 기반으로 변경 ([765d3da](765d3da)) * nginx http2 deprecated 경고 해결 ([2fd9c75](2fd9c75)) * PendingView 내에서 ShareButton 을 렌더링 하지 않도록 수정 ([7bc3e12](7bc3e12)) * 결과 페이지 맛집 이미지 기본 placeholder, 공유하기 toast 미노출 ([#68](#68)) ([3c80844](3c80844)) * 동시 배포 방지를 위한 concurrency 설정 추가 ([e9bfd52](e9bfd52)) * 모임 생성 퍼널 필드 상태 초기화 버그 수정 ([#64](#64)) ([3934066](3934066)), closes [#65](#65) * 모임 생성 폼 필드명 변경 (meetingDate → scheduledDate, location → region) ([#35](#35)) ([e90beed](e90beed)) * 배포 워크플로우에 GA4 환경 변수 추가 ([#73](#73)) ([835ae1f](835ae1f)) * 의견 수렴 페이지 내 UI 수정 및 인터렉션 개선 ([#36](#36)) ([a74f7da](a74f7da)) * 의견 수합 Form Capacity 폴링 제거 및 ErrorCode 타입 시스템 추가 ([#67](#67)) ([d55dba1](d55dba1)) * 인원 수 선택 Grid 및 의견 수렴 QA 수정 사항 반영 ([f01626e](f01626e)) * 테스트 용으로 추가했던 페이지 제거 및 icons 폴더 추가 ([4116025](4116025)) ### Code Refactoring * Button 컴포넌트 스펙을 Figma 명세에 맞춰 수정 ([#14](#14)) ([2e27f17](2e27f17)) ### Build System * Docker 빌드 시 NEXT_PUBLIC 환경변수 주입 프로세스 추가 ([#47](#47)) ([88ba163](88ba163)) ### Documentation * 프로젝트 개발 가이드 문서 추가 ([#84](#84)) ([4313145](4313145))
## 1.0.0 (2026-02-16) ### Features * [#70](#70) ([#72](#72)) ([b676e0e](b676e0e)) * [QA] 모임 생성 완료, 결과페이지 페이지 UI 개선 ([#66](#66)) ([f10225d](f10225d)) * [QA] 서비스 전체 배경색 및 Layout Root 그림자 효과 적용 ([#59](#59)) ([384b56f](384b56f)) * analytics 개선 및 네이버 서치 어드바이저 등록 ([#88](#88)) ([4372aa5](4372aa5)) * api client 모듈 생성 ([#37](#37)) ([a37b0a9](a37b0a9)), closes [#38](#38) [#39](#39) [#40](#40) [#41](#41) * Button 컴포넌트 추가 ([#11](#11)) ([83b7607](83b7607)) * Chip Component 추가 ([#9](#9)) ([e9d8b8f](e9d8b8f)) * Color theme 초기화 ([#2](#2)) ([97f1dcc](97f1dcc)) * DotsLoader 컴포넌트 추가 ([#48](#48)) ([cfe4582](cfe4582)), closes [#49](#49) * GA4 이벤트 트래킹 통합 ([#70](#70)) ([0c1b9fa](0c1b9fa)) * GTM(Google Tag Manager) 통합을 위한 Analytics 컴포넌트 추가 ([#57](#57)) ([87a6ded](87a6ded)) * IconBase 컴포넌트 및 아이콘 컴포넌트들 구축 ([#13](#13)) ([8557b75](8557b75)), closes [#FFCD00](https://github.com/Nexters/yogieat/issues/FFCD00) [#FFAD00](https://github.com/Nexters/yogieat/issues/FFAD00) [#15](#15) [#ff5a3c](https://github.com/Nexters/yogieat/issues/ff5a3c) * InputField 컴포넌트 추가 ([#16](#16)) ([99b8aa2](99b8aa2)) * Landing / Opinion Form 페이지 분리 ([#61](#61)) ([0f11e71](0f11e71)) * Layout 컴포넌트 추가 ([#10](#10)) ([9efce6f](9efce6f)) * Semantic Color Token 추가 ([#19](#19)) ([fcaedaf](fcaedaf)) * Spacing utility 클래스 초기화 ([#8](#8)) ([2e38d7a](2e38d7a)) * Tag 컴포넌트 추가 ([#20](#20)) ([f69dd05](f69dd05)) * Toast 컴포넌트 추가 ([#21](#21)) ([76e84b0](76e84b0)) * 모임 생성 완료 페이지 UI 리뉴얼 ([#89](#89)) ([17a3fc1](17a3fc1)) * 모임 생성 퍼널 Step 1 (인원 선택) 구현 ([#23](#23)) ([7fc01a1](7fc01a1)), closes [#24](#24) [#1f2933](https://github.com/Nexters/yogieat/issues/1f2933) [#ff5a3c](https://github.com/Nexters/yogieat/issues/ff5a3c) [#25](#25) [#26](#26) [#27](#27) [#28](#28) [#29](#29) [#30](#30) [#31](#31) [#32](#32) [#34](#34) * 프로젝트 기초 세팅 진행 ([aa0ec20](aa0ec20)) * 프로젝트 폴더 구조 반영 ([e54962d](e54962d)) ### Bug Fixes * 1순위를 1개라도 선택했다면 바로 CTA 가 활성화 되도록 수정 ([#60](#60)) ([e5758b4](e5758b4)) * 1차 MVP 배포 이전 최종 QA 항목 반영 ([#58](#58)) ([6574231](6574231)) * Button/Chip type 속성 추가 및 의견 수렴 UX 개선 ([#50](#50)) ([7e86e4a](7e86e4a)), closes [#51](#51) [#52](#52) [#53](#53) [#54](#54) [#55](#55) [#56](#56) * cat 에서 echo 로 env.production 파일을 생성하도록 수정 ([f15307d](f15307d)) * CI/CD health check 타이밍 개선 및 수동 배포 기능 추가 ([54fd2b8](54fd2b8)) * Docker build-args로 환경 변수 전달 방식 변경 ([#77](#77)) ([e5fa0b9](e5fa0b9)) * Docker 이미지 강제 pull 및 컨테이너 재생성 ([#79](#79)) ([c253ec1](c253ec1)) * Health check 전략 개선 및 curl 기반으로 변경 ([765d3da](765d3da)) * nginx http2 deprecated 경고 해결 ([2fd9c75](2fd9c75)) * PendingView 내에서 ShareButton 을 렌더링 하지 않도록 수정 ([7bc3e12](7bc3e12)) * 결과 페이지 맛집 이미지 기본 placeholder, 공유하기 toast 미노출 ([#68](#68)) ([3c80844](3c80844)) * 동시 배포 방지를 위한 concurrency 설정 추가 ([e9bfd52](e9bfd52)) * 모임 생성 퍼널 필드 상태 초기화 버그 수정 ([#64](#64)) ([3934066](3934066)), closes [#65](#65) * 모임 생성 폼 필드명 변경 (meetingDate → scheduledDate, location → region) ([#35](#35)) ([e90beed](e90beed)) * 배포 워크플로우에 GA4 환경 변수 추가 ([#73](#73)) ([835ae1f](835ae1f)) * 의견 수렴 페이지 내 UI 수정 및 인터렉션 개선 ([#36](#36)) ([a74f7da](a74f7da)) * 의견 수합 Form Capacity 폴링 제거 및 ErrorCode 타입 시스템 추가 ([#67](#67)) ([d55dba1](d55dba1)) * 인원 수 선택 Grid 및 의견 수렴 QA 수정 사항 반영 ([f01626e](f01626e)) * 테스트 용으로 추가했던 페이지 제거 및 icons 폴더 추가 ([4116025](4116025)) ### Code Refactoring * Button 컴포넌트 스펙을 Figma 명세에 맞춰 수정 ([#14](#14)) ([2e27f17](2e27f17)) ### Build System * Docker 빌드 시 NEXT_PUBLIC 환경변수 주입 프로세스 추가 ([#47](#47)) ([88ba163](88ba163)) ### Documentation * 프로젝트 개발 가이드 문서 추가 ([#84](#84)) ([4313145](4313145))
🎯 PR 제목
docs: 프로젝트 개발 가이드 문서 추가
📑 작업 상세 내역
🙏 리뷰 요청 사항
📃 참고 자료
추가된 문서
CLAUDE.md- 프로젝트 전체 가이드 (아키텍처, 기술 스택, 코딩 컨벤션).claude/skills/pr-create/SKILL.md- PR 문서 자동 생성 워크플로우.claude/skills/pr-submit/SKILL.md- GitHub PR 제출 자동화src/apis/README.md- API 레이어 개발 가이드src/components/README.md- 컴포넌트 개발 가이드문서 구조
🖼️ 작업 결과물
문서 개요
CLAUDE.md
src/apis/README.md
src/components/README.md
PR 스킬 문서
기대 효과