Sprint 0 _ 기본 골격 고정 _3_5일_
목표:
확장 가능한 구조 + 더미 데이터로 전체 흐름 이동 가능
S0-1 프로젝트 초기화
목적
RN(Expo) 기반 프로젝트 생성 및 기본 실행 확인
작업
Expo 프로젝트 생성 (TypeScript)
폴더 구조 기본 세팅
eslint / prettier 설정
환경변수 관리 구조 (.env.dev / .env.prod)
완료 조건
앱이 정상 실행됨
빌드 에러 없음
Git 초기 커밋 완료
S0-2 폴더 구조 설계
목적
초기부터 “기능 중심” 구조 고정
구조 예시
/src
/app (navigation, app entry)
/features
/slot
/reservation
/user
/shared
/components
/hooks
/utils
/services
/store완료 조건
실제 코드 파일 생성
import 경로 정리
alias 설정(@/)
S0-3 네비게이션 기본 구성
목적
화면 흐름 틀 확보
화면
HomeScreen
SlotDetailScreen
ReservedScreen
HistoryScreen (더미)
작업
React Navigation 설치
Stack Navigator 구성
더미 버튼으로 화면 이동 확인
완료 조건
홈 → 상세 → 확보 화면 이동 가능
뒤로가기 정상 작동
S0-4 전역 상태관리 기본 세팅
목적
Zustand 기반 최소 상태 구조
초기 상태
user
location
activeReservation
filters
작업
store 파일 생성
기본 set/get 로직 구현
더미 값 세팅
완료 조건
화면에서 store 값 읽고 수정 가능
앱 재렌더링 정상
S0-5 API 레이어 스켈레톤
목적
UI와 DB 연결 분리
작업
services/apiClient.ts (fetch wrapper)
services/slotService.ts
services/reservationService.ts
mock 데이터 반환 함수 작성
완료 조건
HomeScreen에서 mock 슬롯 리스트 표시 가능
실제 API 호출 없이 동작
S0-6 기본 UI 컴포넌트 세팅
목적
디자인 일관성 기반 준비
작업
SlotCard 컴포넌트 생성
PrimaryButton 컴포넌트
LoadingView
EmptyView
디자인 원칙 반영
과도한 색상 없음
시간 강조 텍스트 스타일 정의
강조 색상은 하나만 정의
완료 조건
더미 슬롯 카드 5개 표시
클릭 시 상세 이동
S0-7 에러/로딩 상태 통일
목적
초기부터 예외 흐름 구조화
작업
공통 ErrorBoundary
네트워크 실패 시 기본 에러 화면
재시도 버튼
완료 조건
mock 에러 발생 시 정상 화면 표시
앱 크래시 없음
S0-8 기본 로그 유틸
목적
디버깅 편의성 확보
작업
logger.ts 작성
dev 모드에서만 console.log 출력
이벤트 로그 기본 구조 정의
완료 조건
reserve_mock 같은 로그 찍힘
prod 모드에서 로그 제거 가능
Sprint 0 완료 정의
다음이 가능해야 한다:
- 앱 실행
- 더미 슬롯 리스트 표시
- 슬롯 상세 이동
- 확보 화면 이동
- 상태 store에 저장
- 에러 화면 표시
아직 Supabase 연결 안 함
아직 위치 권한 없음
아직 진짜 로직 없음
단단한 뼈대만 완성