Skip to content

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 변경 시:

  1. 버전 번호 증가
  2. 변경 이력 기록
  3. 기존 스펙 호환성 검토
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 불일치 시 경고
  • 금지 사항 위반 시 에러

MIT License