리액트 네이티브 2 - Expo 프로젝트 기본 구조

FinalForever·2025년 11월 17일
post-thumbnail

📂 Expo 프로젝트 기본 구조 설명

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


.expo

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


.idea

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


devices.json

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


packager-info.json

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


README.md

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


settings.json

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


app/

용도: 핵심 앱 코드

app/ (예시 구조) 
 ├─ api/         # 서버 통신 모듈
 ├─ screens/     # 화면 단위
 ├─ components/  # 재사용 UI
 ├─ hooks/       # 커스텀 훅
 ├─ utils/       # 유틸 함수/상수
 └─ App.tsx      # 앱 entry

특징: 개발자가 주로 수정/추가하는 영역


assets/

용도: 이미지, 폰트, 아이콘 등 정적 리소스
특징: 앱 번들에 포함, 파일 관리 용이


scripts/

용도: 자동화 스크립트 또는 빌드 스크립트

ex)
배포용 빌드 스크립트
환경변수 설정/관리 스크립트
특징: 직접 작성/수정 가능, 프로젝트에 따라 없을 수도 있음


.env / 환경 변수 관련 파일

용도: API 키, 서버 URL 등 민감 정보 관리
특징: Git에 올릴 때 .env.example만 올리고 실제 .env는 제외


실제 개발자는 app/ + assets/ + scripts/ + 환경 변수만 주로 관리하며,
나머지는 자동 생성/캐시용 파일입니다.

profile
게임 개발에 관한 재밌는 글을 쓰고 싶습니다.

0개의 댓글