T형 교각 모델링 앱 화면 PRD — 「입력 묶음 확인·확정」 개편 중심
| 버전 |
수정일 |
수정자 |
주요 변경 내용 |
비고 |
| v0.1.00 |
2026-10-15 |
심영표 |
신규 작성 — 기획서 v0.1.00의 기능을 구현하는 화면 13종의 요구사항 |
초안 [미확정]. 코드는 고치지 않음. 결정 대기 항목은 11장 |
| v0.1.01 |
2026-10-15 |
심영표 |
11.1절 D3~D6을 권고안대로 결정 반영 |
사용자 지시 "권고안대로" |
| v0.1.02 |
2026-10-15 |
심영표 |
11.2절 UX1~UX6 결정 반영 |
사용자 지시(UX1 대체, UX2 변경, UX3 내장, UX4 승인, UX5 제외, UX6 제작) |
상태: 초안 [미확정]. 근거는 DOC/01_기획/기획_입력묶음확인확정개편_2026-10-14_v0.1.00.md(이하 기획서)와 현행 앱(Code/교각모델링앱/web/)이다. 화면 디자인 규칙은 같은 폴더의 design.md가 정하고, 그 근거는 RAG/design system_v0.1.1(Prism)이다. [추론]은 확인이 필요한 판단이다.
1. 문서 개요
1.1 목적
기획서가 제안한 네 가지 기능을 사용자가 실제로 쓸 수 있는 화면 단위의 요구사항으로 바꾼다.
| 기획서 기능 |
이 문서의 화면 |
| 「2. 입력 묶음 확인·확정」 개편 (4.1) |
S03, S04, S10 |
| 앱이 수행하는 확인과 근거 제시 (4.3) |
S04, S05, S12 |
| 도면 표 밖 치수 찾기 (4.2) |
S07, S08 |
| 같은 템플릿에서 변수 가능과 불가능 구분 (4.4) |
S02, S06, S13 |
1.2 범위
| 포함 |
제외 |
| 교각 작업 화면의 1~4단계(도면·묶음·게이트·보고서) 중 변경이 필요한 화면 |
게이트 실행·승인의 동작 자체(그대로) |
| 신규 화면 5종(S02, S05, S08, S10, S13)과 S04의 요약 띠 |
새 교각 형식의 생성기·검사기 |
| 화면 공통 어휘(상태·등급·출처)와 문안 |
모바일·태블릿 화면(로컬 데스크톱 전용) |
| 수용 기준과 시험 방법 |
서버·엔진의 내부 구현(필요한 자료 계약만 6장에 기술) |
1.3 사용자와 전제
| 구분 |
내용 |
| 주 사용자 |
담당자(교각 도면을 모델링하는 구조엔지니어). 한 번에 한 사람이 사용한다 |
| 보조 사용자 |
검토자(보고서와 확정 기록을 읽는 사람). 읽기 전용 |
| 환경 |
사용자 PC의 로컬 Flask 앱. 화면 폭 1280px 이상 데스크톱. 인터넷 없이 동작한다 |
| 전제 |
확정과 게이트 승인은 사람의 검토 기록이다. 앱은 어느 화면에서도 대신하지 않는다 |
| 언어 |
화면 문구는 한국어, 코드·API·키 이름은 영어 |
1.4 용어
기획서 1.3절의 용어(묶음·확인·확정·표 밖 치수·앵커)를 그대로 쓴다. 이 문서에서 추가하는 용어는 다음과 같다.
| 용어 |
뜻 |
| 근거 |
앱 확인 한 건이 어떤 두 값을 비교해 어떤 결과가 나왔는지 적은 한 문장과 그 출처 |
| 원본값 |
템플릿 원본 교각에서 복사한 뒤 새 도면 근거 없이 그대로인 값 |
| 변수 등급 |
V1 값 변수 · V2 목록 변수 · V3 생성 변수 · F 고정 (기획서 4.4) |
| 작업대 |
교각 한 개의 작업 화면 전체(S03). 1~4단계를 한곳에서 진행한다 |
2. 제품 원칙
| ID |
원칙 |
화면에 미치는 영향 |
| PP-1 |
앱은 확인하고, 사람은 확정한다. 앱 확인은 확정 기록을 만들지 않는다 |
확정 버튼은 사람의 이름 입력과 클릭으로만 동작한다. 어느 화면에도 자동 확정이 없다 |
| PP-2 |
근거 없음을 숨기지 않는다. 억지 후보를 만들지 않는다 |
'근거 없음'은 일치와 같은 비중으로 표시하고 요약 띠에 개수를 낸다 |
| PP-3 |
원본 값 그대로 확정되는 사고를 막는다. (기획서 P2) |
'원본값' 표시를 묶음 표에 상시 노출하고 일괄 확정에서 제외한다 |
| PP-4 |
색만으로 구분하지 않는다. |
모든 상태는 글자와 형태를 함께 쓴다(Prism BD-1) |
| PP-5 |
판정 위에 근거를 둔다. 결론을 먼저, 경위를 뒤에 |
각 화면의 첫 영역이 결론(요약 띠·판정)이고 근거는 이어서 둔다 |
| PP-6 |
값을 바꾸면 이전 판단이 무효가 된다. (현행 해시 방식 유지) |
앱 확인·사람 확정·게이트 승인 모두 '재확인 필요'를 같은 어휘로 표시한다 |
3. 화면 목록
3.1 화면 지도
3.2 화면 일람
| ID |
화면 |
구분 |
패턴 |
해결하는 문제(기획서) |
단계 |
| S01 |
교각 목록 |
변경 |
W5 |
P6 (템플릿 형식 설명 노출) |
A |
| S02 |
새 교각 적합성 판별 |
신규 |
W3 |
P6 |
A |
| S03 |
교각 작업대 |
변경 |
W1 + W2 |
P1~P3, P8 (진행 요약) |
A·B |
| S04 |
입력 묶음 확인·확정 |
변경(핵심) |
W5 |
P1, P2, P3, P5, P6, P8 |
A·B |
| S05 |
근거 보기 |
신규 |
W5 |
P3, P5, P7 |
B |
| S06 |
값 편집 |
변경 |
W3 |
P6, P7 |
A |
| S07 |
표 후보값·표 밖 치수 |
변경 |
W5 |
P4, P7 |
C |
| S08 |
도면 보기 |
신규 |
모달 |
P3, P4 |
C |
| S09 |
도면 문자 검색·핸들 조회 |
유지(토큰 적용) |
W3 + W5 |
— |
— |
| S10 |
일괄 확정 확인 |
신규 |
모달 |
P1 |
B |
| S11 |
게이트 |
유지 + 소변경 |
W2 |
앱 확인 요약 링크만 추가 |
D |
| S12 |
검토보고서 초안 |
변경 |
W4 |
8장에 앱 확인 요약 |
B·D |
| S13 |
변수 등급 안내 |
신규 |
W4 |
P6 |
A |
단계는 기획서 6장의 A 분류·표시, B 앱 확인 엔진, C 표 밖 치수 탐색, D 통합·문서이다. 화면은 해당 단계가 끝나야 켜진다. 아직 구현되지 않은 단계의 열은 화면에 나타나지 않는다(빈 열을 두지 않는다).
4. 공통 요구사항
4.1 화면 골격
| 항목 |
요구 |
| 헤더 |
서비스명, 화면 ID, 교각 이름, 마지막 저장 시각, 실행 환경(로컬)을 한 줄에 둔다 |
| 좌측 레일 |
1280px 이상에서 교각 안의 단계 내비게이션(1 도면 · 2 입력 묶음 · 3 게이트 · 4 보고서)과 단계별 완료 표시를 둔다 |
| 본문 폭 |
연속 문장은 38em 이내. 표는 가로 스크롤을 허용한다 |
| 언어 |
안내·근거·오류 문장은 규정문체(평서 종결 ~한다)를 쓴다. 버튼 레이블은 동사로 시작하고 8자 이내로 쓴다 |
| 폭 |
1280px에서 표 외 가로 스크롤이 없다 |
4.2 상태 어휘 (전 화면 공통)
모든 상태는 글자 + 형태 + 색을 함께 쓴다. 형태와 색의 대응은 design.md 6장이 정한다.
| 어휘 |
값 |
표시 위치 |
| 앱 확인 |
일치 · 주의 · 불일치 · 근거 없음 · —(해당 없음) · 확인 안 함 |
S03, S04, S05, S10, S12 |
| 사람 확정 |
확정 · 미확정 · 변경됨 |
S03, S04, S05, S10, S12 |
| 변수 등급 |
V1 · V2 · V3 · F |
S04, S05, S06, S13 |
| 값 출처 |
표 · 표 밖 치수 · 판독 스크립트 · 원본값 · 사람 입력 |
S04, S05 |
| 신뢰 등급 |
A · B · C · 없음 |
S07, S08 |
| 게이트 판정 |
PASS · FAIL · 계획 FAIL · 재실행 필요 |
S03, S11, S12 |
규칙은 다음과 같다.
- 상태 글자는 6자 이내다. 설명이 필요하면 상태 옆이 아니라 근거 문장(S05)에 쓴다.
- 값이 바뀌면 앱 확인과 사람 확정이 함께 '변경됨 · 재확인 필요'가 된다. 표시 어휘를 두 개로 나누지 않는다.
- '해당 없음'은 배지가 아니라
—로 쓴다. '확인 안 함'은 배지가 아니라 [확인 실행] 버튼으로 대신한다.
4.3 오류·빈 상태·진행 표시
| 상황 |
요구 |
| 오류 |
무엇이·왜·어떻게 3요소와 기호를 함께 쓴다. 예: "도면 색인이 없다. DWG 변환이 끝나지 않았다. 1단계에서 도면을 다시 올린다" |
| 빈 상태 |
원인 + 다음 행동 한 문장(60자 이내). 예: "올린 도면이 없다. DWG 파일을 올린다" |
| 진행 |
2초를 넘는 작업(앱 확인, 게이트)은 진행 표시를 보이고 aria-live로 낭독한다. 중요 결과를 토스트로만 알리지 않는다 |
| 파괴적 동작 |
삭제·승인 반려·형식 변경 확정은 확인 절차를 거친다 |
4.4 접근성·시험
| 항목 |
기준 |
| 표준 |
WCAG 2.2 AA를 목표로 한다 |
| 키보드 |
전 기능을 키보드만으로 조작한다. 탭 순서가 시각 순서와 같다 |
| 히트 영역 |
44px 이상. 인접 간격 8px 이상 |
| 표 |
caption, th scope, 고정 헤더. 상태 셀은 글자를 포함한다 |
| 색 |
그레이스케일로 인쇄해도 모든 상태를 구분할 수 있다 |
5. 화면별 요구사항
각 화면은 목적 → 진입 → 구성 → 행동 → 상태 → 수용 기준 순서로 쓴다. 문안은 예시이며 최종 문구는 디자인 시안에서 확정한다.
S01 교각 목록 (변경)
| 항목 |
내용 |
| 목적 |
교각을 고르고 새 교각을 만든다. 현행 화면의 기능을 유지한다 |
| 구성 |
① 교각 표(교각·형식·만든 날·템플릿·진행 요약) ② 새 교각 영역 ③ 보호 템플릿 표 |
| 변경 |
교각 표에 진행 요약 열(예: 묶음 27 중 사람 확정 12, 게이트 3/5 승인)을 추가한다. 템플릿 표의 '형식 설명' 열에 변수 등급 보기 링크를 둔다 |
| 행동 |
[새 교각 만들기] → S02, 교각 이름 → S03, 삭제(확인 절차) |
| 수용 기준 |
진행 요약이 실제 confirm.json·게이트 승인 기록과 100% 일치한다 |
S02 새 교각 적합성 판별 (신규)
| 항목 |
내용 |
| 목적 |
새 도면이 선택한 템플릿으로 모델링 가능한 형식인지 교각을 만들기 전에 판별한다 (기획서 4.4 체크리스트 6문항) |
| 진입 |
S01의 [새 교각 만들기] |
| 구성 |
① 도면 올리기 ② 추천 순위(근거 표시, 맞는 것이 없으면 "판단 불가") ③ 이름·템플릿 선택(추천 1위 기본) ④ 6문항(추정 답 미리 채움, 사람이 변경) ⑤ 각도 값 확인(skew·받침 회전·기초 회전) ⑥ 결과 판정 영역 ⑦ [교각 만들기] |
| 6문항 |
기초 형식(말뚝 유무) · 기둥 단면 형식 · 코핑 하면 형상 · 받침 배치 구조 · 철근 형상 종류 · 철근 생성 방식. 평면 사각·직각과 각도는 문항이 아니라 ⑤의 값으로 확인한다 |
| 추천 |
도면 단서로 문항 값을 추정하고 5개 템플릿과 일치 문항 수로 순위를 낸다. 단서와 도면 위치를 근거로 보인다. 추정은 확정이 아니며 사람이 바꾼다. 교각 폴더는 [교각 만들기] 시점에 생성한다 |
추정 범위 [구현 2026-10-15] |
6문항 중 3문항만 추정한다: 기초 형식(도면의 '말뚝' 문자 유무) · 코핑 하면 형상(정면도 R 문자: 10 m 이상 곡선, 1~10 m 나팔형(약함), 없으면 직선 경사, 작은 R은 평면 모서리로 제외) · 받침 개수(ELEVATION TABLE 행 수). 기둥 단면·철근 형상·철근 생성 방식은 도면 문자로 판별할 근거가 없어 '미확인'으로 두고 사람이 답한다. 근거마다 신뢰(보통·약함)를 표시한다. 규칙은 9개 도면 세트로만 확인했다 |
| 행동 |
모든 문항에 답하면 판정이 나온다. 전부 '예'이면 "이 템플릿으로 만들 수 있다". 하나라도 '아니오'이면 "같은 템플릿으로 만들 수 없다. 가장 가까운 템플릿에 생성기·검사기를 추가해야 한다"를 보이고, 문항별로 어떤 부분이 다른지 적는다 |
| 상태 |
미응답 문항은 오류로 표시하고 어느 문항인지 이름으로 알린다 |
| 진행 허용 |
'아니오'가 있어도 [그래도 만들기]로 진행할 수 있다. 이 경우 교각 이름 옆과 S03·S04 상단에 형식 불일치 경고가 상시 표시된다(경고는 닫을 수 없다) |
| 수용 기준 |
6문항의 답이 교각 메타에 저장된다. 경고 교각의 S03·S04에서 경고가 100% 보인다 |
| 구현 현황 |
전부 구현됨(2026-10-15): 추천 순위·근거, 6문항 답과 각도 값 3종(skew·받침 회전·기초 회전)을 pier.json의 fit_answers에 저장, 결과 판정 영역(답을 바꾸면 즉시 갱신, 불일치 시 버튼이 [그래도 만들기]로 바뀜), 불일치 항목을 fit_mismatch에 저장하고 교각의 모든 화면 상단에 닫을 수 없는 경고 표시(S03·S04 포함). 화면 시안: 시안/index.html의 #/new |
S03 교각 작업대 (변경)
| 항목 |
내용 |
| 목적 |
교각 한 개의 진행 상태를 한눈에 보고 다음 단계로 간다 |
| 구성 |
① 결론 띠(다음에 할 일 한 가지) ② 1~4단계 카드 ③ 단계별 상세 진입 |
| 결론 띠 |
현재 상태에서 가장 앞선 미완 단계를 말한다. 예: "필요 묶음 27개 중 앱 확인 일치 19 · 주의 4 · 불일치 1 · 근거 없음 3, 사람 확정 0. 2단계에서 근거를 확인한다" |
| 1 도면 |
DWG 목록(DXF 변환 상태, 해시 앞 16자), 색인 문자 수, 도면 올리기, S09·S07 링크 |
| 2 입력 묶음 |
S04의 요약(4.2절 어휘별 개수)과 [입력 묶음 열기] |
| 3 게이트 |
G1~G5 판정·승인 요약과 [게이트 열기] |
| 4 보고서 |
초안 생성 여부와 [보고서 열기] |
| 행동 |
단계 카드의 주 버튼은 화면에 하나(결론 띠가 가리키는 단계의 버튼)만 강조한다 |
| 상태 |
도면 없음 → 1단계만 활성 안내. 형식 불일치 경고가 있으면 결론 띠 위에 경고 |
| 수용 기준 |
결론 띠의 숫자가 S04 표의 집계와 100% 일치한다. 주 버튼이 화면에 1개다 |
S04 입력 묶음 확인·확정 (변경, 핵심)
기획서 4.1절의 화면이다.
| 항목 |
내용 |
| 목적 |
모든 입력 묶음의 앱 확인 결과와 사람 확정 상태를 보고, 근거를 확인한 뒤 확정한다 |
| 진입 |
S03의 2단계, 레일 |
| 구성 |
① 요약 띠 ② 도구 줄(필터·확인 실행·일괄 확정) ③ 묶음 표 ④ 형식 불일치 경고(해당 시) |
① 요약 띠
- 한 줄: "필요 27개 중 앱 확인 일치 19 · 주의 4 · 불일치 1 · 근거 없음 3 · 사람 확정 0".
- 각 숫자는 필터 버튼이다(누르면 표가 해당 상태만 보인다).
- 마지막 앱 확인 시각과 검사 버전을 함께 보인다. 값이 바뀌어 오래된 결과가 있으면 "재확인 필요 N개"를 별도 표시한다.
③ 묶음 표 (열 정의)
| 열 |
내용 |
비고 |
| 묶음 |
파일·이름. 누르면 S05 |
이름은 영문 키와 한글 설명 병기 |
| 변수 등급 |
V1 · V2 · V3 · F |
S13 링크 |
| 값 출처 |
표 · 표 밖 치수 · 판독 스크립트 · 원본값 · 사람 입력 |
'원본값'은 강조(PP-3) |
| 앱 확인 |
일치 · 주의 · 불일치 · 근거 없음 · — |
누르면 S05의 해당 근거로 |
| 사람 확정 |
확정 · 미확정 · 변경됨, 확정자·시각 |
|
| 확인 |
개별 [확인 실행] |
앱 확인 결과가 오래되었거나 없을 때 |
- 정렬 기본값: 앱 확인이 '불일치 → 근거 없음 → 주의 → 일치' 순, 같은 상태는 파일 순. 사용자가 열 머리를 눌러 바꿀 수 있다.
- '확정 불필요(참고)' 묶음은 표의 맨 끝 구분 영역으로 내리고 기본으로 접는다. 접힌 개수를 표시한다.
- 숫자 열은 우측 정렬이며 등폭 숫자를 쓴다.
② 도구 줄
| 요소 |
동작 |
| 필터 |
앱 확인 상태·사람 확정 상태·변수 등급·출처로 좁힌다. 현재 적용 필터를 글자로 보인다 |
| [전체 확인] |
필요 묶음 전체의 앱 확인 C1~C8을 실행한다. 진행 표시 후 요약 띠를 갱신한다 |
| [일치분 확정] |
앱 확인이 '일치'이고 원본값이 아닌 묶음만 대상으로 S10을 연다 (기획서 D4) |
상태
| 상태 |
동작 |
| 앱 확인 전 |
앱 확인 열이 모두 [확인 실행]. 요약 띠는 "앱 확인 전 — [전체 확인]을 실행한다" |
| 확인 실행 중 |
행마다 진행 표시, 결과가 나오는 대로 갱신. 실행 중에도 표 읽기는 가능 |
| 원본값 묶음 |
앱 확인은 '근거 없음(원본값)'. 일괄 확정 대상에서 제외하고 행에 제외 사유를 쓴다 |
| 형식 불일치 경고 |
표 상단에 닫을 수 없는 경고 띠 |
수용 기준
| # |
기준 |
| 1 |
필수 묶음 100%에 앱 확인 상태(또는 [확인 실행])가 있다 |
| 2 |
'근거 없음'과 '원본값'이 숨겨지지 않는다 |
| 3 |
새로 복사한 교각(템플릿 직후)에서 값이 바뀌지 않은 묶음은 전부 '원본값'이다 |
| 4 |
표와 요약 띠의 개수가 일치한다 |
| 5 |
1280px 폭에서 표 외 가로 스크롤이 없다 |
| 6 |
키보드만으로 필터·행 열기·확인 실행·일괄 확정 진입이 가능하다 |
S05 근거 보기 (신규)
기획서 4.3절의 C1~C8 결과를 사람이 읽는 화면이다.
| 항목 |
내용 |
| 목적 |
한 묶음의 앱 확인 근거를 문장으로 읽고 확정 여부를 판단한다 |
| 진입 |
S04의 묶음 이름 또는 앱 확인 셀 |
| 패턴 |
W5 목록-상세. 좌측에 묶음 이동 목록(상태 포함), 우측에 상세 |
상세 구성
- 결론: 묶음 이름, 변수 등급, 앱 확인 결과 한 줄, 사람 확정 상태.
- 근거 표: C1~C8 각각의
검사 · 결과 · 근거 문장 · 도면 위치. 해당 없는 검사는 —.
- 값 비교: 현재 값과 후보 값 또는 템플릿 원본 값을 나란히 보인다(차이가 있는 항목만).
- 확정 영역: 확정자 이름, 사유(주의·불일치·근거 없음이면 필수), [확정].
근거 문장 규칙 (R1: "일치"를 "도면이 맞다"로 오해하지 않게)
- 모든 근거는 '무엇과 무엇이 같은가'를 쓴다. 예: "기둥 지름 2,200은 도면 단면도(D1, 좌표 …)의 치수 문자 '2.200'과 같다."
- 규칙으로 만든 후보와의 비교임을 밝힌다. 예: "이 결과는 후보를 만든 규칙과 값이 같다는 뜻이다. 도면이 맞다는 판정이 아니다."
- 검사에 쓴 방법의 독립성을 표기한다(예: C8 재생성 일치는 '독립성 낮음').
행동
| 행동 |
조건·동작 |
| [도면 보기] |
근거의 도면 위치마다 S08을 연다 |
| [값 편집] |
S06으로 이동 |
| [확정] |
확정자 이름이 있고, 주의·불일치·근거 없음이면 사유가 있어야 한다. 조건이 모자라면 버튼은 활성인 채 오류 메시지를 보인다 |
| 이전·다음 묶음 |
목록의 순서로 이동. 확정하면 다음 미확정 묶음으로 이동하는 선택지를 준다 |
상태
| 상태 |
동작 |
| 앱 확인 전 |
근거 표 대신 [확인 실행]과 "이 묶음은 아직 확인하지 않았다" |
| 값 변경됨 |
결론에 "값이 바뀌었다. 이전 확인과 확정이 무효가 되었다" 표시, [다시 확인] |
| V3 묶음 |
값 편집 대신 "판독 스크립트로 다시 만든다" 안내와 C8 결과 |
| 원본값 |
값 비교에 "템플릿 원본과 같다. 새 도면 근거가 없다" |
수용 기준
| # |
기준 |
| 1 |
검사 8종 각각의 결과·문장·도면 위치가 보인다 |
| 2 |
'일치' 근거마다 비교한 두 값과 출처가 문장에 있다 |
| 3 |
사유 없는 '주의·불일치·근거 없음' 확정이 불가능하다(오류 메시지 표시) |
| 4 |
확정 기록에는 사람이 입력한 이름만 들어가고, 앱 확인 서버 경로는 확정 기록을 쓰지 않는다 |
S06 값 편집 (변경)
| 항목 |
내용 |
| 목적 |
묶음의 값을 수정하고 저장한다. 현행 section 화면의 기능 유지 |
| 변경 |
① 상단에 변수 등급 안내(이 묶음에서 바꿔도 되는 값과 안 되는 값) ② F 항목 편집 시 경고 ③ V3 묶음은 편집 차단 ④ 저장 뒤 앱 확인 결과가 무효가 됨을 알림 ⑤ [저장된 값으로 확정] 버튼 제거(확정은 S05·S10에서만) |
| F 항목 |
필드 수준 등급이 F이면 편집 영역에 "형식을 정의하는 값이다. 바꾸면 같은 템플릿이 아니다" 경고. 저장하려면 사유를 입력해야 한다(기획서 D3 권고). 저장하면 묶음에 '형식 변경' 표시가 붙고 S03에 새 템플릿 필요 안내가 뜬다 |
| V3 묶음 |
편집창 대신 읽기 전용 요약(개수·크기·해시)과 "판독 스크립트로 다시 만든다" 안내, 스크립트 경로 |
| 입력 보조 |
치수 사슬 입력(22@120=2.640)을 지원하는 필드는 합계 검산 결과를 즉시 보인다 |
| 수용 기준 |
V3 묶음에서 편집 영역이 없다. F 편집은 사유 없이 저장되지 않는다. 저장 직후 S04 상태가 '변경됨'으로 바뀐다 |
S07 표 후보값·표 밖 치수 (변경)
기획서 4.2절의 화면이다. 현행 candidates 화면을 확장한다.
| 항목 |
내용 |
| 목적 |
도면 표와 표 밖 치수에서 찾은 후보를 현재 값과 비교하고, 사람이 골라 반영한다 |
| 구성 |
① 요약 띠(표 후보 N · 표 밖 치수 후보 N(A·B·C 개수) · 다름 N) ② 후보 비교 표 ③ 인식한 표 ④ EL 표기 목록 |
| 후보 비교 표 열 |
반영(선택) · 대상 · 현재 값 · 후보 값 · 구분(표/표 밖 치수) · 상태(같음/다름) · 신뢰 등급 · 도면 위치 · 근거 |
| 표 밖 치수 구역 |
규칙 R1~R6 중 어느 규칙이 찾았는지 '규칙' 열에 쓴다. 신뢰 등급 A·B·C·없음을 병기한다 |
| 행동 |
행 선택 → [선택한 후보값 반영]. 등급 C는 반영 시 사유 필수. 등급 '없음'은 후보 행이 아니라 "근거 없음" 목록에 따로 나열하고 반영 버튼이 없다 |
| params·expected 분리 |
한 후보가 params와 expected 양쪽에 반영될 수 있는 경우, 반영 대상 줄을 둘 중 하나씩 고르게 하고 둘을 함께 고르면 경고한다(기획서 P7) |
| 상태 |
후보 0건 → "후보가 없다. 도면의 틀이 앱의 규칙과 다르면 정상이다. 문자 검색(S09)으로 직접 찾는다" |
| 수용 기준 |
자동 반영이 없다. 모든 반영은 사람이 선택한 행에만 적용된다. 등급 '없음'이 후보로 둔갑하지 않는다 |
S08 도면 보기 (신규)
| 항목 |
내용 |
| 목적 |
근거·후보의 도면 위치를 확대 이미지로 확인한다 (dxftools.render와 같은 이미지) |
| 형태 |
모달. 대상 좌표 주변 확대 이미지에 대상 위치를 표시한다 |
| 구성 |
이미지, 캡션(도면 이름·뷰·좌표·핸들), 확대·축소·이동, 인접 후보로 이동 |
| 행동 |
Esc로 닫는다. 닫으면 호출한 행으로 포커스가 돌아간다 |
| 접근성 |
이미지에 대체 텍스트로 위치·객체 설명을 쓴다. 이동·확대는 버튼과 방향키 둘 다 지원한다 |
| 수용 기준 |
모든 이미지에 캡션이 있다. 모달 안에 모달이 열리지 않는다 |
S09 도면 문자 검색·핸들 조회 (유지)
현행 기능을 유지한다. 디자인 토큰만 새 규칙으로 바꾼다. 검색 결과 행에 [후보로 보내기]는 두지 않는다(자동 반영 금지, PP-1).
S10 일괄 확정 확인 (신규)
기획서 4.1절 D4의 화면이다.
| 항목 |
내용 |
| 목적 |
앱 확인이 '일치'인 묶음을, 근거를 확인한 뒤 한꺼번에 확정한다 |
| 형태 |
모달 |
| 구성 |
① 결론("일치 묶음 19개를 확정한다. 주의·불일치·근거 없음·원본값 8개는 대상이 아니다") ② 근거표(묶음·근거 한 줄·출처) ③ 확정자 이름 ④ [확정] ⑤ [취소] |
| 근거표 열람 조건 |
근거표를 끝까지 보지 않으면 [확정]이 오류를 낸다. 오류는 "근거표를 먼저 확인한다. 일치 묶음의 근거를 읽지 않으면 확정할 수 없다. 근거표를 끝까지 내린다"로 알린다 (비활성화하지 않고 오류 메시지를 낸다) |
| 제외 목록 |
대상에서 빠진 묶음과 사유(주의·불일치·근거 없음·원본값)를 같은 모달에서 보여 준다. 누르면 S05로 이동 |
| 완료 |
확정 기록 개수와 확정자·시각을 결과로 보인다. 토스트만으로 알리지 않고 S04 요약 띠에도 반영한다 |
| 수용 기준 |
원본값·주의·불일치·근거 없음 묶음이 대상에 0건이다. 근거표를 읽지 않은 상태에서는 확정되지 않는다. 확정자 이름이 비어 있으면 확정되지 않는다 |
S11 게이트 (유지 + 소변경)
현행 기능을 유지한다. 변경은 두 가지이다.
- 게이트 실행 조건 문구에 "필요 묶음이 사람 확정됨" 외에 앱 확인 요약 링크(S04)를 추가한다. 앱 확인은 조건이 아니라 판단 자료임을 문구로 밝힌다.
- 판정 표시를 4.2절 게이트 어휘로 통일한다.
S12 검토보고서 초안 (변경)
| 항목 |
내용 |
| 변경 |
보고서 8장(검증 방법)에 앱 확인 결과 요약을 넣는다 |
| 요약 내용 |
묶음별 앱 확인 상태·근거 한 줄·신뢰 등급, 사람 확정자·시각, 확정 시점의 앱 확인 검사 버전, 근거 없음·원본값 목록 |
| 화면 |
생성한 초안을 화면에서 열람하고 MD·PDF를 받는다. 앱 확인 요약이 어느 시점 결과인지 표기한다 |
| 수용 기준 |
보고서의 요약 숫자가 S04 요약 띠와 같다. 값이 바뀐 뒤 만든 초안과 그 이전 초안을 구분한다 |
S13 변수 등급 안내 (신규)
| 항목 |
내용 |
| 목적 |
한 템플릿에서 바꿔도 되는 값과 바꾸면 안 되는 값을 문서처럼 열람한다 (기획서 4.4, 부록 A) |
| 패턴 |
W4 문서. 좌측 목차(묶음), 우측 본문 |
| 구성 |
① 등급 4종 정의 ② 묶음별 등급 표 ③ "바꿔도 되는가" 예시 표 ④ 새 도면 판별 체크리스트 요약(S02 링크) |
| 진입 |
S01 템플릿 표, S02 템플릿 선택, S04·S06의 등급 배지 |
| 수용 기준 |
4개 보호 템플릿 모두에 등급 표가 있다. 등급 배지에서 해당 묶음 위치로 이동한다 |
6. 자료 계약 (화면이 읽고 쓰는 파일)
화면 구현에 필요한 자료만 적는다. 내부 구현은 기획서 4.3~4.4절과 엔진 설계를 따른다.
| 파일 |
위치 |
내용 |
쓰는 주체 |
읽는 화면 |
confirm.json |
교각 폴더 |
사람 확정 기록(확정자·시각·해시) |
사람 조작만 |
S03~S05, S10, S12 |
autocheck.json |
교각 폴더 |
묶음 해시·앱 확인 결과·근거 목록·검사 버전·시각 |
앱 확인 엔진 |
S03~S05, S10, S12 |
variability.json |
템플릿 폴더 |
묶음·필드 경로 → 변수 등급 |
템플릿 담당자 |
S04~S06, S13 |
| 앵커 |
템플릿 폴더 |
값이 도면의 어디서 읽혔는지 기록 |
판독 스크립트 |
S07, S08 |
| 교각 메타 |
교각 폴더 |
적합성 6문항 답, 형식 불일치 여부 |
S02 |
S03, S04 |
autocheck.json의 근거 항목은 다음 필드를 가진다: check(C1~C8), result(match / caution / mismatch / no_basis / n/a), sentence(근거 문장), refs(도면 이름·뷰·좌표·핸들 또는 표 행), confidence(A / B / C / none), independence(high / low).
7. 비기능 요구
| 항목 |
요구 |
| 성능 |
필요 묶음 전체의 앱 확인(C1~C8, 도면 재대조 제외)을 10초 이내에 마친다 [추론]. 도면 재대조(C2)가 포함되면 진행 표시로 대신한다 |
| 신뢰 |
앱 확인 서버 경로는 confirm.json을 쓰지 않는다. 자동화 시험이 이를 확인한다 |
| 보호 |
시험은 실제 교각 데이터가 아닌 시험 폴더에서만 확정 흐름을 실행한다 (OPEN #25 사례) |
| 이력 |
앱 확인 결과는 검사 버전과 시각을 남긴다. 규칙이 바뀌면 이전 결과에 '이전 버전' 표시를 붙인다 |
| 호환 |
기존 confirm.json·params.json·expected.json을 바꾸지 않는다. 새 파일을 추가하는 방식이다 |
| 테마 |
라이트를 기본으로 하고 다크 토큰을 같이 정의한다. 다크 전수 시험은 사용자 요청 시 수행한다 [추론] |
8. 수용 기준 요약 (기획서 6장 승계)
| # |
기준 |
시험 방법 |
| 1 |
모든 필수 묶음에 앱 확인 상태가 있다 |
5개 교각 데이터에서 S04 행 전수 확인 |
| 2 |
'근거 없음'을 숨기지 않는다 |
근거 없음 묶음이 표·요약 띠·S10 제외 목록에 모두 나온다 |
| 3 |
거짓 일치 0, 거짓 불일치 0 |
4개 도면 기준. 값을 일부러 바꾼 음성 시험에서 '불일치'가 나온다 |
| 4 |
앱이 확정 기록을 만들지 않는다 |
앱 확인 실행 전후 confirm.json 해시 불변 |
| 5 |
기존 시험 FAIL 0 |
기존 회귀 시험 일괄 |
| 6 |
화면 접근성 |
모든 상태 셀에 글자 100%, 1280px 가로 스크롤 0, 키보드 전 기능, axe 위반 0 |
| 7 |
디자인 시스템 적합 |
design.md 11장 점검표 전항 |
9. 단계와 화면의 대응
| 단계 |
켜지는 화면·기능 |
선행 |
| A 분류·표시 |
S01 진행 요약, S02, S03 결론 띠(확정 기준), S04의 변수 등급·값 출처·원본값, S06 등급 안내·V3 차단, S13 |
변수 등급 파일 작성 |
| B 앱 확인 엔진 |
S04 앱 확인 열·요약 띠·전체 확인, S05, S10, S12 |
A |
| C 표 밖 치수 탐색 |
S07 표 밖 치수 구역, S08, 앵커 |
B 검증 후 |
| D 통합·문서 |
S11 문구, 사용설명서 개정, 회귀 |
A~C |
10. 리스크
| # |
리스크 |
대응 |
| R1 |
사용자가 '일치'를 '도면이 맞다'로 읽는다 |
S05 근거 문장에 비교 대상을 쓰고 한계 문장을 고정으로 넣는다 |
| R2 |
요약 띠·표 숫자가 서로 어긋난다 |
같은 집계 함수를 쓰고 수용 기준 4로 시험한다 |
| R3 |
일괄 확정이 다시 도장이 된다 |
S10 근거표 열람 조건과 제외 목록, 사유 필수 |
| R4 |
상태 어휘가 늘어나 판독이 어려워진다 |
4.2절에서 어휘를 고정하고 배지는 열마다 4종 이내 |
| R5 |
디자인 시스템에 없는 요소가 필요하다 |
design.md 10장의 공백 목록으로 제안하고 승인 전에는 조합 컴포넌트로 대신한다 |
11. 결정 사항
11.1 기획서에서 승계한 결정 (기획서 7.2절)
| # |
내용 |
상태 |
| D1 |
확정 주체: 앱 확인 + 사람 확정 |
결정 2026-10-14 |
| D2 |
표 밖 치수 탐색: 규칙 + 템플릿 앵커 |
결정 2026-10-14 |
| D3 |
F(고정) 항목 편집 처리 |
결정 2026-10-15 / 심영표: 권고안 — 경고 + 사유 입력, 차단은 생성기 개발자 모드에서만 |
| D4 |
일괄 확정 조건 |
결정 2026-10-15 / 심영표: 권고안 — '일치' 묶음만, 근거표 열람 뒤 확정 |
| D5 |
착수 범위·순서 |
결정 2026-10-15 / 심영표: 권고안 — A → B 먼저, C는 B 검증 뒤 |
| D6 |
앵커 소급 추출 |
결정 2026-10-15 / 심영표: 권고안 — 옥성교·Ramp-A교부터, 나머지는 필요 시. S07·S08에만 영향 |
11.2 화면 설계에서 새로 생긴 결정
| # |
내용 |
상태 |
| UX1 |
디자인 시스템 적용: 기존 R8 기준(맑은 고딕 14px·흰 배경·철근 팔레트 판정색)을 Prism 앱 프로파일(design.md)로 대체한다 |
결정 2026-10-15 / 심영표: 대체. 디자인지침_경로.md 갱신 완료 |
| UX2 |
판정 색: Prism 상태색을 쓴다. 철근 팔레트는 Rhino 모델과 범례에만 둔다 |
결정 2026-10-15 / 심영표: 변경 |
| UX3 |
서체: Pretendard를 앱에 내장한다 |
결정 2026-10-15 / 심영표: 내장. 파일을 web/static/fonts/PretendardVariable.woff2에 배치(OFL). 적용은 A단계 구현 시 |
| UX4 |
상태 마커(●▲■◆◇) 도형 사용 |
결정 2026-10-15 / 심영표: 승인 |
| UX5 |
다크 테마 시험 |
결정 2026-10-15 / 심영표: 제외. 토큰은 정의하되 시험하지 않는다 |
| UX6 |
핵심 화면 HTML 시안 |
결정 2026-10-15 / 심영표: 제작. 시안/index.html (S04·S05·S07·S10 동작 시안) |
부록 A. 핵심 화면 와이어프레임 (정보 구조, 외형 아님)
S04 입력 묶음 확인·확정 (1280px)
S05 근거 보기 (1280px)
S10 일괄 확정 확인 (모달)
S07 표 후보값·표 밖 치수
부록 B. 근거 파일
| 구분 |
경로 |
| 기획서 |
DOC/01_기획/기획_입력묶음확인확정개편_2026-10-14_v0.1.00.md |
| 디자인 시스템 |
RAG/design system_v0.1.1/ (Design.md, design.tokens.json, design.components.md, webapp/module.webapp.md) |
| 현행 화면 |
Code/교각모델링앱/web/templates/ (index, pier, section, candidates, search, gates) |
| 화면 설계 규칙 |
DOC/01_기획/웹앱디자인시안/design.md |
| 디자인 지침 기록 |
context-migration/디자인지침_경로.md (R8) |