Constitution (프로젝트 헌법)
프로젝트의 핵심 원칙을 정의하는 Constitution 작성 가이드입니다.
Constitution이란?
Constitution은 프로젝트의 핵심 원칙, 기술 결정, 금지 사항을 정의한 문서입니다. 모든 스펙과 구현은 Constitution을 따라야 합니다.
구조
markdown
# [프로젝트명] Constitution
## 메타데이터
- **버전**: 1.0.0
- **최종 수정**: 2025-12-24
## 핵심 원칙 (Core Principles)
프로젝트의 근본적인 가치와 방향
## 기술 원칙 (Technical Principles)
기술적 결정과 표준
## 금지 사항 (Forbidden)
절대 하면 안 되는 것들섹션별 작성
핵심 원칙
프로젝트의 근본적인 가치:
markdown
## 핵심 원칙
1. **사용자 우선**: 사용자 경험이 모든 결정의 기준이다
2. **데이터 보호**: 사용자 데이터의 안전이 최우선이다
3. **단순함**: 복잡한 것보다 단순한 것이 낫다
4. **투명성**: 시스템의 동작은 예측 가능해야 한다기술 원칙
기술적 결정과 표준:
markdown
## 기술 원칙
### 언어 및 프레임워크
- TypeScript 엄격 모드 사용
- React 18+ 사용
- Node.js 20+ 지원
### 코드 스타일
- ESLint + Prettier 적용
- 모든 함수에 타입 정의 필수
- 주석은 "왜"를 설명
### 테스트
- 테스트 커버리지 80% 이상 유지
- E2E 테스트는 핵심 흐름만금지 사항
절대 하면 안 되는 것들:
markdown
## 금지 사항
### 코드
- ❌ any 타입 사용
- ❌ console.log 프로덕션 코드
- ❌ 하드코딩된 시크릿
### 의존성
- ❌ moment.js (대안: date-fns)
- ❌ jQuery
- ❌ 무분별한 외부 라이브러리 추가
### 보안
- ❌ 평문 비밀번호 저장
- ❌ SQL 직접 조합
- ❌ 사용자 입력 무검증버전 관리
Constitution 변경 시:
- 버전 번호 증가
- 변경 이력 기록
- 기존 스펙 호환성 검토
markdown
## 변경 이력
| 버전 | 날짜 | 변경 내용 |
|------|------|----------|
| 1.0.0 | 2025-12-24 | 초기 버전 |
| 1.1.0 | 2025-12-25 | 테스트 커버리지 기준 추가 |스펙에서 참조
스펙 메타데이터에 Constitution 버전 포함:
yaml
---
id: user-auth
constitution_version: 1.0.0
---검증
bash
sdd validate- constitution_version 불일치 시 경고
- 금지 사항 위반 시 에러