"테이블 필드는 완전하게, 책임 경계는 절대 섞지 않는다"
로그인 기능까지는 만들어져 있었지만, "회사(Workspace)"라는 개념 자체가 DB 어디에도 없었습니다. 회원가입 없이 운영하겠다는 정책은 문서상으로만 존재했고, 이를 실제로 뒷받침하는 장치는 하나도 없는 상태였습니다.
작업을 시작하려는데 범위 자체가 애매했습니다. Backlog 순서상으로는 다른 Task가 workspaces 테이블을 만들도록 되어 있는데, 이번 Task의 요구사항인 "초기 Workspace 1개 Seed"는 테이블이 이미 존재한다는 걸 전제로 하고 있었습니다. 그래서 두 가지 안(테이블부터 만들지, 정책만 정리할지)으로 나눠 검토했고, 데이터 모델 문서에 필드가 이미 완전히 정의돼 있다는 근거로 테이블을 먼저 만드는 쪽을 선택했습니다.
다만 여기서 욕심을 내지 않기로 했습니다. workspace_members 테이블이나 RLS Policy는 다른 Task의 소관이라, 이번에는 workspaces 테이블과 Seed 스크립트, 공개 가입 차단까지만 범위로 한정했습니다. 리뷰 단계에서 slug UNIQUE 제약 누락, updated_at 자동 갱신 트리거 누락, RLS 비활성 상태 3가지를 추가로 발견해 반영했습니다.
최종적으로 workspaces 테이블 생성, idempotent seed, 공개 가입 차단, RLS fail-closed 전환까지 확인한 뒤 커밋했습니다. 다만 이 시점에서 확인한 건 마이그레이션 파일과 설정값 수준이고, 실제 화면에서 회원가입 시도가 차단되는지까지는 이 작업 단위에서 직접 클릭 테스트를 하지는 않았습니다. 완전한 스키마를 한 번에 만드는 것과, 테이블 간 책임 경계를 지키는 것은 별개 문제라는 걸 다시 확인한 작업이었습니다.
범위를 두 안(A: 테이블 먼저 생성 / B: 정책만 정리)으로 나눠 검토한 뒤, 데이터 모델 문서에 필드가 이미 완전히 정의돼 있다는 근거로 A안을 선택했습니다. 다만 workspace_members(다른 Task 소관)와 RLS Policy(또 다른 Task 소관)까지 함께 만들면 Task 간 경계가 무너진다고 판단해, 테이블 뼈대만 만드는 절충안을 택했습니다. "한 번에 하나의 Task"라는 원칙을 지키는 게, 당장 편한 것보다 나중 리뷰 부담을 줄인다고 봤습니다.
관련 프로젝트
프로젝트 개요 비즈니스 프로세스 트랜스포메이션(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 스키마 구현 완료