Skip to content

배포 플랫폼 중립 원칙 ​

ProcessCenter는 특정 배포 플랫폼에 종속되지 않는다. 애플리케이션은 API와 SPA를 함께 제공하는 단일 Node 프로세스(node dist/index.js)이며, 호스팅 종류는 운영자가 환경변수로 명시한다. 이 문서는 그 원칙과 2026-09 정리 내역을 기록한다.

1. 원칙 ​

  1. 플랫폼 전용 설정 파일이나 서버리스 진입점을 저장소에 두지 않는다. 컨테이너·VM·관리형 클라우드 모두 pnpm run build + pnpm start로 동일하게 기동한다.
  2. 배포 프로파일 값은 호스팅 이름이 아니라 운영 형태를 나타낸다: CLOUD(기본) / ON_PREM.
  3. 비밀값은 플랫폼 secret store에만 두고, 애플리케이션은 환경변수로만 읽는다.

2. 제거한 플랫폼 종속 요소 ​

구분내용
설정 파일플랫폼 전용 설정 파일 삭제 — 재유입은 server/platformNeutrality.test.ts 가 막는다
서버리스 진입점api/index.ts, api/[...path].ts, api/auth/*, api/trpc/[...path].ts 삭제, tsconfig.json include에서 api/**/* 제거
공용 패키지플랫폼 라벨을 하드코딩한 @hohyun94/ui-center-runtime 배지 사용 중단, 의존성·vendor tarball 제거
문서배포 문서를 중립 절차로 재작성, 아키텍처·발표 자료의 플랫폼 명칭 정리

3. 기존 데이터·환경 호환 ​

  • 미설정 기본값은 CLOUD이며, 이전의 “플랫폼 미감지 시 ON_PREM” 동작은 더 이상 사용하지 않는다.

4. 검증 방법 ​

bash
pnpm check                      # 타입 검사
pnpm exec vitest run server/runtimeSettings.test.ts
pnpm build                      # dist/public + dist/index.js
pnpm start                      # 컨테이너·VM 공통 기동

배포 플랫폼 이름·전용 API·전용 환경변수가 코드·설정에 남아 있지 않은지 확인하려면 가드를 돌린다.

bash
pnpm exec vitest run server/platformNeutrality.test.ts

금지 항목 목록(플랫폼 이름·전용 API·전용 env·전용 설정 파일)은 그 가드가 소유한다 — 금지 이름을 문서에 다시 적지 않는다.

과거 마이그레이션 파일(drizzle/0020_*.sql, drizzle/postgres-migrations/0001_*.sql)의 옛 값은 이력이므로 수정하지 않는다. 새 마이그레이션이 이를 정리한다.