본문으로 건너뛰기

환경 변수

이 문서로 해결할 질문

  • @mealio/shared CLI(마이그레이션·시드)에 필요한 env는 무엇인가요?
  • producer·consumer 런타임 env와 어떻게 맞춰야 하나요?
  • shared 패키지가 정의하는 관측성 env 검증 규칙은 어디서 쓰이나요?

개요

@mealio/shared는 독립 실행 앱이 아니며, Prisma·Mongoose CLI가 DB에 접속할 때 env를 읽습니다.

cp server/shared/.env.example server/shared/.env.local

APP_ENV는 루트 package.jsondb:* 스크립트에서 런타임 주입합니다. Prisma·Mongoose CLI는 server/shared/.env.local(local) 또는 .env.{APP_ENV}.local + .env.local fallback 순으로 env를 로드합니다.

런타임 DB 연결은 producer·consumer 각자의 .env.local에 동일한 URL을 설정합니다.

변수

POSTGRESQL_URL

항목내용
설명PostgreSQL 연결 URL (Prisma 마이그레이션·시드)
예시 (호스트)postgresql://devuser:devpassword@localhost:5432/devdb
사용처server/shared/.../schema.prisma, server/shared/.../seed.ts, PrismaModule(producer·consumer 런타임)
패턴인프라 env POSTGRES_*와 자격 증명 일치

MONGODB_URL

항목내용
설명MongoDB 연결 URL (Mongoose 시드)
예시 (호스트)mongodb://devuser:devpassword@localhost:27017/devdb?authSource=admin
사용처server/shared/.../seed.ts, MongooseSchemasModule(producer·consumer 런타임)
패턴인프라 env MONGO_*와 자격 증명 일치

KAFKA_BROKERS / KAFKA_CLIENT_ID

항목내용
설명Kafka 브로커 목록·클라이언트 ID (토픽 생성 CLI)
예시 (호스트)localhost:9092, mealio-kafka-admin
사용처server/shared/src/kafka/create-topics.ts
패턴인프라 env KAFKA_EXTERNAL_HOST·KAFKA_EXTERNAL_PORT와 일치. EC2 호스트 배포 시 published 포트(예: localhost:9092) 사용

KAFKA_TOPIC_PARTITIONS, KAFKA_TOPIC_REPLICATION_FACTOR는 선택 값입니다.

사용 명령

pnpm run db:prisma:generate
pnpm run db:prisma:migrate:dev
pnpm run db:prisma:seed # POSTGRESQL_URL
pnpm run db:mongoose:seed # MONGODB_URL
pnpm run db:mongoose:sync-indexes # MONGODB_URL — 스키마 인덱스 동기화
pnpm run db:kafka:create-topics # KAFKA_BROKERS — Kafka 토픽 생성

관측성 (런타임 — producer·consumer env)

shared 패키지가 정의하는 관측 env 검증 규칙은 producer·consumer .env.local에서 사용됩니다.

변수producerconsumer
METRICS_ENABLED✓ (METRICS_PORT 필수)✓ (METRICS_PORT 필수)
SLOW_QUERY_THRESHOLD_MS✓ (METRICS_ENABLED=true 시 필수)✓ (METRICS_ENABLED=true 시 필수)
PUSHGATEWAY_URL✓ (optional, CLI batch push)
SENTRY_ENABLED
SENTRY_DSN_PRODUCER
SENTRY_DSN_CONSUMER

상세 내용은 producer 환경 변수 · consumer 환경 변수 · Observability 문서를 참고하세요.

관련 문서