A02 · 화면설계도 · OnBridge

2단 풀다운 내비게이션 화면설계도

상단바(브랜드·계정)와 메뉴바(풀다운) 두 단으로 나눈 내비게이션 구조와, A02 페이지 계획의 화면 8종을 실제로 동작하는 목업으로 옮긴 설계도입니다. 메뉴를 눌러 화면을 전환해 볼 수 있고, 오른쪽 주석판에 해당 화면의 명세가 따라옵니다.

문서 A02-화면설계도.html 버전 0.1 초안 작성 2026-09-01 선행 A02 페이지 계획 상태 스택 미정 — 구조 확정용
01

동작하는 화면설계도

메뉴바의 각 항목에 마우스를 올리거나 클릭하면 풀다운이 열립니다. 하위 항목을 고르면 아래 뷰포트가 해당 화면으로 바뀌고, 상단바의 경로 표시와 좌측 트리도 함께 따라갑니다.

OnBridge /items/

대시보드

이번 주
전체 Item128지난주 대비 +6
이번 주 신규14▲ 27%
처리 대기73건 3일 경과
내 담당23마감 임박 2
최근 항목전체 보기 →
배터리 셀 입고 검사대기09-01
30KW 인버터 설계 검토활성08-31
현장 설치 일정 조율활성08-30
부품 단가 재협의보류08-28
내 최근 활동

Item #4821 상태를 대기로 변경

Item #4818 등록

사용자 kmlee 역할 변경

로그인

Items

Items

총 128건
상태: 전체 담당자: 전체 기간: 최근 30일
이름상태담당자 수정일
배터리 셀 입고 검사대기이현우09-01
30KW 인버터 설계 검토활성김민서08-31
현장 설치 일정 조율활성박지훈08-30
부품 단가 재협의보류이현우08-28
1KW 신규 개발 착수활성정수아08-27
2건 선택됨 12313 20 / 쪽
Items배터리 셀 입고 검사

배터리 셀 입고 검사

대기
개요변경 이력첨부 2
코드
ITM-4821
담당자
이현우
상태
대기
분류
입고 검사
기한
2026-09-05
설명
30KW 모듈용 셀 300개 입고분에 대한 외관·용량 검사. 불량 3% 초과 시 반품 처리.
메타
ID8f3c1a4e-…-2b91
생성자김민서
생성일2026-08-27 14:02 (KST)
수정일3시간 전
Items새 Item

새 Item

배터리 셀 입고 검사
ITM-4821
이미 사용 중인 코드입니다. 다른 값을 입력해 주세요.
선택하세요
이현우
비워 두면 등록한 사람이 담당자가 됩니다.
YYYY-MM-DD
내용을 입력하세요
폼 규칙
  • 등록과 수정은 같은 컴포넌트를 쓴다. 초기값과 제출 대상만 다르다.
  • 검증은 필드 이탈 시 1차, 제출 시 2차. 서버 오류는 해당 필드 아래에 붙인다.
  • 저장 중에는 버튼을 잠그고 라벨을 "저장 중…"으로 바꾼다. 중복 제출 차단.
  • 변경 후 저장하지 않고 이탈하면 확인을 띄운다.
  • 취소는 목록이 아니라 직전 페이지로 돌아간다.
관리사용자

사용자 관리

12명
역할: 전체 상태: 전체
이메일이름역할상태마지막 로그인
ihuh@onbridge.kr이현우admin활성3시간 전
kmlee@onbridge.kr김민서manager활성어제
jhpark@onbridge.kr박지훈member활성08-29
sajung@onbridge.kr정수아member초대중
old@onbridge.kr한지원viewer비활성05-14
1
관리시스템 설정

시스템 설정

일반
OnBridge
20
Asia/Seoul (KST, +0900)
90일
기간이 지난 항목은 야간 작업으로 영구 삭제됩니다.
보안
5회 / 15분
A02 미결 P-5 — 확정 전 잠정값
12시간
10자
설정내 프로필

내 프로필

이현우
ihuh@onbridge.kr
이메일을 바꾸려면 비밀번호를 다시 입력해야 합니다.
Asia/Seoul
한국어
계정
역할admin
가입일2026-03-14
활성 세션3개 (Chrome, iPhone, …)
설정비밀번호 변경

비밀번호 변경

••••••••
10자 이상
영문·숫자·기호 중 2종 이상 조합
다시 입력

변경에 성공하면 지금 이 세션을 제외한 모든 세션이 만료됩니다. 다른 기기에서는 다시 로그인해야 합니다.

활동 로그

활동 로그

읽기 전용
사용자: 전체 액션: 전체 기간: 최근 7일
시각사용자액션대상IP
09-01 10:22:41이현우updateItem ITM-4821 상태 → 대기10.0.4.12
09-01 09:41:08이현우createItem ITM-482110.0.4.12
08-31 17:55:20김민서role사용자 kmlee → manager10.0.4.31
08-31 09:02:11login_failihuh@onbridge.kr (3회 연속)203.0.113.9
08-30 18:12:03박지훈deleteItem ITM-4790 (소프트 삭제)10.0.4.55
12
OnBridge
관리자 로그인
name@onbridge.kr
••••••••
로그인 유지
가입 링크 없음 — 사용자는 관리자가 /users/new에서 초대합니다.
설계 참고목록 화면의 상태

목록 화면의 상태 5종

목록은 정상 화면 하나가 아니라 다섯 개의 화면입니다. 특히 "데이터 없음"과 "검색 결과 없음"은 다른 화면입니다 — 전자는 등록을 유도하고, 후자는 필터 초기화를 유도합니다.

S1로딩

스피너 대신 스켈레톤 행. 표의 최종 형태를 미리 보여 레이아웃 점프를 막는다.

S2정상

이름상태
셀 입고 검사대기
인버터 검토활성

기본 정렬은 수정일 내림차순. 정렬·필터·쪽 번호는 전부 URL 쿼리에.

S3검색 결과 없음

🔍

조건에 맞는 항목이 없습니다

데이터는 있는데 조건이 좁은 경우. 나가는 길(초기화)을 반드시 준다.

S4데이터 없음

📄

아직 등록된 Item이 없습니다

첫 사용자가 보는 화면. 검색창과 필터를 감추고 등록 버튼 하나만 남긴다.

S5오류

⚠️

목록을 불러오지 못했습니다

기술 용어를 노출하지 않는다. 사용자가 할 수 있는 행동(다시 시도)을 준다.

02

메뉴 구조

상단바는 사람(누구로 로그인했고 어떻게 나가는가)을, 메뉴바는 (무엇을 하러 왔는가)을 담당합니다. 두 축을 섞지 않는 것이 이 구조의 핵심입니다.

메뉴하위 항목라우트권한비고
🏠 홈대시보드/user로그인 직후 도착지
로그인 화면/login비인증설계도에서만 노출. 실제 메뉴에는 없음
📋 업무Item 목록/itemsitem:read도메인 화면의 원형
Item 상세/items/:iditem:read메뉴가 아니라 목록에서 진입
Item 등록·수정/items/newitem:write등록·수정 같은 컴포넌트
활동 로그/auditaudit:readmanager 이상
🛡️ 관리사용자 관리/usersuser:manageadmin이 아니면 메뉴 자체를 숨김
시스템 설정/settings/systemsystem:manage
🙋 내 설정내 프로필/settings/profileuser상단바 계정 메뉴와 동일 목적지
비밀번호 변경/settings/passworduser성공 시 타 세션 만료
❓ 도움말사용 안내/help전체미구현 — P2
03

풀다운 동작 규칙

풀다운은 보기보다 잘못 만들기 쉽습니다. 아래 여섯 가지는 구현 시 반드시 지켜야 하는 항목입니다.

M1호버로 열되, 클릭으로 고정

포인터 장치에서는 hover로 열어 탐색을 빠르게 하고, 클릭하면 열린 상태로 고정합니다. 터치 장치에서는 첫 탭이 열기, 두 번째 탭이 이동입니다.

열려 있는 동안 다른 메뉴로 마우스를 옮기면 그 메뉴가 바로 열립니다 — 매번 다시 클릭하게 만들지 않습니다.

M2닫히는 길을 세 개 준다

바깥 클릭 · Esc · 포인터 이탈. 셋 중 하나만 빠져도 메뉴가 화면에 눌어붙습니다.

포인터 이탈에는 약 150ms 지연을 둡니다. 메뉴 버튼과 목록 사이의 1px 틈에서 즉시 닫히면 조작이 불가능해집니다.

M3권한 없는 메뉴는 숨긴다

비활성(회색 처리)이 아니라 제거합니다. 있는데 못 누르는 메뉴는 "왜 안 되냐"는 문의를 만듭니다.

단, 이는 편의일 뿐 보안 장치가 아닙니다. 권한은 서버에서 강제하고, 직접 URL 접근은 /403으로 보냅니다.

M4키보드로 전부 조작된다

Tab으로 메뉴 이동, Enter/Space로 열기, ↑↓로 항목 이동, Esc로 닫고 버튼에 포커스 복귀.

aria-haspopup·aria-expanded를 실제 상태와 동기화합니다.

M5현재 위치를 세 곳에서 알린다

메뉴 항목의 앰버 점, 상단바의 경로 표시, 본문의 브레드크럼. 셋이 항상 같은 것을 가리켜야 합니다.

좌측 트리의 활성 항목도 함께 갱신됩니다.

M6깊이는 2단에서 멈춘다

메뉴 → 하위 항목. 3단 중첩 풀다운은 만들지 않습니다. 더 깊은 구조가 필요하면 좌측 트리로 내립니다.

한 풀다운의 항목은 7개 이하로 유지하고, 넘으면 구분선과 소제목으로 묶습니다.

04

역할별 화면 접근

메뉴 노출과 서버 권한이 같은 표를 근거로 삼습니다. 화면이 늘어날 때 이 표에 행을 먼저 추가하세요.

화면권한 코드adminmanagermemberviewer
대시보드user
Item 목록 · 상세item:read
Item 등록item:write
Item 수정item:write본인만
Item 삭제item:delete
활동 로그audit:read
사용자 관리user:manage
시스템 설정system:manage
내 프로필 · 비밀번호user

R1스스로를 잠글 수 없다

자기 자신의 역할은 낮출 수 없고, 마지막 admin은 비활성화할 수 없습니다. 서버에서 막고, UI에서는 해당 항목을 비활성 처리한 뒤 이유를 말풍선으로 설명합니다.

R2삭제는 되돌릴 수 있다

물리 삭제 대신 deleted_at 소프트 삭제가 기본입니다. 보관 기간(기본 90일)이 지나면 야간 작업으로 정리합니다.

파괴적 확인 모달은 이름을 직접 입력해야 확정됩니다.

05

미결 사항

이 설계도를 확정하려면 아래가 먼저 정해져야 합니다.

P-1

Item의 실제 도메인

설계도 전체에서 Item은 자리표시자입니다. 도메인이 정해지면 라우트·화면명·권한 코드 세 곳을 일괄 치환합니다. (A01 O-1과 연동)

P-2

대시보드 지표 4종

현재 카드는 자리만 잡은 상태입니다. 실제로 매일 봐야 하는 숫자가 무엇인지 정해야 합니다.

P-3

첨부파일 필요 여부

상세 화면에 "첨부" 탭을 잠정 배치했습니다. 필요하다면 저장소·용량 제한·바이러스 검사 설계가 추가됩니다.

P-4

다국어 지원 여부

현재는 한국어 단일 가정입니다. 다국어가 필요하면 메뉴 라벨 길이가 2배까지 늘어날 수 있어 메뉴바 레이아웃을 다시 봐야 합니다.

P-5

로그인 실패 잠금 임계값

시스템 설정 화면에 5회/15분을 잠정 표기했습니다. 확정 후 A05 데이터 모델에 반영합니다.

P-6

메뉴바 색상 확정

현재는 청사진 팔레트(심해 네이비 + 청사진 블루 + 앰버)입니다. 참고하신 AI Gate의 보라·마젠타 계열을 그대로 쓸지 결정이 필요합니다.