{"id":20009723,"url":"https://github.com/heonys/webpack-react-enterprise","last_synced_at":"2026-04-10T07:18:30.545Z","repository":{"id":208151914,"uuid":"714899158","full_name":"Heonys/webpack-react-enterprise","owner":"Heonys","description":"Complete A-Z React Setup for Enterprise-grade Application from Scratch","archived":false,"fork":false,"pushed_at":"2024-01-26T20:02:10.000Z","size":19909,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-12T14:37:08.388Z","etag":null,"topics":["chakra","cypress","emotion","husky","jest","msw","react","react-oauth","react-query","recoil","storybook","tailwindcss","testing-library","typescript","webpack"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Heonys.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-06T04:22:26.000Z","updated_at":"2024-01-26T20:09:43.000Z","dependencies_parsed_at":"2025-01-12T14:33:29.385Z","dependency_job_id":"bbeb7855-df3e-40c4-8882-679bfdedd0f5","html_url":"https://github.com/Heonys/webpack-react-enterprise","commit_stats":null,"previous_names":["heonys/webpack-react-enterprise"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Heonys%2Fwebpack-react-enterprise","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Heonys%2Fwebpack-react-enterprise/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Heonys%2Fwebpack-react-enterprise/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Heonys%2Fwebpack-react-enterprise/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Heonys","download_url":"https://codeload.github.com/Heonys/webpack-react-enterprise/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241447522,"owners_count":19964314,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chakra","cypress","emotion","husky","jest","msw","react","react-oauth","react-query","recoil","storybook","tailwindcss","testing-library","typescript","webpack"],"created_at":"2024-11-13T07:16:54.993Z","updated_at":"2026-04-10T07:18:25.522Z","avatar_url":"https://github.com/Heonys.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# webpack-react-enterprise\n\n### 🚀 개요 \n\"webpack-react-enterprise\"는 웹팩을 사용하여 React 어플리케이션을 구축하기 위한 저장소입니다. Create React App 혹은 Vite과 같은 번들러를 사용하면 생산성을 크게 향상시켜 주지만 Webpack을 직접 설정하고 Babel, TypeScript 등 필요한 도구들을 직접 설치하며 프로젝트를 구성하며 코드 스플리팅, 번들 최적화 등 웹팩을 직접 다루고 그 동작 원리와 설정 방법에 대한 이해도를 높일 수 있는 것을 목표로 합니다. 이를 통해 React 프로젝트에 필요한 모든 요소를 완전히 제어하면서, 더 많은 유연성과 커스터마이징 가능성을 제공합니다.\n\n\n### 🎯 목표\n1. 웹팩을 사용하여 직접 React 어플리케이션을 구축하는 방법을 이해하고 익히기\n2. 필요한 모든 요소를 갖춘 React 애플리케이션 개발하기 \n3. 웹팩 설정, Babel, TypeScript 등의 도구를 직접 설치하고 설정하여 프로젝트의 커스터마이징 가능성 확보하기 \n4. enterprise 수준의 프로젝트에 필요한 기능과 구조 구현하기 \n\n### 🔍 Features\n\n- **[React](https://ko.legacy.reactjs.org/)**: UI 라이브러리 \n- **[Typescript](https://www.typescriptlang.org/)**: 타입 안전성과 개발 생산성 향상\n- **[Tailwind](https://tailwindcss.com/), [Emotion](https://emotion.sh/docs/introduction)** 모두 가능한 유연한 스타일링 지원  \n- Emotion 기반의 **[Chakra-UI](https://chakra-ui.com/)** 컴포넌트 제공 \n- **[Eslint](https://eslint.org/)** 와 **[Prettier](https://prettier.io/)**: 일관된 코드 스타일 유지\n- **[Jest](https://jestjs.io/)**, **[Testing Library](https://testing-library.com/)**: 유닛 테스트와 통합 테스트\n- **[Cypress](https://www.cypress.io/)**: E2E 테스트 \n- **[Storybook](https://storybook.js.org/)**: 컴포넌트 단위의 문서화 환경 제공  \n- **[MSW](https://mswjs.io/)**: 브라우저 API모킹 및 테스트 강화 \n- **[Recoil](https://recoiljs.org/ko/)** 과 **[React Query](https://tanstack.com/)** 를 통한 상태 관리\n- **[Zod](https://zod.dev/)**: 데이터 유효성 검사 \n- **[react-hook-form](https://react-hook-form.com/)**: 강력한 form 관리 \n- **[i18next](https://www.i18next.com/)**: 다국어 지원 \n- **[react-oauth](https://github.com/MomenSherif/react-oauth)**: 구글 소셜로그인 지원  \n- **[Commitizen](https://github.com/commitizen/cz-cli)**: 일관된 커밋 메시지 관리\n- **[react-helmet](https://github.com/nfl/react-helmet)**: 메타데이터를 동적으로 관리\n- **[Husky](https://typicode.github.io/husky/)**, **[lint-staged](https://github.com/lint-staged/lint-staged)**: Git 훅을 이용한 커밋 규칙 강제\n- **[Express](https://expressjs.com/)**: 빌드된 어플리케이션 호스팅용 웹서버 제공\n\n\n### 🎉 시작하기\n\n저장소 복제 및 패키지 의존성 설치 \n```shell\ngit clone --depth=1 https://github.com/Heonys/webpack-react-enterprise.git my-project-name\ncd my-project-name\nyarn install\n```\n\n개발 모드에서 시작\n\n```shell\nyarn dev\n```\n\n브라우저에서 `http://localhost:3000`을 열어 확인하세요\n\n### 📃 스크립트 \n\n`package.json`에서 다음과 같은 스크립트들이 사용이 가능합니다 \n\n- `dev`: webpack 개발 서버 실행 \n- `build`: 리액트 어플리케이션 빌드 \n- `serve`: 빌드이후 production 환경에서 실행\n- `storybook`: storybook 서버 시작\n- `build:storybook`: storybook 서버 빌드 \n- `commit`: commitizen으로 git commit\n- `test`: 테스트 실행 \n- `test:coverage`: 테스트 커버리지 확인\n- `test:e2e`: cypress 실행 \n- `prepare`: 패키지 설치시 husky가 자동으로 Git 훅을 설치\n- `check-types`: tsc로 타입체크 \n\n\n### 🛠️ 프로젝트 구조\n```shell\n.\n├── README.md                       # README file\n├── .husky                          # Husky configuration\n├── .storybook                      # Storybook configuration\n├── .yarn                           # Yarn package manager settings\n├── cypress                         # Cypress E2E test\n├── server                          # Express server folder \n├── public                          # Public assets folder\n├── src\n│   ├── api                         # HTTP request \n│   ├── atom                        # Recoil state management\n│   ├── components                  # React components\n│   ├── context                     # React context\n│   ├── hook                        # Custom hooks\n│   ├── i18n                        # i18next configuration\n│   ├── mocks                       # MSW configuration\n│   ├── pages                       # Page component\n│   ├── routes                      # React routing \n│   ├── stories                     # Storybook story \n│   ├── test                        # Unit \u0026 Integration test\n│   ├── types                       # Type definitions\n│   └── util                        # Utility function\n```\n\n### 🌐 i18n\n\n### 📢 express \n\n### 📝 commitizen\n\n### ⚙️ 환경 변수\n\n### 🎲 MSW \n\n### 📖 Storybook \n\n### 🧪 테스트\n\n- **단위 테스트 및 통합테스트**: `yarn test`을 통한 Jest 실행 \n- **End-to-end tests**: `yarn e2e`을 통한 Cypress 실행 \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheonys%2Fwebpack-react-enterprise","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fheonys%2Fwebpack-react-enterprise","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheonys%2Fwebpack-react-enterprise/lists"}