Front-End/React(비공)
[React clone coding] #5. 리액트 프로젝트 기본 폴더 및 구조는 어떻게 짜는 것이 좋을까?
리리히히
2024. 11. 20. 23:22
반응형
✅ 폴더는 크게 node_modules / public / src로 나뉜다.
리액트 프로젝트를 처음 생성했을 때의 폴더구조는 대략 이렇다.
📍 node_modules
- 패키지 코드가 존재하는 폴더
📍 public
- 가상 DOM을 구성하는 index.html 파일이 들어있다.
- 이 폴더의 index.html은 마치 알맹이가 없는 껍데기와 같은 파일이랄까...?
- 실제 서버에 배포가 되는 폴더
📍 src
- index.js(typescript의 경우에는 index.tsx) 파일이 들어있는 폴더
- index.js 파일은 React 애플리케이션의 중심이며, 애플리케이션을 실제 DOM에 렌더링하는 역할을 함.
✅ 폴더 이외의 파일
📍 package-lock.json
- 작업자가 따로 관리할 필요가 없다. (npm 또는 yarn이 자동으로 관리)
- 해당 프로젝트에서 설치판 패키지 정보(버전 등)들이 기록되어있다.
📍 package.json
- CRA 초기 패키지 이외에 추가로 설치된 패키지(또는 라이브러리)의 정보와 버전이 기록되는 파일
- "dependencies"
- 해당 리액트 프로젝트에서 사용 되는 모든 패키지 리스트 목록 및 버전
- 해당 파일들은 node_modules 폴더에 존재 - "scripts"
- 리액트 프로젝트에서 사용되는 명령어
- npm start
개발 모드에서 React 애플리케이션을 실행
로컬 개발 서버를 시작하여 애플리케이션을 브라우저에서 확인
코드 변경 시 자동으로 브라우저를 새로고침하여 변경 사항을 즉시 반영
- npm build
최적화된 빌드: 코드를 최소화하고 최적화하여 성능을 향상시킵니다
정적 파일 생성: HTML, CSS, JavaScript 파일을 생성하여 build 디렉토리에 저장
파일 해싱: 생성된 파일 이름에 고유한 해시를 추가하여 캐싱을 최적화합니다
- npm test
React 프로젝트에서 단위 테스트를 실행하는 데 사용
📍 gitignore
- git에 커밋할때 제외시키고 싶은 파일을 작성할 수 있다.
- push 할 때, 해당 파일에 적어 놓은 파일 목록은 git 레파지토리에 커밋되지 않는다.
✅ 프로젝트를 할때의 기본적인 폴더 구조
src/
├── assets/
├── components/
├── hooks/
├── pages/
├── services/
├── styles/
├── utils/
├── App.js
└── index.js
- assets
- 이미지, 폰트 등 정적인 파일을 저장 - components
- 재사용이 가능한 UI컴포넌트를 저장, 기능별로 폴더를 구분할 수 있음 - hooks
- 커스텀 훅 저장, - pages
- 라우팅 되는 페이지를 저장 - services
- API 호출 등 외부 서비스와의 통신을 담당하는 코드를 저장 - styles
- 스타일 관련 설정을 저장 - utils
- 유틸리티 함수들을 저장
✅ 주의
- 폴더 구조를 깊게 만들지 않는다. (평평한 구조 유지)
- 컴포넌트, 함수, 변수 등의 이름들은 공통된 네이밍 규칙을 따른다 (ex. 컴포넌트는 PascalCase, 함수와 변수는 camelCase)
파일 구조 – React
A JavaScript library for building user interfaces
ko.legacy.reactjs.org
반응형