효율적이고 유지 관리가 쉬운 애플리케이션을 개발하려면 프런트엔드 프로젝트를 구조화하는 것이 매우 중요합니다. 좋은 구조는 코드를 이해하기 쉽게 만듭니다. 효율적으로 기능을 확장할 수 있습니다. 특히 사용할 때 Next.js 및 TypeScript는 개발 중입니다. 다음은 일반적으로 사용되는 프로젝트 구조입니다.
my-next-app/ ├── public/ # Static files like images, fonts, etc. ├── src/ # Source code │ ├── components/ # Reusable components │ ├── pages/ # Page components (Next.js routing) │ ├── styles/ # CSS/SASS files │ ├── hooks/ # Custom hooks │ ├── contexts/ # Context API providers │ ├── utils/ # Utility functions │ ├── types/ # TypeScript types/interfaces │ ├── services/ # API calls or services │ ├── lib/ # Any additional libraries or helpers │ └── config/ # Configuration files ├── .gitignore # Git ignore file ├── next.config.js # Next.js configuration ├── package.json # npm/yarn package file └── tsconfig.json # TypeScript configuration
Atomic Design은 크기와 기능에 따라 구성 요소를 분리하는 것을 강조하는 UI 디자인 개념입니다. 원자, 분자, 유기체, 템플릿, 페이지의 5가지 레벨로 나눌 수 있습니다
my-next-app/ ├── public/ # Static files ├── src/ │ ├── components/ # UI components │ │ ├── atoms/ # Smallest elements like buttons, inputs │ │ ├── molecules/ # Combinations of atoms (e.g., form groups) │ │ ├── organisms/ # Complex UI components (e.g., header, footer) │ │ ├── templates/ # Page templates with placeholders │ │ └── pages/ # Page components │ ├── pages/ # Next.js routing (can be left for dynamic routing) │ ├── hooks/ # Custom hooks │ ├── contexts/ # Context providers │ ├── utils/ # Utility functions │ ├── types/ # TypeScript interfaces/types │ ├── services/ # API services │ ├── lib/ # Additional libraries/helpers │ └── config/ # Configurations ├── .gitignore ├── next.config.js ├── package.json └── tsconfig.json
기능 기반 구조는 새로운 기능을 더 쉽게 관리하고 확장할 수 있는 또 다른 방법입니다. 쉽습니다
my-next-app/ ├── public/ # Static files ├── src/ │ ├── features/ # Separate by features/modules │ │ ├── featureA/ │ │ │ ├── components/ # Components specific to FeatureA │ │ │ ├── pages/ # Pages related to FeatureA │ │ │ ├── hooks/ # Hooks specific to FeatureA │ │ │ ├── services/ # API calls related to FeatureA │ │ │ └── utils/ # Utility functions for FeatureA │ │ └── featureB/ # Another feature module │ ├── shared/ # Shared resources across features │ │ ├── components/ # Shared components │ │ ├── hooks/ # Shared hooks │ │ ├── contexts/ # Shared contexts │ │ └── utils/ # Shared utilities │ ├── styles/ # Global styles │ └── config/ # Configuration files ├── .gitignore ├── next.config.js ├── package.json └── tsconfig.json
이 구조는 한 곳에서 여러 프로젝트 또는 모듈을 통해 프로젝트 관리를 제공합니다. 개발의 각 부분을 명확하게 분리해야 하는 대규모 팀이나 프로젝트에 적합합니다
my-next-monorepo/ ├── apps/ # Applications (Next.js, React, etc.) │ ├── web/ # Next.js app │ └── admin/ # Another Next.js app or admin panel ├── packages/ # Shared packages or libraries │ ├── ui/ # UI component library │ ├── utils/ # Utility functions │ ├── hooks/ # Custom hooks │ └── services/ # API service packages ├── .gitignore ├── nx.json # NX configuration (if using NX) ├── turbo.json # Turborepo configuration (if using Turborepo) ├── package.json └── tsconfig.json
계층형 아키텍처 설계로 프로젝트 기능 분리가 용이함
my-next-app/ ├── public/ # Static files ├── src/ │ ├── presentation/ # UI components, pages, and routing │ │ ├── components/ # UI components │ │ ├── pages/ # Next.js pages │ │ └── routes/ # Custom routing logic │ ├── domain/ # Business logic and entities │ │ ├── entities/ # Domain entities │ │ ├── useCases/ # Business use cases │ │ └── repositories/ # Interfaces for data repositories │ ├── infrastructure/ # Data access and external services │ │ ├── api/ # API service implementations │ │ ├── db/ # Database access │ │ └── thirdParty/ # Third-party integrations │ ├── shared/ # Shared utilities and configurations │ │ ├── utils/ # Utility functions │ │ └── config/ # Configuration files │ └── styles/ # Global styles ├── .gitignore ├── next.config.js ├── package.json └── tsconfig.json
스토리북을 사용한다는 것은 분리된 UI 컴포넌트를 체계적으로 테스트하고 개발하는 것입니다. 구성 요소 기능을 쉽게 테스트할 수 있습니다
my-next-app/ ├── public/ # Static files ├── src/ │ ├── components/ # UI components │ │ ├── Button/ # Button component │ │ │ ├── Button.tsx │ │ │ ├── Button.stories.tsx │ │ │ └── Button.test.tsx │ │ └── Input/ # Input component │ ├── pages/ # Next.js pages │ ├── hooks/ # Custom hooks │ ├── utils/ # Utility functions │ ├── styles/ # Global styles │ └── config/ # Configuration files ├── .storybook/ # Storybook configuration │ ├── main.js │ └── preview.js ├── .gitignore ├── next.config.js ├── package.json └── tsconfig.json
프로젝트 구조 선택은 다음과 같은 여러 요소에 따라 달라집니다.
프로젝트.
이 정보가 프런트엔드 개발에 적합한 프로젝트 구조를 선택하는 데 도움이 되기를 바랍니다!
위 내용은 프론트엔드 프로젝트 구조에는 몇 가지 유형이 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!