# 코드보다 환경 경계가 먼저다

> prod 분리, role account, pooled/direct URL과 connection budget

- Canonical: https://learning.reopt.ai/courses/prisma-production/lessons/pp-m1-concept
- Language: ko-KR
- HTML: https://learning.reopt.ai/courses/prisma-production/lessons/pp-m1-concept

---

[Prisma 프로덕션 가드레일](/courses/prisma-production) 1. 환경·권한·연결 토폴로지 1 / 9

# 코드보다 환경 경계가 먼저다

prod 분리, role account, pooled/direct URL과 connection budget
개념 학습 45 XP 9분

운영 사고는 코드 버그보다 staging과 prod 공유, 슈퍼유저 재사용, 앱 트래픽과 DDL 연결 혼합에서 자주 시작됩니다. prod는 단독 인스턴스, 계정은 app(DML)·migrate(DDL)·readonly(SELECT), 연결은 pooled와 direct로 분리합니다.
총 연결 수를 예산으로 관리 API 인스턴스×pool 상한 + worker + 운영 도구를 합산해 DB 최대 연결의 70~80% 안에 둡니다. serverless는 pooling을 사용하고 장시간 transaction을 함수 밖으로 분리합니다.

| 경로 | 권한·연결 | 금지 |
| App traffic | app_prod·pooled URL | DDL·슈퍼유저 |
| Migration | migrate_prod·direct URL·시간 제한 | 상시 credential |
| Read operation | readonly_prod·replica | write·민감 raw export |
| Local/Preview | 격리 DB·synthetic data | prod URL·prod PII |

- 1 환경 분리 prod·staging·preview의 DB·credential·데이터 정책을 나눕니다.

- 2 Role account app·migration·readonly의 최소 권한과 TTL을 정합니다.

- 3 연결 경로 pooled·direct·replica 용도를 분리합니다.

- 4 Budget 검증 최대 인스턴스와 worker 기준 connection headroom을 계산합니다.

실무에 남길 기준

- DATABASE_URL과 DIRECT_DATABASE_URL은 운영 책임이 다르다
- prod 접속은 로컬이 아니라 승인된 CI/CD·Bastion 경로로 제한한다
- PrismaClient 수명과 connection budget을 runtime별로 설계한다

이해했어요 · 계속

---

에이전트용 사이트 안내: https://learning.reopt.ai/llms.txt · 사이트맵: https://learning.reopt.ai/sitemap.xml · 문의: https://learning.reopt.ai/contact
