Skip to content

[Setting] 프로젝트 폴더 구조 및 리뷰 규칙 정비 #19

Description

@sungtaegyeong

🌿 브랜치 유형

setting

🌳 브랜치에 포함될 작업 내용

project-structure

📌 상세 설명

팀에서 합의한 Feature-first 기반 폴더 구조를 프로젝트에 반영합니다.

Expo Router의 라우트 파일과 실제 화면 컴포넌트의 책임을 분리하고, 기능별 코드를 features에서 관리하도록 구조를 정비합니다.

적용할 구조 원칙

  • Expo Router의 app 폴더에는 route와 layout만 배치합니다.
  • 실제 화면과 기능별 UI는 features/<feature>/components에서 관리합니다.
  • 별도의 screens 폴더는 사용하지 않습니다.
  • route와 연결되는 화면 컴포넌트는 *Screen.tsx 접미사로 구분합니다.
  • 공통 UI는 components/common, 아이콘은 components/icons에서 관리합니다.
  • 개인 과제와 팀 과제의 상세 화면 및 라우트를 분리합니다.
  • 과제 수정 화면은 개인/팀 공통으로 관리합니다.
  • 서버 상태와 전역 클라이언트 상태의 책임을 구분합니다.
  • 구현할 파일이 없는 빈 feature 폴더는 미리 생성하지 않습니다.

과제 라우팅 원칙

  • 개인 과제 상세: /tasks/personal/[taskId]
  • 팀 과제 상세: /tasks/team/[taskId]
  • 공통 과제 수정: /tasks/[taskId]/edit
  • 과제 생성: /tasks/create

문서 및 리뷰 설정

  • AGENTS.md의 기존 폴더 구조와 컨벤션을 합의된 구조로 수정합니다.
  • .coderabbit.yaml의 경로별 리뷰 지침을 새로운 폴더 구조에 맞게 수정합니다.
  • route, feature component, 공통 component, store, API 코드의 책임을 명시합니다.
  • 기존 경로를 참조하는 alias, NativeWind, Storybook 설정을 함께 점검합니다.

제외 범위

  • 실제 인증/과제/알림 화면 구현
  • API 및 소켓 연동
  • 기존 컴포넌트의 동작 변경
  • 필요하지 않은 공통화 또는 리팩토링

✅ 작업한 내용

  • 최종 폴더 구조를 AGENTS.md에 반영
  • 폴더별 책임과 의존성 규칙 문서화
  • 화면 컴포넌트를 features/<feature>/components에 배치하는 규칙 추가
  • *Screen.tsx 화면 컴포넌트 네이밍 규칙 추가
  • 개인/팀 과제 상세 라우트 분리 규칙 추가
  • 공통 과제 수정 라우트를 /tasks/[taskId]/edit로 정의
  • .coderabbit.yaml의 path instruction을 새 구조에 맞게 수정
  • CodeRabbit에 얇은 route 파일 검토 규칙 추가
  • 서버 상태와 Zustand 상태의 관리 기준 추가
  • 프로젝트에 합의된 기본 디렉터리 구조 반영
  • 기존 파일을 새로운 책임에 맞는 경로로 이동
  • TypeScript 절대경로 alias 점검 및 수정
  • NativeWind content 탐색 경로 점검 및 수정
  • Storybook story 탐색 경로 점검 및 수정
  • Expo 초기 템플릿 라우트 및 미사용 데모 파일 정리
  • lint 및 TypeScript 검사 통과 확인
  • Expo Doctor 검사 통과 확인
  • Storybook 실행 확인

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions