"AI가 만든 placeholder는 실제 값처럼 보여도 실제가 아니다"
workspaces 테이블과 profiles 테이블은 이미 있었지만, 누가 어느 회사에 속하는지를 잇는 연결 테이블이 없었습니다. 테스트용 관리자 계정이 실제로 존재했음에도, 어느 Workspace에도 속하지 않은 상태였습니다.
workspace_members 테이블과 역할 enum을 설계하고, Bootstrap 관리자 계정을 초기 Workspace에 자동 연결하는 Seed 확장 방식을 택했습니다. 그런데 1차 구현 결과를 확인하는 과정에서, 이메일 값이 실제로는 존재하지 않는 bootstrap-admin@example.com이라는 placeholder로 하드코딩되어 있는 걸 발견했습니다.
이걸 그대로 승인했다면 겉으로는 완료된 것처럼 보이지만, 실제로는 재현 불가능한 seed가 만들어졌을 것입니다. 실제 값으로 교체를 요구했고, 이와 별개로 slug 값이 두 SQL 블록에 중복 하드코딩된 문제도 함께 발견해 하나의 CTE 상수로 통일하도록 정리했습니다.
수정 반영을 확인한 뒤 커밋했습니다. 이번 작업에서 확인한 건, AI가 만들어낸 값이 형식적으로 그럴듯해 보여도 실제 존재하는 값인지는 사람이 직접 대조해야 한다는 점입니다. placeholder 하나가 전체 seed의 재현성을 무너뜨릴 수 있다는 걸 다시 확인한 케이스였습니다.
AI가 생성한 placeholder 값을 실제 값 확인 없이 그대로 승인하면 "재현 불가능한 seed"가 만들어질 위험이 있다고 판단해 이 부분을 우선 차단했습니다. slug 중복 하드코딩도 나중에 값 하나만 바꾸고 다른 하나를 잊는 실수로 이어질 수 있어, 유지보수성 차원에서 하나의 상수로 통일하도록 요구했습니다.
관련 프로젝트
프로젝트 개요 비즈니스 프로세스 트랜스포메이션(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 스키마 구현 완료