진입점 · 인증 → 프로젝트 목록·선택 → 도면·개소·섹션 다운로드·오프라인 캐싱(홈 요약 포함)
- 로그인 폼 — FS 전용 로그인 계약이 DE24-1에 확정돼 있지 않다(IF 갭). Phase 1 공통 인증 IF-CM-AUTH-001 재사용 여부는 미확정이다 (③·⑦)
- 프로젝트 카드 목록 — Project.project_id·Project.name 바인딩. 카드를 탭하면 도면·개소·섹션을 다운로드한 뒤 SCR-FSM-007로 자동 진입한다 (③·⑤)
- 캐시 상태 배지 — Drawing.cache_status. 도면 이미지 캐시 여부를 보여준다 (③)
- 최근 동기화 표시 — Project.last_sync_at (③)
- 로컬 저장 용량 표시 — "로컬 저장된 데이터 크기 표시"(FR-FS-006) 요구는 있으나 구체 필드는 소스에 없어 미확정이다 (③)
1로그인
2프로젝트 선택 — 카드 목록 (Project.name)
4최근 동기화(Project.last_sync_at) 자리
최근 동기화(Project.last_sync_at) 자리
최근 동기화(Project.last_sync_at) 자리
5로컬 저장 용량 표시 자리 (필드 미확정)
프로젝트 다운로드 중
도면 · 개소 · 섹션(기준값 포함) 다운로드 중 — 완료 후 SCR-FSM-007로 자동 진입
프로젝트 선택
프로젝트 선택 (로컬 캐시만 표시)
전역(프로젝트 무관) · 측정기 페어링·배터리·자동재연결 · 모든 화면 상태바의 BLE 칩에서 진입
- 상태바 BLE 칩(현재) — 프로젝트 진입 전후 어디서나 하단(상태바) 칩으로 접근하는 전역 화면이다 (①)
- BLE 스캔 목록 — 신호 강도 30dBm 이상인 근처 측정기만 표시한다 (③, FR-FS-001)
- 연결 상태 카드(device_id) — 연결됨·끊김·약함 표시. 장치 선택 → 자동 페어링, 앱 재시작 시 이전 장치 자동 재연결 (③·⑤)
- 배터리 레벨 — 20% 이하 주황 "배터리 부족", 5% 이하 빨강 "배터리 거의 없음" 경고 (⑤, FR-FS-009)
2BLE 스캔 목록 (신호 30dBm 이상만 표시)
3연결 상태 (device_id)
4배터리 82%
신호 강도 4/5 바
연결 끊김
3회 실패 시 사용자 개입 요청 (FR-FS-009)
프로젝트 하위 · 개소별 업무상태 리스트 — SCR-FSM-007 도면 뷰어의 리스트형 대체 진입(fallback)
- 필터 칩(부호별) — Section.section_code 기준 동(섹션)별 필터, 다중 선택 가능, 기본값 "전체" (③·⑤, FR-FS-003)
- 개소 리스트 행 — Area.label. 행을 탭하면 SCR-FSM-004로 이동한다(SCR-FSM-007 마커 탭과 동일한 목적지) (③·⑤)
- 업무상태 배지 — Area.biz_status. 배색은 SCR-FSM-007이 정리한 잠정안을 재인용한다 — 재측정(빨강)은 근거 문서 어디에도 없는 임시 제안이다 (⑤)
- 정렬 옵션 — 개소명·진행 상태·측정 시간순 정렬을 제공한다 (③, FR-FS-003)
- 진행률 바 자리 — 프로젝트별·동별 진행률(파생 표시) — "진행률 바 표시" 요구만 있고 구체 필드는 소스에 없다 (③, FR-FS-003)
4정렬: 개소명순(자리) · 필터: 업무상태별 · 동(섹션)별
5진행률 바 자리 (동별 파생 표시, FR-FS-003)
네트워크 복구 시 최신 목록으로 갱신
개소 하위 · W·H 기본 + 보조 라벨 자유 추가, 선택→측정→자동입력(BLE) 순차, 수동 입력 상시 병행, ±10% 검증(도면값 있는 항목), 재측정
- 측정 항목 리스트 — W(폭)·H(높이) 기본 상시 + 보조 라벨(사용자 추가). 데이터 바인딩 MEAS_DIM.dim_type을 사용자 정의 라벨로 확장(기존 W/H/대각선 고정 라벨에서 확장 — 구조설계 반영 후속 필요) (③)
- 항목 선택(arming) — 행을 탭하면 그 항목이 "측정 대기"로 하이라이트된다(한 번에 하나만 선택) (③·⑤)
- 측정 버튼 — 선택된(armed) 항목에 대해 BLE 측정을 트리거하고, 수신값(StandardMeasurement{dimType,value_mm,ts})이 그 항목에 자동 입력된다. 다음 항목을 다시 선택→측정→자동입력하는 순차 흐름이다 (⑤, FR-FS-002)
- 수동 입력 필드 — 어느 항목이든 BLE 연결 여부와 무관하게 키보드 또는 음성으로 항상 입력할 수 있다(BLE는 보조 수단) (③·⑤, FR-FS-002)
- + 보조 수치 추가 — 사용자가 라벨을 직접 입력해 행을 늘리거나 삭제한다(예: 대각선·W1·W2·H1·H2). 도면 기준값이 없는 보조 항목은 편차를 표시하지 않는다(도면값을 별도 입력하면 계산 — 확정 필요) (③·⑤)
- 재측정 이력 자리 — 동일 개소 재측정 시 새 측정 세션으로 이력이 누적된다 — 덮어쓰기가 아니다 (③·⑤)
| 1라벨 | 도면값 | 실측값 | 편차 | 입력방식 |
|---|---|---|---|---|
| W(폭) | 1800mm | 1795mm | -0.3% | BLE |
| 2H(높이) | 1500mm | 측정 대기 | (자리) | BLE 수신 대기 |
| 대각선(보조) | 도면값 없음 | 2338mm | — (도면값 없음) | 수동 |
| W1(보조) | 도면값 없음 | 수동입력 자리 | — | 수동 |
6재측정 이력 자리 (개소당 누적, 덮어쓰기 아님)
| 라벨 | 도면값 | 실측값 | 편차 | 입력방식 |
|---|---|---|---|---|
| W(폭) | 1800mm | 수동입력 자리 | (자리) | 수동 |
| H(높이) | 1500mm | 수동입력 자리 | (자리) | 수동 |
| 라벨 | 도면값 | 실측값 | 편차 | 입력방식 |
|---|---|---|---|---|
| W(폭) | 1800mm | 1795mm | -0.3% | BLE |
| H(높이) | 1500mm | 1650mm | +10.5% 초과 | BLE |
측정 하위 · 개소·측정 부속정보
- 사진 썸네일 슬롯 — PHOTO. 최대 5장, 업로드 전 최대 2MB/장으로 자동 압축한다 (③·⑤, FR-FS-010)
- 카메라·갤러리 버튼 — 촬영 또는 갤러리에서 선택한다 (③, FR-FS-010)
- 메모 입력 — MEMO. 최대 500자, 텍스트 또는 음성→텍스트 변환을 지원한다(장갑 착용 대응) (③·⑤, FR-FS-011)
- 태그 선택 — "손상"·"불균형"·"기타" 미리 정의된 태그 — 구체 필드명은 소스에 없어 미확정이다 (③, FR-FS-011)
- 촬영 시간 메타 자리 — 사진 메타정보로 촬영 시간을 자동 기록 — 구체 필드명은 소스에 없어 미확정이다 (③)
1사진 첨부 (최대 5장, PHOTO)
3메모 (MEMO, 최대 500자)
5촬영 시간 메타 자리 (필드 미확정)
네트워크 연결 시 측정 데이터와 함께 자동 동기화 대기열에 등록
프로젝트/전체 · 로컬 저장·배치 push 동작·정책
- 동기화 상태 표시 — MEASUREMENT.sync_status(draft/pending/synced/failed) (③)
- 로컬 저장 건수 표시 자리 — 최소 500건 이상 보관 — 구체 표시 필드는 소스에 없어 미확정이다 (③, FR-FS-004)
- 로컬 저장 항목 리스트 — 전송완료 항목을 보여준다 (③)
- 일괄 전송 버튼(배치 push) — 네트워크 복구 시 백그라운드에서 자동 동기화하며, gzip 압축 배치 최대 500건을 30초 이내 완료 목표로 한다 (⑤, NFR-PF-FS-003)
- 로컬 삭제 옵션 자리 — 동기화 완료 후 로컬 삭제 옵션 — 구체 UI 필드는 소스에 없어 미확정이다 (③)
2로컬 저장 건수 표시 자리 (최소 500건 이상 보관, FR-FS-004)
로컬 저장 항목
5로컬 삭제 옵션 자리 (필드 미확정)
온라인 복구 시 자동 백그라운드 동기화
재시도 정책: 지수 백오프 최대 5회 (자리)
프로젝트 하위, 중심 · 도면 위 개소 마커(업무상태 색)·섹션 필터·핀치줌
- 섹션 필터 바 — Section.section_code. 칩 다중 선택, 기본값 "전체" — 선택한 부호의 개소 마커만 도면 위에 남긴다 (③·⑤)
- 도면 캔버스(배경 이미지) — Drawing.image_path. 서버 사전렌더 이미지를 로컬 캐시해 오프라인에도 조회할 수 있다 (③)
- 개소 마커(오버레이) — Area.marker_x/marker_y·Area.label·Area.biz_status(마커 색). 탭하면 SCR-FSM-004로 이동한다 (③·⑤)
- 핀치줌 제스처 — 두 손가락으로 확대·축소, 더블탭하면 기본 배율로 되돌아간다 (③·⑤)
- 하단 전역 칩(BLE·동기화) — SCR-FSM-002·SCR-FSM-008이 소유한 상태만 노출하고, 탭하면 해당 화면으로 이동한다 (③)
4손가락 두 개로 확대·축소 · 더블탭으로 원래 배율 (핀치줌)
5하단 전역 칩
로컬 캐시로 조회 계속 · 마커 탭·실측 진입은 막지 않음
마커 색(업무상태)과 동기화 상태는 서로 다른 축 — 마커 색은 바뀌지 않음
앱 전체는 세로 고정, 도면 뷰어(007)만 가로 회전 허용(Android sensorLandscape) · 위 세로 007 프레임과 동일 데이터 — 배치만 재구성(캔버스 확대 + 필터·전역 칩 상단 이동)
- 상단 필터·전역 칩 바 — 가로 모드에서는 섹션 필터·전역 칩(BLE·동기화)이 상단/측면으로 재배치된다 (⑤, 2026-07-07 Approach A)
- 도면 캔버스(확대) — 가로 회전 시 도면 캔버스가 넓어진다. 앱 나머지는 세로 고정이고 007만 예외로 가로 회전을 허용한다(Android
sensorLandscape) (⑤) - 개소 마커 — 위 세로 007 프레임과 동일 데이터, 배치만 재구성한 것이다 (③·⑤)
- 복귀 안내 — 세로로 되돌려도 축소된 배치로 계속 동작한다 — 화면 방향 규정은 현재 AN12-1 요구사항·NFR 어디에도 없어 이식성(NFR-PT)·사용성(UX) NFR 후속 반영 후보로만 남긴다 (⑤)
4핀치줌으로 확대·축소(더블탭 리셋) · 세로로 되돌려도 위 007 프레임처럼 도면이 축소된 배치로 계속 동작 (현 AN12-1 요구·NFR 미규정 — 이식성/UX NFR 후속 반영 후보)
전역 · pending/failed 목록·수동 재시도 · 모든 화면 상태바의 동기화 칩에서 진입
- 상태바 동기화 칩(현재) — 모든 화면 상태바의 동기화 칩에서 진입하는 전역 화면이다 (①)
- pending 목록 — MEASUREMENT.sync_status=pending. 서버에 아직 전송되지 않은 대기 중 실측 건을 보여준다 (③)
- failed 목록 + 재시도 버튼 — sync_status=failed(5회 재시도 후 실패). 버튼을 누르면 해당 건을 즉시 재전송한다 (③·⑤, NFR-RL-FS-003)
- 재측정 배지 자리 — Area.biz_status=재측정. 서버 검증 실패·거절(FCM 수신) 시 완료→재측정으로 역행한다 (③·⑤, FR-FS-008)
동기화 현황 — pending · failed 목록
4재측정 배지 자리 (Area.biz_status=재측정, FCM 수신 시)
전송 대기 12건
전송 실패 2건 (5회 재시도 후)