확장 가능한 풀 스택 웹 애플리케이션을 구축하려면 처음부터 신중한 계획과 전략적 결정이 필요합니다. 프레임 워크 선택에서 인증에 이르기까지 모든 선택은 비용, 확장 성 및 적응성에 영향을 미칩니다. 이 기사는 Exply, Next.js 및 Trpc로 구축 된 재사용 가능한 풀 스택 솔루션 인 Ent Stack의 디자인 선택에 대해 자세히 설명합니다.
Ent Stack은 독립적 인 배포를 허용하면서 백엔드와 프론트 엔드간에 코드를 공유하는 단일 배포 가능한 프로젝트가되는 것을 목표로합니다. 비용 효율성 (처음에는 저비용 VPS에서 실행)을 위해 설계되었지만 미래의 성장을 처리 할 수있는 확장 성이 있습니다. 비용이 많이 드는 리팩토링을 피하기 위해 주요 결정은 프레임 워크 선택, 프로젝트 구조, API 계층, 환경 및 구성, 데이터베이스, 인증 및 인증, 유효성 검사 및 오류 처리, 주 관리, 국제화 (I18N), 로깅, 우편 , 테스트 및 DevOps
Ent Stack은 Github의 Monorepo 및 Easy Project 스캐 폴딩을위한 NPM 패키지로 제공됩니다.
github 리포지토리
? npm 패키지
? 빠른 시작 가이드 -
? 문서화
-
(2025 년입니다. 그리고 우리의 기술 스택을 다시 방문하는 것은 실제로 매년 의식입니다!)
주요 건축 결정에 대한 요약은 다음과 같습니다
- 1. 프레임 워크 선택
백엔드 (Express) : 미니멀리즘, 안정성 및 유연성을 위해 선택된 백엔드 : . Nestjs 및 Fastify와 같은 대안이 고려되었지만 Express는 단순성의 최상의 균형과 입증 된 신뢰성을 제공했습니다.
Frontend (Next.js) : React의 인기와 Next.js의 강력한 기능, 강력한 커뮤니티 지원 및 Vercel의 후원을 활용합니다. 장기적인 생존력과 개발자 접근성을 보장합니다.
- 2. 프로젝트 구조 (PNPM이 포함 된 Monorepo)
PNPM 작업 공간을 사용한 Monorepo 구조는 백엔드와 프론트 엔드 간의 코드 공유를 용이하게하여 원사 또는 NPM 작업 공간에 속도와 단순성을 제공합니다. 디렉토리 구조는 다음과 같이 구성됩니다
3. API 층 (TRPC)
trpc는 개발자 친화적 인 접근 방식과 엔드 투 엔드 유형 안전을 위해 REST 및 GraphQL을 통해 선택되었습니다. Next.js 및 Tanstack 쿼리와의 원활한 통합은 보일러 플레이트를 최소화하고 유형 추론을 향상시킵니다.
4. 환경 및 구성 (T3 Env, ESM, Tailwind)
T3 ENV는 환경 변수의 정적 검증을 보장합니다. 사용자 정의 구성 클래스는 정적 설정을 관리하는 반면 ESM (ECMASCRIPT MODULES)은 백엔드와 프론트 엔드 간의 코드 공유를 지원합니다. Tailwind CSS는 프론트 엔드 스타일에 사용됩니다 5. 데이터베이스 (Drizzle ORM이 포함 된 MySQL)
신뢰성 및 거래 보장을 위해 산성 호환 MySQL 데이터베이스가 선택되었습니다. Drizzle ORM은 데이터베이스 상호 작용에 대한 가벼운 유형-안전한 접근 방식을 제공합니다.
6. 인증 및 승인 (비밀번호, 경로 수준 보호)
사용자 정의 암호가없는 인증 시스템은 유연성과 제어를 제공합니다. 기본 프론트 엔드 경로 수준 보호는 경로 정의에서 플래그를 사용하여 구현됩니다.
7. 유효성 검사 및 오류 처리 (ZOD, TRPC ErrorFormatter, Sonner)
ZOD는 입력 유효성 검사를 처리하고 TRPC의 는 오류 처리를 표준화합니다. Sonner Toasts는 사용자에게 오류를 표시합니다. 사용자 정의 는 명시적인 오류 처리를 보장합니다
8. 주 관리 (Zustand, Tanstack Query)
Zustand는 단순하고 동기식 글로벌 상태를 관리하는 반면 Tanstack 쿼리는 비동기 상태 관리를 처리합니다.
9. 국제화 (i18n) (intl-messageformat를 사용한 맞춤형 솔루션)
ICU 구문 (via )과 함께 독립형 형식 스크립트 함수를 사용한 사용자 정의 i18N 솔루션은 유형 안전 및 자동 트리 쉐이킹을 제공합니다. 경로는 또한 완전히 번역 가능합니다. protected
10. 로깅 (Pino)
Pino는 백엔드와 프론트 엔드 모두에 대한 구조화 된 로깅을 제공하여 속도와 일관된 출력을 제공합니다.
11. 메일 링 (재판매, 핸들 바, MailSlurp)
전자 메일 전송을 단순화하고 핸들 바가 이메일 템플릿을 생성하고 MailSlurp가 이메일 테스트를 용이하게합니다.
12. 테스트 (극작가, Supertest)
Playwright는 Frontend E2E 및 Backend API 테스트 (SuperTest와 통합)를 모두 처리합니다.
errorFormatter
13. DevOps (AWS ECS, Terraform, Github Actions, S3, Cloudfront) - 별도의 저장소 ErrorService
AWS ECS, Terraform, Github Action, S3 및 Cloudfront는 별도의 저장소에 자세히 설명 된 인프라 및 CI/CD를 관리합니다.
ENT 스택은 오픈 소스이며 기여를 환영합니다. GitHub 저장소를 통해 문제를보고하거나 질문하십시오
위 내용은 Ent Stack : 5에서 풀 스택 웹 앱을 구축하기위한 주요 결정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!