
📂 Expo 프로젝트 기본 구조 설명
개발을 시작하기 전에 제가 중요하게 생각하는 세 가지가 있습니다.
첫째, 파일 구조를 이해하는 것.
둘째, 공용 컴포넌트와 API 등 구조를 어떻게 활용할지 계획하는 것.
셋째, 이를 잘 정리하면 코드 가독성이 높아져 개발 속도와 효율이 좋아진다는 점입니다.
이전 프로젝트에서 구조를 제대로 잡지 못해 마감이 늦었던 경험을 바탕으로, 이번 2화에서는 파일 구조 이해와 활용에 초점을 맞춰보겠습니다.


용도 : Expo 내부 설정과 캐시 관리
types/router.d.ts → 라우터 타입 정의 (TypeScript용)
web/cache/production/ → 웹 빌드 캐시 (favicon 등)
특징: 직접 수정 X, 지워도 Expo가 자동 생성

용도 : IntelliJ / Android Studio 프로젝트 설정
코드 스타일, 인덱스, 런/디버그 설정
특징: 개인 설정용, Git에 올리지 않아도 됨

용도: 최근 연결된 기기(USB, 시뮬레이터) 기록
특징: 앱 실행 시 디바이스 선택 참고용, 삭제 가능

용도: Metro 번들러 상태 정보
내용: 서버 포트, 빌드 캐시 위치 등
특징: 자동 생성/관리, 삭제 가능

용도: 프로젝트 설명 문서
내용: 설치 방법, 실행 방법, 구조 설명 등

용도: IDE 또는 Expo 환경 설정
특징: 삭제 가능, 다시 자동 생성될 수 있음

용도: 핵심 앱 코드
app/ (예시 구조)
├─ api/ # 서버 통신 모듈
├─ screens/ # 화면 단위
├─ components/ # 재사용 UI
├─ hooks/ # 커스텀 훅
├─ utils/ # 유틸 함수/상수
└─ App.tsx # 앱 entry
특징: 개발자가 주로 수정/추가하는 영역

용도: 이미지, 폰트, 아이콘 등 정적 리소스
특징: 앱 번들에 포함, 파일 관리 용이
용도: 자동화 스크립트 또는 빌드 스크립트
ex)
배포용 빌드 스크립트
환경변수 설정/관리 스크립트
특징: 직접 작성/수정 가능, 프로젝트에 따라 없을 수도 있음
용도: API 키, 서버 URL 등 민감 정보 관리
특징: Git에 올릴 때 .env.example만 올리고 실제 .env는 제외
실제 개발자는 app/ + assets/ + scripts/ + 환경 변수만 주로 관리하며,
나머지는 자동 생성/캐시용 파일입니다.