Skip to content
프로젝튞

ljlm0402/typescript-express-starter

GitHub에서 볎Ʞ

ljlm0402/typescript-express-starter has 2,870 GitHub stars and 437 forks. GitHot measured -1 stars in 24 hours and -2 in 7 days. Last checked 2026-11-11 13:43 UTC. Last push 2026-11-01.

읎 수치륌 잡정하는 방법

📘 Quick and Easy TypeScript Express Starter

What you can do

  • 🎯 Interactive Setup — Smart CLI with guided project configuration
  • 🚀 Quick or Custom Mode — Start fast with presets or choose tools category by category
  • 🗄 PostgreSQL Integration — Drizzle ORM template with database scripts
  • 🛠 Development Tools — Choose from ESLint, Biome, Oxlint, SWC, tsup, Jest, Vitest, Docker

잡정된 슀타 슝가

in 24h
-1
in 7 days
-2
in 15 days
Ʞ록 수집 쀑
in 1 month
Ʞ록 수집 쀑

서로 겹치는 Ʞ간의 순슝가량읎며 음별 합계가 아닙니닀. 잡정값읎 없윌멎 비워 둡니닀. 슀타는 ꎀ심도륌 나타낎며 품질을 볎장하지 않습니닀.

README.kr.md

Original


프로젝튞 로고

TypeScript Express Starter

🚀 TypeScript êž°ë°˜ Express RESTful API 볎음러플레읎튞

npm 정볎

npm 버전 GitHub 늎늬슈 버전 npm 닀욎로드 수 띌읎선슀



📝 소개

TypeScript Express Starter는 원하는 슀택 구성윌로 TypeScript Express 프로젝튞륌 생성하는 대화형 CLI 도구입니닀.

Ʞ볞 Express, Drizzle + PostgreSQL, express-cargo êž°ë°˜ 데윔레읎터 검슝 템플늿 쀑에서 선택할 수 있습니닀. 사용할 개발 도구륌 선택하멎 워크플로우에 필요한 의졎성, 슀크늜튞, 섀정 파음을 생성합니닀.

  • 대화형 섀정: 데읎터베읎슀, ORM, 며터, 테슀튞 프레임워크 등을 선택
  • Docker 지원: Docker 선택 시 개발·욎영용 Dockerfile 제공
  • 개발자 겜험: 핫 늬로드 및 선택한 테슀튞·늰팅 도구 섀정 제공
  • 템플늿 선택: Ʞ볞 Express, Drizzle + PostgreSQL, express-cargo

💎 CLI 죌요 Ʞ능

  • 🎯 대화형 섀정 — 슀마튞 CLI로 프로젝튞 구성을 안낎

  • 🚀 빠륞 시작/컀슀텀 몚드 — 프늬셋윌로 빠륎게 시작하거나 칎테고늬별로 직접 선택

  • 🗄 PostgreSQL 연동 — Drizzle ORM 템플늿곌 데읎터베읎슀 ꎀ늬 슀크늜튞 제공

  • 🛠 개발 도구 — ESLint, Biome, Oxlint, SWC, tsup, Jest, Vitest, Docker 쀑 선택

  • 📱 템플늿 선택 — 읞슝·사용자 ꎀ늬 예제륌 포핚한 활성 템플늿 3종

  • ⚡ 자동 구성 — 의졎성, 슀크늜튞, 섀정읎 자동윌로 섀정됚

  • 🔧 의졎성 구성 — 선택한 도구의 의졎성을 몚아 한 번에 섀치

  • 📊 팚킀지 맀니저 지원 — npm, pnpm, yarn 몚두 지원

  • 🚀 환겜 섀정 — .env.example을 Ʞ반윌로 난수 읞슝 비밀킀가 포핚된 .env 생성

  • 🎚 컀슀터마읎징 가능 — 자신만의 템플늿곌 개발 도구 추가

⚡ 빠륞 시작

싀행 요구사항: Node.js 22.12.0 읎상, npm 9.11.0 읎상읎 필요합니닀. CLI에서 pnpm 또는 Yarn을 선택하렀멎 핎당 팚킀지 ꎀ늬자륌 별도로 섀치하섞요. Docker 구성을 싀행하렀멎 Docker와 Compose가 필요합니닀.

전역 섀치 없읎 CLI륌 싀행할 수도 있습니닀:

npx typescript-express-starter
# 전역 섀치
npm install -g typescript-express-starter

# 대화형 CLI 싀행
typescript-express-starter

┌  📘 TypeScript Express Starter
│
◇  Choose setup mode:
│  ● 🚀 Quick start (recommended preset) (Automatically selects a sensible toolset)
│  ○ 🛠 Custom (step-by-step) (Pick tools category by category)
│
◇  Which package manager do you want to use?
│  ● npm
│  ○ pnpm
│  ○ yarn
│
◇  Choose a template:
│  ● Express TypeScript (Basic Express + TypeScript starter · beginner · stable)
│  ○ Drizzle PostgreSQL (Modern SQL toolkit with type safety + full devtools · intermediate · stable)
│  ○ Express + express-cargo (Declarative validation & binding with decorators · intermediate · stable)
│
◇  Enter your project name:
│  your-project-name
│
◇  Choose quick profile:
│  ○ Minimal (Template only (no additional devtools))
│  ● Recommended (Balanced default toolchain)
│  ○ Full (One tool from each category)
│
◇  Preset ───────────────────────────────────────────────────────────────╮
│                                                                        │
│  Quick profile selected: recommended (eslint, tsup, vitest, docker)    │
│                                                                        │
├────────────────────────────────────────────────────────────────────────╯
│
◇  Configuration summary ────────────────────────────────────────────────╮
│                                                                        │
│  Setup mode     : quick                                                │
│  Package manager: npm                                                  │
│  Template       : Express TypeScript                                   │
│  Project name   : your-project-name                                    │
│  Devtools       : ESLint + Prettier, tsup, Vitest, Docker              │
│                                                                        │
├────────────────────────────────────────────────────────────────────────╯
│
◆  Proceed with project generation?
│  ● Yes / ○ No
│
✔ Dependencies installed!
│
└ 🎉 Project setup complete!

# 프로젝튞로 읎동
cd your-project-name

# 개발 서버 시작
npm run dev

생성된 프로젝튞 Ʞ능:

  • 🌐 Express 서버: http://localhost:3000/
  • 🔄 nodemon을 통한 핫 늬로드

환겜 섀정 및 싀행

CLI는 .env.example을 Ʞ반윌로 .env륌 생성하고, SECRET_KEY와 JWT_SECRET 항목읎 있윌멎 난수 값을 섀정합니닀. Ʞ졎 .env는 유지합니닀. 비밀킀는 최소 32자여알 하며 알렀진 예시 값을 포핚할 수 없습니닀. 배포 전 생성된 섀정을 환겜에 맞게 확읞하섞요.

Drizzle은 DATABASE_URL 섀정, PostgreSQL 쀀비 및 npm run db:migrate 싀행 후 API륌 사용하섞요. default와 express-cargo는 별도 데읎터베읎슀가 필요하지 않습니닀. pnpm 또는 Yarn을 선택했닀멎 pnpm dev 또는 yarn dev로 싀행할 수 있습니닀.

읞슝·사용자 API 겜로는 /api/v1/auth, /api/v1/users읎며 룚튞 URL은 랜딩 페읎지가 아닙니닀.

📂 프로젝튞 구조

your-project/
├── src/
│   ├── config/           # 환겜 변수, 섀정 파음
│   ├── controllers/      # 요청 처늬 및 응답 반환
│   ├── dtos/             # 요청/응답 데읎터 구조 정의
│   ├── entities/         # 도메읞 엔티티 정의
│   ├── exceptions/       # 컀슀텀 예왞 큎래슀
│   ├── interfaces/       # 타입/읞터페읎슀 정의
│   ├── middlewares/      # 믞듀웚얎 (로귞, 읞슝, 에러 처늬 등)
│   ├── repositories/     # 데읎터 ì ‘ê·Œ 로직 (읞메몚늬 또는 DB)
│   ├── routes/           # 띌우팅 정의
│   ├── services/         # 비슈니슀 로직
│   ├── utils/            # 유틞늬티 핚수
│   ├── app.ts            # Express 앱 쎈Ʞ화
│   └── server.ts         # 서버 싀행 엔튞늬 포읞튞
├── .env                  # 자동 생성된 로컬 환겜 섀정
├── .env.example          # 환겜 변수 예시
├── .gitignore            # 비밀킀·생성 파음 Git 제왞 섀정
├── .project-meta.json    # 선택한 템플늿·도구·팚킀지 ꎀ늬자 정볎
├── nodemon.json           # Nodemon 환겜 변수
├── package.json           # 프로젝튞 의졎성 및 슀크늜튞
└── tsconfig.json          # TypeScript 환겜 변수

컎파음러·테슀튞·Docker 섀정 파음은 선택한 도구에 따띌 추가됩니닀. 환겜별 .env.{NODE_ENV}.local 파음은 선택 사항읎며 자동 생성되지 않습니닀. CLI 업데읎튞는 새로 생성하는 프로젝튞에 적용되며 Ʞ졎 프로젝튞는 별도로 ꎀ늬핎알 합니닀.

🛠 사용 가능한 개발 도구

프로젝튞 섀정 쀑 닀음 칎테고늬에서 선택할 수 있습니닀:

칎테고늬 사용 가능한 도구 섀명
며터 biome, eslint, oxlint 윔드 포맷팅 및 며팅 (Biome은 올읞원)
번듀러 swc, tsup 빠륞 TypeScript 컎파음 및 번듀링
테슀튞 jest, vitest 닚위 및 통합 테슀튞 프레임워크
컚테읎너 docker Dockerfile 및 Docker Compose 구성

나쀑에 추가될 예정 (현재 개발 쀑):

칎테고늬 사용 가능한 도구 섀명
프로섞슀 pm2 프로덕션 프로섞슀 ꎀ늬
CI/CD github GitHub Actions 워크플로우
Git 훅 husky 품질 ꎀ늬륌 위한 Pre-commit 훅
API 묞서 swagger OpenAPI/Swagger 묞서

슀마튞 선택: 추천 프로필은 템플늿별 도구 구성을 사용합니닀. CLI는 핎당 컎파음러·테슀튞 섀정을 복사하고 필수 파음읎 누띜되멎 였류륌 표시합니닀.

🧩 사용 가능한 템플늿

CLI에서 선택할 수 있윌며 npm 팚킀지에 포핚되는 템플늿입니닀:

✅ 사용 가능한 템플늿

템플늿 섀명 저장소
default Express + TypeScript 및 Zod 요청 검슝 읞메몚늬
drizzle-postgresql Drizzle ORM곌 PostgreSQL 연동 PostgreSQL
express-cargo 데윔레읎터 êž°ë°˜ DTO 검슝 및 요청 바읞딩 읞메몚늬

읞메몚늬 템플늿의 사용자 데읎터는 프로섞슀륌 재시작하멎 쎈Ʞ화됩니닀. DTO와 바읞딩 예제는 express-cargo 가읎드륌 찞고하섞요.

🔧 향상된 개발 도구 지원

활성 템플늿은 닀음 도구의 섀정을 제공합니닀:

며터

  • ✅ Biome - 현대적 통합 도구 (며터 + 포맷터)
  • ✅ ESLint + Prettier - 전통적읎고 안정적읞 조합
  • ✅ Oxlint - Rust êž°ë°˜ 고성능 며터

컎파음러

  • ✅ tsup - esbuild êž°ë°˜ 번듀러
  • ✅ SWC - Rust êž°ë°˜ 넀읎티람 성능 컎파음러

테슀튞 러너

  • ✅ Jest - 완전한 E2E 지원을 가진 성숙한 테슀튞 프레임워크
  • ✅ Vitest - 현대적 Vite êž°ë°˜ 테슀튞 러너

🎯 생성 테슀튞는 활성 템플늿·늰터·컎파음러·테슀튞 러너·Docker의 36개 조합을 대상윌로 합니닀. 싀제 싀행 혞환성은 별도의 npm run test:matrix 명령윌로 확읞할 수 있습니닀.

🚧 개발 예정

아래 항목은 CLI에서 선택할 수 없습니닀. Prisma와 Mongoose 구현은 저장소에 있지만 검슝 대Ʞ 상태읎며 npm 팚킀지에서는 제왞됩니닀.

ORM/데읎터베읎슀 연동

템플늿 섀명 우선순위
prisma-postgresql 타입 안전 데읎터베읎슀 큎띌읎얞튞, 자동 타입 생성 🔥 닀음
mongoose-mongodb Node.js용 우아한 MongoDB ODM 🔥 닀음
typeorm 데윔레읎터 êž°ë°˜ Active Record ORM 🚧 예정
sequelize 성숙한 Promise êž°ë°˜ SQL ORM 🚧 예정
mikro-orm TypeScript용 Data Mapper ORM 팹턮 🚧 예정
typegoose TypeScript 친화적 Mongoose 대안 🚧 예정
node-postgres 고성능 PostgreSQL 원시 드띌읎버 🚧 예정
knex 유연한 SQL 쿌늬 빌더 및 마읎귞레읎션 🚧 예정

아킀텍처/컚튞례러 슀타음

템플늿 섀명 우선순위
graphql Apollo Server êž°ë°˜ GraphQL API 슀킀마 🚧 검토 쀑

🀔 읎 CLI륌 사용하는 읎유?

vs. 수동 섀정

잡멎 수동 섀정 TypeScript Express Starter CLI
시간 🔎 수 시간의 구성 작업 ✅ 대화형 섀정 안낎
구성 🔎 수동 의졎성 ꎀ늬 ✅ 자동 핎결, 혾환 버전
몚범 사례 🔎 연구 필요 ✅ 사전 구성된 업계 표쀀
음ꎀ성 🔎 개발자마닀 닀늄 ✅ 표쀀화된 프로젝튞 구조
업데읎튞 🔎 수동 유지볎수 ✅ 새 프로젝튞에 최신 템플늿 적용

vs. 닀륞 생성Ʞ

Ʞ능 TypeScript Express Starter 닀륞 생성Ʞ
데읎터베읎슀 선택 ✅ PostgreSQL 및 추가 연동 계획 제한된 옵션
도구 선택 ✅ 믹슀 ì•€ 맀치 개발 도구 고정된 슀택
TypeScript 우선 ✅ TypeScript륌 위핎 제작 죌로 JS 우선
프로덕션 쀀비 ✅ Docker 구성 선택 가능 Ʞ볞 섀정

⭐ 응원핎죌신 ë¶„ë“€

🍎 찞고하시는 ë¶„ë“€

🀝 도움죌신 ë¶„ë“€

💳 띌읎선슀

MIT


Made with ❀ by AGUMON 🊖

ꎀ렚 프로젝튞 삎펎볎Ʞ