ReadMates의 주요 기술 의사결정을 기록한다. 새 결정을 내릴 때는 template.md를 복사해 다음 번호로 추가하고, 이 인덱스를 갱신한다.
- 한 ADR = 한 결정. 여러 결정을 묶는 ADR은 만들지 않는다. 인덱스가 ADR 그룹화 역할을 한다.
- Superseded never deleted. 결정이 뒤집히면 새 ADR을 만들고 기존 ADR의 상태를
Superseded by ADR-NNNN으로 갱신한다. 본문은 수정하지 않는다(당시 맥락 보존). - 사실만 기록. 미정 의견, 토론 중 사항, 향후 가설은 들어가지 않는다. 그건
docs/superpowers/specs/,docs/superpowers/plans/의 영역이다. - 코드 인용은
path:line. 인용한 라인은 작성 시점의 commit에서 검증되어야 한다. 심볼 이름을 함께 적어 라인 drift 후에도 의미 추적이 가능하게 한다. - Public-repo safety. 실제 secret, OCI OCID, 실명 회원 정보, 내부 호스트는 ADR에 적지 않는다.
.gitleaks.toml이 통과해야 한다. 예시 URL은https://api.example.com같은 placeholder를 사용한다.
| # | 제목 | 상태 | 결정일 | 영향 영역 |
|---|---|---|---|---|
| 0001 | Cloudflare Pages Functions BFF 채택 | Accepted | 2026-04-21 | front, security |
| 0002 | Server clean architecture + ArchUnit 강제 | Accepted | 2026-04-22 | server |
| 0003 | Frontend route-first architecture | Accepted | 2026-04-23 | front |
| 0004 | Transactional outbox + Kafka relay (notification) | Accepted | 2026-04-29 | server, infra |
| 0005 | BFF shared secret + multi-secret rotation | Accepted | 2026-05-09 | front, server, security |
| 0006 | 서버 측 hashed session cookie (raw token 미저장) | Accepted | 2026-04-21 | server, security |
| 0007 | MySQL 8 + Flyway (Liquibase/Prisma migrate 기각) | Accepted | 2026-04-19 | server, data |
| 0008 | Multi-club domain — host header + slug 우선순위 | Accepted | 2026-04-30 | server, front |
| 0009 | Frontend-backend contract test (Zod schema) | Accepted | 2026-05-06 | front, server |
| 0010 | 공개 저장소 안전 자동화 (gitleaks + custom scanner) | Accepted | 2026-04-22 | ops, security |
| 0013 | BFF host 헤더 정책 — slug 명시 누락 vs host fallback 분기 | Accepted | 2026-05-11 | server, security |
| 0014 | BFF secret rotation lifecycle — 4단계 절차 + preflight 진단 엔드포인트 | Accepted | 2026-05-12 | front, security |
| 0015 | Notification Outbox dedupeKey 정책 | Accepted | 2026-05-12 | server |
| 0016 | Deploy ledger NDJSON 스키마 | Accepted | 2026-05-12 | ops |
| 0072 | 피드백 문서 템플릿 v2 — 모임 단위 섹션과 회차 누적 흐름 선택 섹션 | Accepted | 2026-09-25 | server, front |
- Accepted — 현재 코드/운영의 기준.
- Proposed — 작성 중. 코드 반영 전.
- Superseded by ADR-NNNN — 새 결정으로 대체. 본문은 보존.
- Deprecated — 더 이상 사용하지 않음. 후속 ADR 없음 (단순 폐기).
아래는 별도 ADR로 분리를 검토 중인 후보다. 번호는 작성할 때 다음 빈 번호로 정한다(0011, 0012는 비어 있다).
- jOOQ write adapter migration (현재
JdbcTemplate직접 사용 → 빌드 타임 타입 안전) - Redis 정식 도입 (현재 optional 보조 계층 → 세션 캐시 필수 계층)
- OCI Compute 선택 근거 (Cloud Run 대비)
- Worker process 분리 운영 (web replica + notification worker)