네모네모 앱의 프론트엔드 저장소입니다
- React Native
- TypeScript
- Expo
- styled-components
- Figma Design Token 기반 전역 스타일
- CI/CD를 통한 토큰 자동 반영
- Context API (전역 UI/앱 상태)
- React Query (서버 상태 관리)
- Storybook
- 컴포넌트 단위 UI 상태 문서화
- npm
- Figma 디자인 토큰을 단일 소스로 사용
- 토큰 가공 후 CI/CD에서 자동 빌드
- 전역 theme으로 등록하여 사용
Figma Tokens
→ Token 가공
→ CI/CD
→ styles/theme.ts
- 색상, spacing, 폰트 직접 값 사용 금지
- 모든 스타일은 theme 토큰을 통해서만 사용
본 프로젝트는 Atomic Design + Feature-Sliced Design(FSD) 구조를 사용합니다.
src/
├─ app/
├─ features/
└─ shared/프로젝트 전반에서 재사용되는 공통 자원
ui: Atomic 단위 UI 컴포넌트 (Button, Input 등)story: 스토리북hooks: 공통 Custom Hookutils: 공통 유틸 함수lib: 공통 라이브러리 로직config: 설정 및 상수types: 공통 타입 정의
기능 단위 코드 그룹
- UI, API, 상태 관리 로직을 기능별로 응집
- 예)
features/auth,features/schedule,features/todo
라우팅 및 화면 구성
- 화면 단위 조합
- feature 연결 및 전역 Provider 구성
- 공통 요소는
shared - 비즈니스 기능은
features - 화면과 라우팅은
app
- 문서화 대상
- atoms
- molecules
- organisms
- templates 제외
- 상태별 스토리 필수 제공
목적:
- UI 변경 영향도 확인
- 컴포넌트 사용 기준 명확화
- React Query 사용
- Screen 단에서만 호출
- mutation 후 invalidate 필수
- Context API 사용
- 인증, 선택된 그룹 등 앱 공통 상태 관리
services/
├─ auth.ts
├─ team.ts
├─ schedule.ts
└─ todo.ts- API 호출 로직만 포함
- UI 로직과 분리
main: 배포 브랜치develop: 개발 통합 브랜치feat/*: 기능 단위 작업 브랜치
| 타입 | 설명 |
|---|---|
| feat | 기능 추가 |
| fix | 버그 수정 |
| refactor | 리팩토링 |
| style | 스타일 수정 |
| docs | 문서 |
| chore | 설정 |
| design | 디자인 변경 |
예시:
feat: 팀 투두 생성 로직 추가
design: spacing 토큰 수정