"완성된 스키마와 RPC, 그 사이를 잇는 조립만 남아 있었다"
이전 작업들에서 Input, Output, Business Rule, Exception, System, Data 관련 RPC는 이미 완성되어 있었습니다. 그런데 이 RPC들을 실제로 호출하는 Server Action도, 이를 사용자에게 보여주는 UI도 전혀 없었습니다. 스키마와 RPC라는 부품은 다 만들어져 있었지만, 그걸 조립할 부분이 통째로 비어 있는 상태였습니다.
먼저 백엔드 단계로 4개 RPC를 순차적으로 오케스트레이션하는 Action을 신규로 구현했습니다. businessRoleId는 이미 다른 Action이 저장하고 있는 필드라, 여기서 중복으로 저장하는 경로가 생기지 않도록 의도적으로 제외했습니다. 여기에 더해, 이전 작업에서 명시적으로 제외됐던 Reference 목록 조회 Action도 이번에 함께 추가했습니다.
이어서 UI 단계로, 읽기 전용 Action과 Step Detail Panel 컴포넌트를 새로 만들었습니다. STEP Node를 선택했을 때만 노출되도록 했고, 기존 그래프 리듀서와는 완전히 분리된 독립적인 상태와 전용 저장 버튼을 뒀습니다. 명세에는 Approval Required라는 필드가 있었지만, 실제 데이터 모델에는 없는 필드임을 확인해 명세와 의도적으로 다르게 제외했습니다. Pain Point와 Comment는 각각 아직 착수되지 않은 다른 Epic 소관이라 placeholder로 남겨뒀습니다.
293개 테스트가 통과하는 것까지 확인했습니다. 그래프 저장과 Step 세부사항 저장을 하나로 합치지 않고 분리한 결정이, 서로 다른 테이블과 RPC 계약을 다루는 이 상황에 더 맞는 접근이었다고 판단했습니다.
그래프 저장과 Step 세부사항 저장을 하나의 저장 흐름으로 합치지 않고 명시적으로 분리했습니다. 서로 다른 테이블, 서로 다른 RPC 계약이라, 기존 리듀서를 확장하는 대신 독립된 상태와 별도 저장 버튼을 두는 게 더 안전하다고 판단했습니다. "문서 명세에 있어도 실제 데이터 모델에 없으면 만들지 않는다"는 원칙에 따라 Approval Required 필드를 제외한 것도 이번 작업의 핵심 결정이었습니다.
관련 프로젝트
프로젝트 개요 비즈니스 프로세스 트랜스포메이션(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 스키마 구현 완료