"검증은 완성됐는데, 그걸 통과할 방법이 없었던 반쪽짜리 기능"
Conditional Gateway 관련 검증 로직은 이미 예전 작업에서 구현되어 있었습니다. 그런데 Visual Canvas를 살펴보니, Conditional Gateway에서 나가는 Edge에 조건 Label을 입력할 UI 자체가 없었습니다. 즉 Label이 필수라는 검증은 이미 작동하고 있는데, 사용자가 그 검증을 통과할 방법이 애초에 없는 반쪽짜리 기능이었습니다.
문제를 정확히 좁히기 위해, 검증 로직과 UI 로직을 구분해서 봤습니다. 새로운 검증을 추가할 필요는 없었고, 딱 하나 빠진 조각인 입력 UI만 채우면 되는 상황이었습니다. 리듀서에 conditionLabel만 갱신하는 UPDATE_EDGE 액션을 추가하고, Visual Canvas에서 Edge를 선택했을 때 그 Edge의 출발점(source)이 Conditional Gateway인 경우에만 Label 입력 필드가 나타나도록 구현했습니다. STEP이나 PARALLEL, MERGE에서 나가는 Edge는 Label 개념 자체가 없으므로 노출하지 않았습니다.
리뷰 과정에서 한 가지 해프닝도 있었습니다. diff를 붙여넣는 과정에서 문자 하나가 잘린 것처럼 보여 재확인을 요청했는데, 실제 코드는 문제없다는 걸 확인했습니다.
이렇게 Conditional Gateway 분기가 실제로 완성돼 저장이 가능해졌고, 277개 테스트가 통과했습니다. 검증 로직이 완성돼 있다고 해서 기능이 완성된 게 아니라는 걸, 이 사례로 다시 확인했습니다.
검증 로직과 UI 로직을 분리해서 "이미 있는 것"과 "실제로 없는 것"을 먼저 구분한 게 핵심이었습니다. 새로운 검증을 만들지 않고, 정확히 빠져 있던 한 조각인 입력 UI만 채우는 방식을 택했습니다. Parallel/Merge의 최소 분기 수 위반은 이전 작업에서 만든 공용 에러 영역이 이미 처리하고 있어서, 별도 UI를 새로 만들 필요가 없다는 것도 이 과정에서 확인했습니다.
관련 프로젝트
프로젝트 개요 비즈니스 프로세스 트랜스포메이션(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 스키마 구현 완료