"막을 수 있는 걸 일부러 안 막았다는 걸 증명하는, 보통과는 반대 방향의 검증"
process_edges 테이블을 설계하는데, 중복 Edge 금지나 Self Loop 금지 같은 검증 규칙이 이미 백로그상 별도 작업으로 분리되어 있었습니다. 스키마를 만드는 김에 이런 제약도 미리 걸어두고 싶은 유혹이 있었지만, 그렇게 하지 않기로 했습니다.
의도적으로 UNIQUE나 CHECK 제약을 전혀 넣지 않았고, 오히려 "중복 Edge와 Self Loop가 실제로 성공한다"는 걸 증명하는 테스트를 요구했습니다. 보통의 테스트와는 반대 방향, 즉 막지 않았다는 걸 증명하는 테스트였습니다. 이렇게 해야 이후 검증 작업의 스코프가 이번 작업과 섞이지 않는다고 판단했습니다.
Sign-off까지는 정상적으로 진행됐는데, 그 이후 커밋 안내를 빠뜨린 채 바로 다음 작업으로 넘어가는 실수가 있었습니다. 마이그레이션, 타입 파일, 통합 테스트 파일 3개가 미커밋 상태로 방치된 것을 뒤늦게 발견했습니다. 다행히 미커밋 파일이 남아있던 걸 확인해 순서를 바로잡아 커밋할 수 있었습니다.
DB에는 이미 정상 순서로 적용되어 있어 기능적인 문제는 없었지만, git 커밋 순서와 작업 번호 순서가 역전되는 결과는 그대로 남았습니다. 설계 판단은 의도적이고 근거가 있었지만, 그와 별개로 절차상의 실수가 있었다는 걸 숨기지 않고 기록해두었습니다.
"한 번에 하나의 작업"과 "미래 작업의 스코프를 선점하지 않는다"는 원칙에 따라, 지금 당장 막을 수 있는 것도 의도적으로 막지 않았습니다. 이후 검증 로직이 실제 필요 시점에 맞춰 설계되도록 하기 위한 판단이었습니다. 반면 커밋 누락은 원칙의 문제가 아니라 진행 과정에서의 실수였고, 뒤늦게라도 발견해 바로잡는 게 우선이었습니다.
관련 프로젝트
프로젝트 개요 비즈니스 프로세스 트랜스포메이션(BPR)을 지원하는 한국어 기반 웹 애플리케이션. 컨설팅 프로젝트의 AS-IS 프로세스 분석부터 TO-BE 설계, Blueprint 승인까지의 전체 워크플로우를 디지털화하는 플랫폼으로, EPIC 단위로 구조화된 백로그를 기반으로 개발 중. 역할 및 워크플로우 PM / Architect / Reviewer 역할 수행 Codex(구현 담당)에게 Task 단위 구현 프롬프트 설계 Codex 구현 결과를 git log, git grep, git status로 직접 검증 후 승인 승인 전에는 Codex가 commit하지 않는 엄격한 게이팅 프로세스 운영 한 번에 하나의 Backlog Task만 진행, Task 완료 전 다음 Task 착수 금지 기술적 의사결정 및 성과 워크스페이스/프로젝트 접근 권한을 DB 레벨(복합 FK, SECURITY DEFINER 트리거)과 애플리케이션 레벨(Server Action 권한 검증)의 이중 방어 구조로 설계 Hard Delete 미구현 원칙 하에 배열 필드 전체교체(replace)를 단일 트랜잭션 RPC로 처리하는 패턴 확립 및 재사용 AS-IS 프로세스 그래프의 순환 참조 탐지에 Tarjan SCC 알고리즘 적용, 차단 오류(Error)와 경고(Warning)를 분리한 이중 Validator 아키텍처 설계 도메인 규칙 위반을 커스텀 Postgres 에러 코드 체계(SIA0104)로 문서화하여 거버넌스 문서와 코드베이스 간 정합성 유지 AI 생성 데이터와 사람이 검증한 데이터를 구분하는 generatedbyai / verified 메타데이터 패턴을 여러 도메인 테이블에 일관되게 적용 진행 상태 ✅ EPIC-01 (인증 / 워크스페이스 / 프로젝트 접근) ✅ EPIC-02 (조직 / 산업 / 프로젝트) 🚧 EPIC-03 (AS-IS 프로세스 그래프) — 그래프 검증, Input/Output 스키마, Business Rule 스키마 구현 완료