HBHR100_시트 워크스페이스 (공통 Shell)
⚠ 8월 UX 재편 대규모 반영 — 전면 재작성 별도 예정
(Hereby) HR 급여 관리 > 시트 워크스페이스 (공통 Shell)
| 프로토타입 | TBU |
| Status | review |
| Owner | 카나 (PM) |
개요
월 단위 스프레드시트 워크스페이스의 **공통 레이아웃(Shell)**을 정의한다. 글로벌 헤더 · 워크스페이스 헤더(월 네비게이션 · 이번 달 · 이전 월 가져오기 · 단축키 · 폴더 관리 · 새 시트 만들기) · 좌측 사이드바 · 시트 헤더 · 스프레드시트 툴바 · 서식 도구 모음 · 데이터 그리드 · 하단 합계행이 모든 시트 유형에 공통으로 얹힌다. 진입 시 인증 검사를 수행하며, 미인증 시 /hr-system/signin으로 리다이렉트한다. 시트는 「설정 중 → 사용 중 → 작업 완료」의 수명주기를 가지며, 각 단계에 따라 상태 배지(시트 헤더 h3 위치)·구조 편집 잠금·반영/직원 추가 노출이 달라진다. 본 문서는 Shell 골격과 진입 동선을 정의하고, 각 구역 상세는 하위 문서에 위임한다.
문서 히스토리
| 날짜 | 작성자 | 팀 | 변경 내용 |
|---|---|---|---|
| 2026-07-06 | 카나 | PM | 최초 작성 |
| 2026-07-10 | 카나 | PM | 라이브 기능 검토 반영 |
| 2026-07-13 | 카나 | PM | 버튼 행동 명세 보강 |
| 2026-07-21 | 카나 | PM | GC700 깊이 재작성 |
| 2026-07-21 | 카나 | PM | 가독성 패스 + 액션 표기 (GUIDE §7·§8) |
| 2026-07-21 | 카나 | PM | 셀 스타일 확정판 적용 (콸 승인) |
| 2026-07-24 | 카나 | PM | 코드 변경 반영(7635459) |
| 2026-07-28 | 카나 | PM | 코드 변경 반영(aed8800) |
| 2026-07-29 | 카나 | PM | 역방향 동기화 — 개발팀 직접 수정 반영(3637e20, 백틱 이스케이프) |
| 2026-08-11 | 카나 | PM | 시트 수명주기·수식 범위 바·조건부 서식·IFERROR·드로어 재편 반영(#528·#533·#540 머지) |
| 2026-08-12 | 카나 | PM | 수식 순환 방지·채우기 핸들 통일 반영(471f3db·8d38bed) |
| 2026-08-13 | 카나 | PM | 불리언 리터럴·표시 형식, 엑셀식 =/<> 연산자 반영(90bc68f·b862772) |
| 2026-08-17 | 카나 | PM | 라이브 실사 검증 반영(dev v0.1.0+) |
| 2026-08-21 | 카나 | PM | columnLayout 중복 컬럼 키 서버 검증 반영(91782a7) — 조용한 헤더 붕괴 재발 방지 |
Data I/O
Server → Client
| 변수 | DB 엔티티.컬럼 | 값 없을 때 | 비고 |
|---|---|---|---|
| $ | 조회 월 (YYYY-MM) | 당월 기본 | 상단 Month·Year 스피너와 연동 |
| $ | PayrollSheet.folder (추정) | "(미분류)" fallback | 좌측 폴더 트리 ([[HBHR108_폴더·휴지통 사이드바]] 참조) |
| $ | PayrollSheet[] (추정) | Empty 상태 (70-E) | 폴더별 카운트 표시 |
| $ | PayrollRecord[] (추정) | 빈 그리드 | "293/293건" 형태 카운트 |
| $ | PayrollSheet.updatedAt (추정) | hide | 헤더 "· 4시간 전" 형태 |
Client → Server
| 액션 | 전달 값 | tRPC / SDK | 권한 토큰 |
|---|---|---|---|
| 인증 세션 검증 | — | sdk.auth.session() (추정) | HR_ADMIN / SUPER_ADMIN |
| 기간 변경(시트 리스트 재로드) | period | sdk.payrollSheet.list() (추정) | payroll:read (추정) |
| 시트 검색 | query (사번/성명/사유/항목) | 클라이언트 필터 (추정) | — |
| 새 시트 생성 | name, folder, isPublic, template | sdk.payrollSheet.create() (추정) | payroll:write (추정) |
| 셀 편집 | rowId, columnId, value | sdk.payrollSheet.updateCell() (추정) | payroll:write (추정) |
| 폴더 관리 모달 열기 | — | 클라이언트 (추정) | payroll:write (추정) |
| 시트 작업 완료 토글 | sheetId, isLocked | sdk.payrollSheet.toggleComplete() (추정) | payroll:write (추정) |
| 시트 설정 완료(수명주기 확정) | sheetId | sdk.sheetView.finishSetup() (추정) | canManageSetup (추정) |
| 시트 재설정 | sheetId | sdk.sheetView.reopenSetup() (추정) | canManageSetup (추정) |
화면 플로우
공통 Shell 사양표
| 번호 | 항목/기능명 | 타입 | 사양 및 기능 설명 | 연관/영향 범위 | 비고 |
|---|---|---|---|---|---|
| 00 | 화면 진입 조건 | - | • 조건1 [HR_ADMIN] / 조건2 [SUPER_ADMIN] 인증 시에만 워크스페이스를 노출하는 인증 게이트 • 진입 시: 인증 세션 확인 - CASE01 [미인증]: /hr-system/signin 리다이렉트 - CASE02 [인증 세션]: 워크스페이스 진입 허용 | 인증 세션 | 인증 게이트 |
| 01 | 초기 상태 | - | • 진입 직후 최근 작업 시트로 자동 이동시키는 기능 • 진입 시: /hr-system/sheets/{sheetId}로 자동 리다이렉트 - CASE01 [최근 시트 없음]: 동선 미확정 | 기간 네비게이터(20) | TBU: 최근 시트 없을 때 진입 동선 |
| 02 | 다이얼로그 (DS 교체) | - | • 워크스페이스의 네이티브 alert/confirm/prompt를 전부 DS 다이얼로그로 교체. confirm→askConfirm(Promise<boolean>), alert→showAlert, 오류는 showError(제목 "오류" + danger 톤)로 감싸고, 컴포넌트 밖 모듈은 dialog-bridge로 같은 모달에 닿는다. 단순 안내·검증 메시지(셀/행 선택 요청, 시간 형식 오류 등)는 모달 대신 토스트로 내려 흐름을 끊지 않는다- CASE01 [원본 기록 변경 확인]: 배치 전체가 in-flight Promise를 공유해 한 번만 물음 | 워크스페이스 전역 다이얼로그 | 신규 (코드 반영: be83131) · 네이티브 팝업 폐지 |
| 10 | 글로벌 헤더 | - | • 좌측 로고 "hereby HR 급여 관리", 우측 계정 / 알림 / 로그아웃을 담는 전 화면 고정 헤더 | — | 전 화면 고정 |
| ㄴ11 | 계정 | Button | • 로그인 계정을 표시하는 헤더 버튼 • 클릭 → TBU | — | TBU: 표시 값·클릭 동작 |
| ㄴ12 | 알림 | Button | • "알림"을 표시하는 헤더 버튼 • 클릭 → TBU | — | TBU: 상세 동작·에러 처리 |
| ㄴ13 | 로그아웃 | Button | • 현재 세션을 종료하는 헤더 버튼 • 클릭 시: 세션 종료 후 /hr-system/signin (추정) | 00 진입 조건 | |
| 20 | 워크스페이스 헤더 | - | • 월 네비게이션 + "이번 달" + "이전 월 가져오기" + "단축키" + "폴더 관리"(7/21 신규) + "새 시트 만들기" 액션을 담는 상단 헤더 바 | period 변경 시 시트 리스트 재로드 | 월 단위 |
| ㄴ21 | 월 네비게이션 | - | • "이전 달" / "2026년 7월"(현재 월 표기) / "다음 달" 이동 + "이번 달" 빠른 이동으로 조회 월을 바꾸는 기능 • 이동 시: period 변경 → 시트 리스트 재로드 - CASE01 [period 없음]: 당월 기본 | period 변경 시 시트 리스트 재로드 | |
| ㄴ22 | 이전 월 가져오기 | Button | • 이전 월의 공유 시트를 현재 월로 복제하는 "이전 월에서 가져오기" 모달을 여는 기능 • 클릭 시: 모달 오픈 → 이전 월의 현재 월에 없는 공유 시트 복제(기본 시트는 자동 생성으로 제외) - 모달 원문: "이전 월의 공유 시트 중 현재 월에 없는 시트를 복제합니다. 기본 시트는 자동으로 생성되므로 제외됩니다." | [[HBHR108_폴더·휴지통 사이드바]] 이전 월에서 가져오기 모달 | 신규 · TBU: 에러·실패 동작 |
| ㄴ23 | 단축키 | Button | • 4카테고리(탐색/선택/편집/메뉴·찾기) 단축키 도움말 모달을 여는 기능. 우측 유틸 ? 토글과 동일 모달, 과거 보기 메뉴의 "단축키"가 헤더 버튼으로 이동 • 클릭 시: 단축키 도움말 모달 노출. 전체 카탈로그는 [[HBHR103_편집 메뉴·단축키]] 소유 — 아래 [단축키 카탈로그 포인터] 참조 | [[HBHR103_편집 메뉴·단축키]] 참조 | 보기 메뉴에서 이동 |
| ㄴ24 | 폴더 관리 | Button | • 각 폴더를 "{n}개 시트"로 나열하고 하단 "+ 새 폴더"를 제공하는 "폴더 관리" 모달을 여는 기능. 상세 사양은 [[HBHR108_폴더·휴지통 사이드바]]에 위임 • 클릭 시: 폴더 관리 모달 오픈 - 모달 원문 폴더 목록: "eCount 연동 2개 시트" / "급여대장 3개 시트" / "문서·서명 1개 시트" / "병동 6개 시트" / "시트 에러 발생 케이스 1개 시트" / "연장근무 1개 시트" / "인센티브 2개 시트" / "출퇴근 3개 시트" / "치료실 인센티브 1개 시트" / "휴직·퇴사 2개 시트" + "+ 새 폴더" | [[HBHR108_폴더·휴지통 사이드바]] 폴더 관리 모달 | 7/21 신규 · "그룹"→"폴더" 용어 확정 · TBU: 에러·실패 동작 |
| ㄴ25 | 새 시트 만들기 | Button | • 새 시트 생성 모달을 여는 기능. 새 시트 기본 생성 = 1000행 × 26열(A~Z, col_1~col_26) • 클릭 시: "새 시트 만들기" 모달 오픈 | [[HBHR101_새 시트 만들기 모달]] 참조 | 기본 1000행×26열 |
| 40 | 좌측 사이드바 | - | • "폴더" / "휴지통(🗑)" 탭, "▸▾" 접기, 폴더별 시트 그룹 + 건수를 담는 사이드바. 폴더 10종은 아래 [폴더 트리] 참조 - Empty: [[HBHR108_폴더·휴지통 사이드바]] 참조 | [[HBHR108_폴더·휴지통 사이드바]] 참조 | 상세 위임 |
| ㄴ41 | 폴더 트리 | List | • 폴더 10종((미분류) / eCount 연동 / 급여대장 / 문서·서명 / 병동 / 시트 에러 발생 케이스 / 연장근무 / 인센티브 / 출퇴근 / 치료실 인센티브 / 휴직·퇴사)을 나열하는 트리. 각 시트 항목 = "{이름} '26.7" + 건수 • 클릭 시: 해당 시트 로드 - CASE01 [폴더 없음]: "(미분류)" fallback | [[HBHR108_폴더·휴지통 사이드바]] 참조 | "그룹"→"폴더" 용어 확정 (7/21) |
| 50 | 시트 헤더 | - | • 시트명·기간 + 건수 "293/293건" + 수정시각 "· 4시간 전" + 검색 + 뷰 토글(전치/행렬) + 메모 이력 + 셀 상세 패널 표시 + 시트 닫기 + 실행취소/재실행 상시 버튼을 담는 시트 헤더 | [[HBHR109_행 정보 패널·검색]] 참조 (검색 상세) | |
| ㄴ51 | 시트명·기간 인라인 편집 | - | • 시트명·기간을 인라인으로 수정하는 기능 • 더블클릭 시: 인라인 편집 진입(시트명 이름 변경 / 기간 "'26.7" 기간 변경) | [[HBHR102_파일 메뉴]] 이름 바꾸기와 관계 TBU | 더블클릭 인라인 |
| ㄴ52 | 시트 검색 | Search | • 사번/성명/사유/항목으로 행을 거르는 검색. placeholder "사번 / 성명 / 사유 / 항목 검색 ( / )", "/" 단축키로 포커스 • 입력 시: 일치 행 필터 - Empty: 검색 결과 없음 상태 | [[HBHR109_행 정보 패널·검색]] 참조 | TBU: 검색 결과 없음 문구 |
| ㄴ53 | 전치 뷰 토글 | Button | • 행/열을 바꾼 전치 레이아웃으로 전환하는 토글(hover 시 노출). title 원문 "전치 보기 — 행과 열이 바뀐 레이아웃" • 클릭 시: 전치 레이아웃으로 전환 | 그리드 렌더(표시 전용) | hover 노출 · 신규 |
| ㄴ54 | 행렬 뷰 토글 | Button | • 다차원 피벗 행렬 레이아웃으로 전환하는 토글(hover 시 노출). title 원문 "행렬 보기 — 다차원 피벗 레이아웃" • 클릭 시: 행렬 레이아웃으로 전환 | 그리드 렌더(표시 전용) | hover 노출 · 신규 |
| ㄴ55 | 메모 이력 | Button | • 셀 메모 이력을 조회하는 "메모 이력" 버튼. 셀 메모는 모달에서 우측 상세 레일의 "메모" 탭으로 이동(아래 56 참조) • 클릭 → TBU | sheet_cells 메모 · 56 셀 상세 레일 | 신규 · TBU: 세부 동작·Empty·에러 동작 |
| ㄴ56 | 셀 상세 패널 표시 | Button | • 선택 셀/행의 우측 상세 레일 노출을 토글하는 "셀 상세 패널 표시" 버튼. 레일은 "셀 상세" / "메모" 2탭으로 구성되며, 같은 앵커 셀을 설명하는 두 화면을 토글로 나눠 쓴다. 레일은 그리드를 덮는 오버레이로 열려 가운데 영역 폭을 가져가지 않는다 • 클릭 시: 상세 레일 노출 토글 - CASE01 ["메모" 탭]: 앵커 셀의 메모 스레드 전체 표시(작성·수정·답글·해결·삭제 인라인 처리), 상단 "시트 전체 메모 보기" 진입. 메모 탭에서만 레일 폭 384px로 확대 - CASE02 [셀 이동]: 입력 중이면 핀으로 고정(내용 유지), 잃을 입력 없으면 선택 셀을 따라감 | [[HBHR109_행 정보 패널·검색]] 셀 상세 패널 · sheet_cells 메모 | "메모" 탭 신규 (코드 반영: d91858b) · 모달 → 레일 탭 이동 |
| ㄴ57 | 시트 닫기 | Button | • 현재 시트를 닫고 시작 화면으로 이동하는 "시트 닫기 — 시작 화면으로 돌아갑니다" 버튼 • 클릭 시: 현재 시트 닫고 시작 화면으로 이동 | 워크스페이스 시작 화면 | |
| ㄴ58 | 실행취소/재실행 | Button | • 편집 스택을 실행취소(⌘Z) / 재실행(⌘⇧Z)하는 상시 버튼(편집 메뉴에서 이동) • 클릭 시: 편집 스택 실행취소 / 재실행 - CASE01 [히스토리 없음]: disabled | [[HBHR103_편집 메뉴·단축키]] 편집 스택 | 편집 메뉴에서 이동 |
| ㄴ59 | 댓글 | Button | • "💬" 댓글 버튼 • 클릭 → TBU | — | TBU: 상세 동작 |
| ㄴ5A | 시트 작업 완료 토글 | Button | • 시트 단위로 "작업 완료" 상태를 토글해 시트를 편집 가능/view-only(잠금)로 전환하는 기능. 파일 메뉴 항목 원문 = "'{시트명}' 작업 완료로 변경"(사용 중 → 작업 완료 전환). 되돌리기 경로는 "파일 → 사용 중으로 변경"(작업 완료 시트 되돌리기 툴팁 문구). 작업 완료(workDoneAt)와 시트 보호(lockedAt/시트 및 범위 보호)는 분리된 별개 상태로, 완료 = workDoneAt + lockedAt(완료는 잠금 포함), 보호 = lockedAt만이다. 보호를 해제하면 완료 표시도 함께 풀린다(응답 workDoneCleared로 안내) • 클릭 시: 시트 작업 완료 토글. title 원문 "완료하면 시트가 잠겨 수정과 반영이 막힙니다." / (완료 상태에서) "사용 중으로 바꾸면 잠금이 풀려 수정할 수 있어요." - CASE01 [작업 완료로 전환]: 파일 메뉴 "'{시트명}' 작업 완료로 변경" → 시트 view-only(잠금) 전환, 이후 셀 편집 차단 - CASE02 [다시 토글]: "파일 → 사용 중으로 변경" → 편집 가능 상태로 복귀 | sdk.sheetView.setWorkDone() · 파일 메뉴([[HBHR102_파일 메뉴]]) · 41 폴더 트리(상태 배지) · 64 수명주기 배지 | 신규 (코드 반영: 7635459) · 완료/보호 분리(dbca988) · 배경: 7/21 베스트 요구(시트 작성중/완료 상태 표시) · 8/17 라이브 실사: 파일 메뉴 "작업 완료로 변경"·되돌리기 "사용 중으로 변경" 확정("작업 중" 잔존 표기 제거) |
| ㄴ5B | 시트 상태 표시 (완료·보호·편집 중) | Badge | • 시트 상태를 사이드바 배지 3종으로 구분 표시하는 기능. 완료 = green 점("완료로 잠김"), 보호만 걸린 시트 = 자물쇠 아이콘("보호 중"), 값이 바뀌었으나 아직 급여에 반영되지 않은 시트 = primary 점("편집 중"). 비공개는 눈 아이콘(ic-eye-off)으로 별도 표시 • 표시 전용. "편집 중" 판정은 목록 엔드포인트가 기간 단위로 집계 - CASE01 [급여대장]: 자기 열이 아니라 반영을 기다리는 소스 시트가 남아 있을 때 "편집 중" 점 표시 | sheet_views.workDoneAt/lockedAt · 41 폴더 트리 | 신규 (코드 반영: 8fbb4c2) · 상태 3종 구분 |
| ㄴ5C | 시트 편집 가드 (진입 시점) | - | • 잠긴/보호/작업 완료 시트의 편집을 저장 시점이 아니라 편집 진입 시점에 차단하는 가드. 더블클릭·Enter·바로 타이핑 등 모든 진입로가 단일 관문(_beginEdit)에서 막히며, Delete 값 지우기·헤더 색·열 메뉴 편집 계열도 같은 가드를 탄다. 원인(행 보호 / 작업 완료 / 시트 보호)에 따라 푸는 방법을 구분해 안내 - CASE01 [시트 보호]: "보호 중인 시트입니다.\n수정을 하려면 데이터 > 시트 및 범위 보호에서 보호를 해제해 주세요." - CASE02 [행 보호]: "보호 중인 행 입니다.\n수정을 하려면 데이터 > 시트 및 범위 보호에서 보호를 해제해 주세요." | sheet-guard.ts · 5A 작업 완료 · [[HBHR106_데이터 메뉴]] 시트 및 범위 보호 | 신규 (코드 반영: 8fbb4c2) · 편집 진입 시점 가드 |
| 60 | 스프레드시트 툴바 | - | • "파일 ▾" / "편집 ▾" / "보기 ▾" / "삽입 ▾" / "데이터 ▾" 메뉴(좌) + "반영" CTA / "설정 완료" CTA(우)를 담는 툴바. 레이아웃은 좌(메뉴)/우(CTA) 50:50 두 덩어리로 분할되어 넘칠 때 각 영역 내에서만 줄바꿈되고, 한쪽이 두 줄이 돼도 반대쪽은 제자리를 유지한다. (시트 수명주기 상태 배지(64)는 툴바가 아니라 시트 헤더(50) h3에 렌더된다 — 8/17 라이브 실사.) 각 메뉴 상세는 개별 문서에 위임 • 각 메뉴 클릭 시: 해당 드롭다운 오픈 → [[HBHR102_파일 메뉴]] / [[HBHR103_편집 메뉴·단축키]] / [[HBHR104_보기 메뉴]] / [[HBHR105_삽입 메뉴]] / [[HBHR106_데이터 메뉴]] | [[HBHR102_파일 메뉴]] / [[HBHR103_편집 메뉴·단축키]] / [[HBHR104_보기 메뉴]] / [[HBHR105_삽입 메뉴]] / [[HBHR106_데이터 메뉴]] 참조 · 수명주기 배지 64~64F · 50 시트 헤더 | 좌/우 50:50 분할 (코드 반영: aed8800) · 설정 완료 CTA 추가 (PR #540) · 배지는 시트 헤더 위치(8/17 실사) · 각 메뉴 상세 위임 |
| ㄴ61 | 반영 (급여대장 반영) | Button | • 시트에 입력한 값을 급여(수당·공제 레코드)로 기록하는 CTA. title 원문 "시트에 입력한 값을 급여(수당·공제 레코드)로 기록합니다. 반영해야 급여대장과 급여 계산에 반영돼요." 반영 개념이 있는 시트면 버튼을 항상 노출하고, 못 누르는 시트는 disabled + 툴팁으로 사유를 밝힌다(사유 판정·툴팁 문구는 단일 게터 commit-gate.ts에서 결정) • 클릭 시: 시트 값 → 수당·공제 레코드 기록 - CASE01 [작업 완료]: disabled — "작업 완료된 시트는 반영할 수 없어요. 시트 상태를 '사용 중'으로 바꾼 뒤 반영해 주세요." - CASE02 [시트 보호]: disabled — "보호 중인 시트는 반영할 수 없어요. 데이터 > 시트 및 범위 보호에서 보호를 해제해 주세요." - CASE03 [대상 미지정]: disabled — "반영할 대상이 지정되지 않았어요. 열 헤더를 우클릭해 열 설정 → 대상 급여대장 항목을 지정하면 반영할 수 있어요." - CASE04 [변경 없음]: disabled — "마지막 반영 이후 변경된 내용이 없어 반영할 항목이 없어요." | commit-gate.ts · 62 열 헤더 메뉴 · 64C 설정 중 노출 제어 · [[HBHR201_전체 확정 (commit)]] | 신규 (코드 반영: aed8800) · "커밋→반영" 용어 통일 · 항상 노출 + disabled 사유 4종 · 8/17 라이브 실사: CASE01 워딩 "사용 중" 확정(PR #540 통일) · 설정 중엔 숨김(64C) |
| ㄴ62 | 반영 상태 배지·칩 | Badge | • 시트-급여대장 반영 상태를 배지·칩으로 표시. 배지 문구는 기존 「변경됨/최신」에서 **「반영 필요/반영됨」**으로 변경. 미반영 칩은 "급여대장 미반영", 반영 후엔 "마지막 급여 반영 {일시}"로 목적어를 붙여 표기. 배지는 .ds-label 규격으로 렌더 - CASE01 [반영됨]: "시트 값이 급여대장에 반영된 값과 같습니다." - CASE02 [반영 필요]: "시트 값이 급여대장에 반영된 값과 다릅니다. 다시 반영하면 급여대장이 시트와 같아집니다." · 반영 후 실행 취소 시에도 「반영 필요」로 되돌림 | sheet_views.lastCommittedAt · 58 실행취소/재실행 | 신규 (코드 반영: aed8800·160de5a) · 「변경됨/최신」→「반영 필요/반영됨」 |
| 63 | 서식 도구 모음 | - | • 글자크기 9|18pt / "B" "I" "S" "U" / 색(글자·배경 분리) / 정렬 / "123"(fill) / 테두리 / "자간 (Letter spacing)" / "서식 지우기 (선택한 셀의 모든 서식 제거)" / "⊘"를 담는 서식 도구 모음. "123" 숫자형식 메뉴에 표시 형식 항목으로 「불리언」(63A) 포함 | 보기 메뉴 "🎨 서식 도구 모음 표시" ([[HBHR104_보기 메뉴]] 참조) · 63A 불리언 표시 형식 | 자간·서식 지우기 신규 · "123" 메뉴에 불리언 추가 (90bc68f) |
| ㄴ63A | 불리언 표시 형식 | - | • 열 표시 형식에 신설한 「불리언」 형식. 수식 엔진의 1/0 결과(비교·AND/OR/NOT·TRUE/FALSE 리터럴)를 True/False 텍스트로 표시한다(False는 회색, True는 파란 강조). 사람이 넣은 true/false 문자열도 매핑(0/"0"/"false" → False, 그 외 비어 있지 않으면 True). 편집은 텍스트 입력 그대로. 선택 위치는 두 곳: 열 설정 드로어(71 열 설정) + 서식 툴바 "123" 숫자형식 메뉴. "123" 숫자형식 메뉴 항목 원문 = 자동 / 텍스트 / 숫자 / 날짜 / 시간 / 기간 (HH:MM - HH:MM) / 불리언 (True/False) / 안내 "숫자 형식은 선택한 셀이 속한 열 전체에 적용됩니다. 글자·색·테두리 등 나머지 서식은 선택한 셀에만 적용됩니다." • 표시 형식 「불리언」 선택 시: 1/0 값을 True/False 텍스트로 렌더 | 63 서식 도구 모음("123") · 71 열 헤더 메뉴(열 설정) · 75A 불리언 리터럴 | 신규 (코드 반영: 90bc68f) · 열 설정 드로어 + "123" 메뉴 진입 · 1/0 → True/False 표시 · 8/17 라이브 실사: "123" 메뉴 항목·안내 원문 확정 |
| 64 | 시트 수명주기 상태 배지 | Badge | • 시트의 수명주기 단계를 상태 배지 3종으로 표시하는 기능. 배지 텍스트 "설정 중" / "사용 중" / "작업 완료"이며, 각 배지 좌측에 SVG 아이콘(기어 / 진행 중 원형 / 체크)이 붙는다(이모지 문자 ⚙/◔/✓ 아님). 배지 위치는 툴바가 아니라 시트 헤더 h3(시트명 왼쪽 앞). data-testid=sheet-lifecycle-badge, ds-label--md·square·line 규격(설정 중=light-gray·semibold / 사용 중=primary / 완료=green). "설정 중" 단계에서는 배지와 함께 설정 중 안내 띠(오렌지 배너)를 노출• 표시 전용(단계에 따라 하위 컨트롤 노출·잠금 분기) - CASE01 [설정 중]: "설정 중" 배지(좌측 SVG 기어) + 안내 띠 · 반영 버튼·직원 추가 숨김(64C) - CASE02 [사용 중]: "사용 중" 배지(좌측 SVG 진행 중 원형) · 구조 잠금(64D) - CASE03 [작업 완료]: "작업 완료" 배지(좌측 SVG 체크) - 배지 호버 툴팁 3종: 설정 중 = "설정 중\n구조(컬럼·열 수식·반영 연결)를 자유롭게 바꿀 수 있어요.\n✓ 설정 완료를 누르면 실무자가 사용할 수 있습니다." / 사용 중 = "사용 중\n값 입력·행 추가 등 일상 작업만 가능해요.\n구조를 바꾸려면 파일 → 시트 재설정." / 작업 완료 = "작업 완료\n시트가 잠겨 수정과 반영이 막힙니다.\n파일 → 사용 중으로 변경으로 되돌릴 수 있어요." - 설정 중 안내 띠 원문: "시트를 설정 중 입니다. 구조를 자유롭게 바꿀 수 있어요. 완료하면 실무자가 사용할 수 있습니다.입력된 데이터 {N}행이 있어요 — 열 수식을 바꾸면 전체가 재계산됩니다." | 5A 시트 작업 완료 · 64A 설정 완료 CTA · 64C·64D · 50 시트 헤더 | 신규 (PR #540, 21cd1b8 — UP-008 R1·R2·R4·R8) · 워딩 "작업 중"→"사용 중" 통일 · 8/17 라이브 실사: SVG 아이콘·시트 헤더 위치·툴팁·안내 띠 확정 |
| ㄴ64A | 설정 완료 CTA | Button | • 툴바 우측 끝에서 시트를 "설정 중"에서 "사용 중"으로 확정하는 [설정 완료] CTA. 설정 중 시트 툴바 우측에는 "설정 중엔 급여반영이 불가합니다." 안내 + [설정 완료] CTA만 노출된다. 클릭 시 확정 다이얼로그를 띄운다 • 클릭 시: 확정 다이얼로그 오픈(구조 요약 4행 + 잠금 안내). 확정 처리 중에는 화면에 화이트 딤 + 스피너 - 확정 다이얼로그 원문: 제목 "설정을 완료하고 시트를 사용합니다." / 구조 요약 4행 = 컬럼 {n}개 · 수식 열 {m}개 / 급여 반영 연결 없음(또는 연결명) / 자동 행 생성 자동 — 규칙 설정됨 / 행 기준 자유 / 안내문 "사용 중에는 컬럼 구조·열 수식·반영 연결이 잠깁니다. 다시 바꾸려면 파일 → 시트 재설정." / 버튼 [취소] [설정 완료] - CASE01 [확정]: 시트 "사용 중" 전환, 구조 잠금(64D) 적용 - CASE02 [권한 없음]: 노출 안 됨(canManageSetup, 비공개 시트는 생성자만) | 64 상태 배지 · 64D 구조 잠금 · sdk.sheetView.finishSetup() (추정) | 신규 (PR #540, 21cd1b8) · 설정 중 → 사용 중 확정 · 8/17 라이브 실사: 확정 다이얼로그 원문 확정 |
| ㄴ64B | 시트 재설정 | - | • 확정된 시트를 다시 "설정 중"으로 되돌리는 「시트 재설정」. 파일 메뉴에서 진입 — 파일 메뉴 항목 "시트 재설정 하기" + 설명 "시트의 초기 설정을 변경합니다. 이력이 남습니다." 열 헤더 메뉴 하단에도 "구조 변경은 파일 → 시트 재설정에서" 안내가 붙는다 • 클릭 시: 시트 "설정 중"으로 복귀 → 구조 편집 잠금 해제, 설정 중 안내 띠 재노출 - CASE01 [권한 없음]: 진입 불가(canManageSetup, 비공개 시트는 생성자만) | 64 상태 배지 · 64C·64D · [[HBHR102_파일 메뉴]] · sdk.sheetView.reopenSetup() (추정) | 신규 (PR #540, 21cd1b8) · 8/17 라이브 실사: 진입 위치 = 파일 메뉴 "시트 재설정 하기"(사이드바 컨텍스트 아님) |
| ㄴ64C | 설정 중 노출 제어 | - | • "설정 중" 단계에서 반영 버튼(61)과 직원 추가 진입을 숨기는 노출 게이트. 설정이 완료되기 전에는 급여 반영·행 추가 동선을 감춰 구조 확정을 유도한다 • 설정 중 진입 시: 반영 버튼·직원 추가 숨김 | 61 반영 버튼 · 64 상태 배지 | 신규 (PR #540, 21cd1b8 — UP-008 R2) · 설정 중 숨김 |
| ㄴ64D | 사용 중 구조 잠금 | - | • "사용 중" 시트에서 구조 편집(열 추가·수식·열 설정)을 게이트로 차단하는 잠금. 값 편집은 허용하되 시트 구조 변경 계열 동선만 막는다 • 사용 중 진입 시: 구조 편집 동선 게이트 차단 - CASE01 [재설정]: 시트 재설정(64B)으로 "설정 중" 복귀 시 잠금 해제 | 71 열 헤더 메뉴(열 설정) · 64B 시트 재설정 · [[HBHR105_삽입 메뉴]] · [[HBHR107_컬럼 헤더 컨트롤]] | 신규 (코드 반영: 64c3b12) · 구조 편집 게이트 |
| ㄴ64E | 히스토리 드로어 | Drawer | • 시트의 완료·재설정 이력을 최신순으로 보여주는 「히스토리」 드로어. 드로어 헤더 = "히스토리" + 시트명. 우측 레일 상호 배제 합류(셀 상세·메모 레일과 같은 우측 레일 슬롯을 공유) • 클릭 시: 우측 레일에 히스토리 드로어 노출(완료/재설정 이력 최신순) - 항목 포맷 = [상태 배지] + [날짜 시각] + [작성자]. 예: 설정 완료 · "2026. 08. 11. 13:31" · "안세희"- CASE01 [다른 레일 열림]: 우측 레일 상호 배제 — 기존 레일 대체 | 56 셀 상세 레일 · 64 상태 배지 | 신규 (PR #540, 21cd1b8 — UP-008 R8) · 우측 레일 합류 · 8/17 라이브 실사: 헤더·항목 포맷 확정 |
| ㄴ64F | 수명주기 승계·소스 제외 | - | • 기간 복사(이전 월에서 가져오기) 시 소스 시트의 수명주기를 대상 시트가 승계하는 규칙. 또한 "설정 중" 소스 시트는 급여대장 "소스 전체 반영"에서 제외하고 제외 사유를 표시한다 • 기간 복사 시: 소스 수명주기 승계 - CASE01 [소스가 설정 중]: "소스 전체 반영" 대상에서 제외 + 제외 사유 표시 | 22 이전 월 가져오기 · 64 상태 배지 · [[HBHR201_전체 확정 (commit)]] | 신규 (코드 반영: 388f810 승계 · 7633ebc 소스 제외 사유) |
| 70 | 데이터 그리드 | Grid | • 컬럼 헤더 + 행으로 구성된 데이터 그리드. 시스템 컬럼(#/사번/성명/팀/직급 등) + 유형별 항목 컬럼, 휴직/퇴사 행 회색 처리(추정). 그리드 셀 내 상태 배지(대기·승인·지급·취소)는 .ds-label 규격(xs·square·line)으로 렌더되며 색은 DS 의미 매핑(승인=green / 대기=yellow / 지급=blue / 취소=light-gray)을 따른다 | 컬럼 헤더 [[HBHR107_컬럼 헤더 컨트롤]] 참조 / 시트 유형 HBHR200~270 | 상태 배지 DS 라벨화 (코드 반영: 160de5a) · 컬럼 헤더 구조 위임 |
| ㄴ71 | 열 헤더 메뉴 | Menu | • 열 헤더 우클릭·컨트롤로 여는 메뉴. "열 설정"을 메뉴 최상단으로 이동하고 설명 줄 "열 종류와 형식, 급여 반영 대상을 설정합니다"를 붙였다(반영 대상 지정 = 반영 버튼 활성 전제). 열 우클릭 시 해당 열이 선택되도록 변경해 메뉴 대상과 화면 선택을 일치시킴. 메뉴에 조건부 서식 진입을 추가(74 규칙 모달) • "열 설정" 클릭 시: 열 종류 에디터 열림(열 종류·형식·대상 급여대장 항목 지정) • "조건부 서식" 클릭 시: 규칙 모달 오픈(74) - CASE-E [중복 컬럼 키 저장 시도]: 서버가 columnLayout 저장(생성/수정/템플릿 저장 5개 경로 공통)을 거부 — 오류 문구 "컬럼 키가 중복되었어요: {키 목록} — 같은 키의 열은 시트에 하나만 있을 수 있어요." (중복 키 유입 시 Alpine x-for 키 충돌로 헤더가 조용히 사라지는 렌더 붕괴 재발 방지) | 61 반영 버튼(대상 지정) · 74 조건부 서식 규칙 모달 · [[HBHR107_컬럼 헤더 컨트롤]] 상세 | 신규 (코드 반영: aed8800) · "열 설정" 최상단 이동 + 설명 줄 · 우클릭 열 선택 · 조건부 서식 진입 추가(7be8937) · 헤더/행 컨텍스트 메뉴는 실측 렌더 크기 기준으로 뷰포트 안에 열림(넘침 방지, d2f9157) · 중복 키 서버 검증(91782a7 — 문구는 코드 확정값, 재현에 저장 실행이 필요해 라이브 실사 생략) |
| 72 | 수식 적용 범위 하단 바 | - | • 셀 수식 편집 중 화면 하단에 상시 노출되는 적용 범위 바(formula-scope-bar). 기존 범위 선택 팝업을 제거하고, 엑셀 관습에 맞춰 Enter = 이 셀만 · Shift+Enter = 열 전체 두 경로를 키로 제공(기존 안내 배지 제거). 같은 두 경로를 바의 [이 셀만] · [열 전체] 버튼으로도 제공 • 셀 수식 편집 진입 시: 하단 바 노출 → Enter/Shift+Enter 또는 바 버튼으로 적용 범위 선택 - 사용 중 시트 바 원문: 좌측 안내 "Enter → 이 셀만 적용 (사용 중에는 열 전체 적용 불가)" / 버튼 이 셀만 적용 · [Shift+Enter 전체 열에 적용 🔒](사용 중 시트에서 잠금/비활성) - CASE01 [사용 중 시트]: Shift+Enter(열 전체)도 [이 셀만]으로 처리하고, 적용 전 수정 사유 입력을 요구 → 입력 값을 셀 메모로 저장(마커·호버·이력 재사용) - CASE02 [메모 저장 실패]: 수식 적용은 유지 + 실패 토스트 안내 | 56 셀 상세 레일(메모) · 64D 사용 중 구조 잠금 · sheet_cells 메모 | 신규 (코드 반영: 5f00544 — 2026-08-10 확정 · UP-008 F4) · 범위 선택 팝업 제거 · Enter/Shift+Enter 관습 · 8/17 라이브 실사: 바 안내·버튼 원문 확정 |
| 73 | 하단 합계행 | Cell | • 컬럼별 "∑" 합계 + "{n}명" 카운트를 표시하는 전 시트 공통 합계행 - CASE01 [값 0]: 0 표기 | 집계(∑) [[HBHR107_컬럼 헤더 컨트롤]] 참조 | 전 시트 공통 |
| 74 | 조건부 서식 규칙 모달 | Modal | • 열 헤더 우클릭 "🎨 조건부 서식"(71)으로 여는 규칙 모달. 셀 값 조건 + 색 프리셋 + 대상 셀 미리보기로 규칙을 구성하며, 값 조건 외에 수식 평가 조건도 지원한다. 모달 원문: 제목 "조건부 서식 — {열명}" / 설명 "조건에 맞는 셀이 스스로 색을 바꿔요. 규칙은 시트에 저장되고, 칩에서 켜고 끌 수 있어요." / 조건 옵션 = 다음보다 큼 / 다음보다 작음 / 같음 / 같지 않음 / 비어 있음 / 수식이 참일 때 / 값 입력 "값 또는 [열키]" + 힌트 "고정값(100000) 또는 다른 컬럼 참조([지급총액])를 넣을 수 있어요." / 색 프리셋 4종(무색·노랑·초록·파랑 등) + "굵게" 체크 / 미리보기 "값 — 현재 {n}개 셀 해당" / 버튼 [취소] [규칙 저장] • 규칙 설정 시: 조건(값/수식) + 색 선택 → 대상 셀 미리보기로 확인 - CASE01 [값 조건]: 다음보다 큼/작음/같음/같지 않음/비어 있음 등 셀 값 비교 - CASE02 [수식 조건]: "수식이 참일 때" — 수식 평가 결과로 서식 적용 | 71 열 헤더 메뉴 · [[HBHR107_컬럼 헤더 컨트롤]] | 신규 (코드 반영: 7be8937 — UP-007) · 값/수식 조건 + 색 프리셋 + 미리보기 · 8/17 라이브 실사: 모달 원문·조건 옵션·색 프리셋 확정 |
| 75 | 수식 함수 신설·IFERROR 감싸기 | - | • 수식 함수 3종 신설: IFERROR / SUMIF / COUNTIF(fx 가이드·자동완성 등록). 헤더 수식 편집기·수식바에 「IFERROR로 감싸기」 버튼을 제공해 현재 수식을 IFERROR로 한 번에 감싼다. 수식바 우측 끝 버튼 원문 "🛡 IFERROR", 툴팁 "현재 수식을 IFERROR(수식, 0)로 감싸요 — 참조 미해결·0 나눗셈 같은 오류를 담당자가 정한 값으로 통제해요" • "IFERROR로 감싸기" 클릭 시: 현재 수식을 IFERROR(…)로 래핑 - CASE01 [이미 IFERROR로 감싸짐]: 버튼 비활성(disabled) | 71 열 헤더 메뉴(헤더 수식 편집기) · 60 수식바 · fx 가이드·자동완성 | 신규 (코드 반영: 2a18a41 — UP-006) · 함수 3종 등록 · IFERROR 감싸기 버튼 · 8/17 라이브 실사: 버튼·툴팁 원문 확정 |
| ㄴ75A | 불리언 리터럴 (TRUE/FALSE) | - | • 수식에서 불리언 리터럴 TRUE / FALSE를 지원(맨 표기·함수형 TRUE()/FALSE() 둘 다). 내부 표현은 1/0으로, 기존 비교·논리(AND/OR/NOT) 연산자 결과와 동일한 표현이다. 수식 도구(fx) 카탈로그에 TRUE/FALSE 항목 등재. fx 팝오버 함수 카탈로그 원문: TODAY() DAY MONTH YEAR EOMONTH IF(c,t,e) ROUND ROUNDUP ROUNDDOWN FLOOR CEILING ABS MIN MAX SUM AVERAGE COUNT AND OR NOT TRUE FALSE IFERROR SUMIF COUNTIF SUMIFS COUNTIFS / 안내 "함수를 누르면 설명이 아래에 펼쳐져요. 읽어 보고 「함수 입력」으로 넣으세요." / 하단 "상수 (단가)" + [관리] • 수식 입력 시: TRUE→1 / FALSE→0으로 평가. 열 표시 형식 「불리언」(63A)과 결합 시 True/False 텍스트로 표시 | 63A 불리언 표시 형식 · 75 수식 함수 · fx 카탈로그 | 신규 (코드 반영: 90bc68f) · 맨 표기·함수형 · fx 카탈로그 등재 · 8/17 라이브 실사: fx 팝오버 함수 카탈로그·상수(단가) 관리 원문 확정 |
| ㄴ75B | 엑셀식 비교 연산자 (=/<>) | - | • 수식 본식에서 엑셀 관습의 단일 등호 =([A]=[B])와 부등호 <>를 허용. 토크나이저가 내부 ==/!=로 정규화하며, 기존 ==/!= 표기도 그대로 동작한다. SUMIF/COUNTIF 조건 문자열 파서가 이미 두 표기를 받고 있어 같은 시트 안 문법이 통일됨- CASE01 [ =/<> 입력]: 내부 ==/!=로 정규화해 평가 | 75 수식 함수(SUMIF/COUNTIF) · 79 수식 순환 감지 · 수식 엔진 | 신규 (코드 반영: b862772 — QA-55) · =/<> 허용·내부 ==/!= 정규화 · SUMIF/COUNTIF와 문법 통일 |
| 76 | 드로어 재편 (요약) | - | • 우측 드로어 중심으로 편집 UI를 재편(PR #528). 요약: ① 열 설정 모달 → 우측 드로어(진입점 6곳) ② 급여 반영 설정 분리 드로어 ③ 행 인스펙터 우측 레일 이관 ④ 상시 수식 바 + fx 팝오버·인수 가이드 ⑤ 선택 영역 합계 배지 "선택 N개 · 합계 · 평균" ⑥ 카테고리 점프바 숨김 처리(a946995) ⑦ 툴팁 소스 목록 가림 수정(d944d1e). 각 구역 상세는 하위 문서에 위임 • 상세 동선은 [[HBHR107_컬럼 헤더 컨트롤]] / [[HBHR109_행 정보 패널·검색]]에 위임 | 56 셀 상세 레일 · 60 수식바 · [[HBHR106_데이터 메뉴]] · [[HBHR107_컬럼 헤더 컨트롤]] · [[HBHR109_행 정보 패널·검색]] | 요약 반영 (PR #528, 8/8 머지) · 상세 위임 · 전면 재작성 별도 예정 · 열 설정 드로어 미저장 변경 확인창에서 [취소] 후 같은 확인이 재차 뜨던 문제 수정(188553a) |
| 77 | 급여대장 생성 진입점 | Button | • 대상 급여대장 시트가 없을 때, 반영 동선에서 급여대장을 새로 생성하는 진입점을 제공하는 기능 • 클릭 시: 급여대장 시트 생성 → 반영 대상으로 연결 | 61 반영 버튼 · [[HBHR200_급여대장]] (추정) | 신규 (코드 반영: 87437af) · 급여대장 부재 시 생성 유도 |
| 78 | 크로스시트 참조 순환 방지 | - | • 시트 간 수식 참조(크로스시트 참조) 시 순환 참조를 방지하는 옵션 | 72 수식 적용 범위 바 · 수식 엔진 | 신규 (코드 반영: 995a0c6) · 순환 참조 방지 옵션 |
| 79 | 수식 순환 감지·저장 차단 | - | • 수식을 저장하기 직전, 크로스시트·동일 시트(자기 자신 포함) 참조를 따라가 편집 중인 열/셀로 되돌아오는 순환 경로가 생기는지 검사해 순환이면 저장을 차단하고 경고를 표시하는 가드. 셀 편집(셀 = 입력·수식바)과 헤더 수식 편집기 양쪽에 적용되며, 순환 검사에 걸리면 입력 초안을 그대로 남긴다. 이미 저장돼 있던 옛 순환은 검사하지 않는다(편집 열/셀을 지나는 경로만 판정)• 저장 시: 순환 검사 → 순환 시 저장 중단 + 경고 팝업 - CASE01 [순환 감지]: 저장 차단 · 경고 팝업 danger 톤 "서로 참조하는 수식이 있어 저장할 수 없어요." + "닫기" 버튼, 입력 초안 유지 | 72 수식 적용 범위 바 · 71 열 헤더 메뉴(헤더 수식 편집기) · 60 수식바 · 78 크로스시트 순환 방지 · 수식 엔진 | 신규 (코드 반영: 471f3db·954fac5 — PR #545 QA-56) · 셀 편집·헤더 수식 편집기 양쪽 적용 · 저장 시점 차단 · 경고 문구(CASE01)는 저장 실행 필요로 8/17 실사 미검증(TBU) |
| 7A | 채우기 핸들 | - | • 셀을 이어서 채우는 채우기 핸들. 마우스 드래그(엑셀식 핸들 드래그)와 단축키 ⌘D(아래로 채우기)/⌘R(오른쪽으로 채우기)이 같은 채우기 로직을 공유해, 값 채우기 규칙(연속 값 감지 등)과 되돌리기 이력이 두 경로에서 동일하게 동작한다 • 드래그 또는 ⌘D/⌘R 시: 채우기 로직 적용(값 규칙·되돌리기 이력 공통) | 58 실행취소/재실행 · [[HBHR103_편집 메뉴·단축키]] 채우기 단축키 · 71 열 헤더 메뉴 | 신규 (코드 반영: 8d38bed — PR #548) · 드래그·단축키 채우기 로직 통일 |
| 70-E | Empty 상태 | - | • 해당 기간 시트 없을 시 빈 상태를 노출해 새 시트 만들기를 유도하는 상태 | [[HBHR101_새 시트 만들기 모달]] 참조 | TBU: Empty 노출 문구 원문 |
단축키 카탈로그 포인터
"단축키" 버튼(ㄴ23)이 여는 도움말 모달은 4카테고리로 구성되며, 전체 카탈로그는 [[HBHR103_편집 메뉴·단축키]]가 소유한다. 워크스페이스는 진입점만 제공 — 아래는 카테고리 요약 포인터이며 상세 항목은 103 참조.
| 카테고리 | 대표 키 (요약) | 상세 |
|---|---|---|
| 탐색 (Navigation) | ↑↓←→ 셀 이동 / j·k 사이드바 시트 전환 / "/" 검색 / i 행 정보 | [[HBHR103_편집 메뉴·단축키]] |
| 선택 (Selection) | Shift+클릭 범위 선택 / 우클릭(# 열) 행 메뉴 | [[HBHR103_편집 메뉴·단축키]] |
| 편집 (Editing) | Enter/Tab/Esc / Ctrl+C·V TSV / Ctrl+D·R 채우기 / Ctrl+Z·Shift+Z | [[HBHR103_편집 메뉴·단축키]] |
| 메뉴·찾기 | Alt+F/E/I/D/V 메뉴 열기 / Ctrl+F·H 찾기·바꾸기 / ? 도움말 토글 | [[HBHR103_편집 메뉴·단축키]] |
참조 요약 (하위 문서 트리)
| 구역 | 상세 사양서 |
|---|---|
| 새 시트 만들기 모달 | [[HBHR101_새 시트 만들기 모달]] |
| 파일 메뉴 | [[HBHR102_파일 메뉴]] |
| 편집 메뉴·단축키 (전체 카탈로그) | [[HBHR103_편집 메뉴·단축키]] |
| 보기 메뉴 | [[HBHR104_보기 메뉴]] |
| 삽입 메뉴 | [[HBHR105_삽입 메뉴]] |
| 데이터 메뉴 | [[HBHR106_데이터 메뉴]] |
| 컬럼 헤더 컨트롤 | [[HBHR107_컬럼 헤더 컨트롤]] |
| 좌측 사이드바(폴더/휴지통) · 폴더 관리 모달 | [[HBHR108_폴더·휴지통 사이드바]] |
| 시트 헤더 검색 · 행 정보 · 셀 상세 패널 | [[HBHR109_행 정보 패널·검색]] |
| 시트 유형 화면 | HBHR200 ~ HBHR270 |
권한·상태 분기 요약
| 시나리오 | 트리거 | 결과 | 비고 |
|---|---|---|---|
| CASE01 [미인증 진입] | /hr-system 직접 | /hr-system/signin 리다이렉트 | |
| CASE02 [HR_ADMIN 진입] | 인증 세션 | 최근 시트 /sheets/ | 조건1 [HR_ADMIN] |
| CASE03 [SUPER_ADMIN 진입] | 인증 세션 | 최근 시트 /sheets/ | 조건2 [SUPER_ADMIN] |
| CASE04 [폴더 없음] | folder 값 부재 | "(미분류)" fallback | |
| CASE05 [시트 없음] | sheet_list 0건 | Empty 상태(70-E) | 문구 TBU |
Open Question
- 최근 작업 시트가 없을 때의 진입 동선 (TBU)
- 계정 버튼(11) 표시 값 (TBU)
- 알림(12) / 댓글(59) / 메모 이력(55) 버튼의 상세 동작 (TBU)
- Empty 상태(70-E) 노출 문구 (TBU)
- 시트 검색(52) 결과 없음 Empty 문구 (TBU)
- 폴더 관리 모달 "+ 새 폴더" 상세 동작·에러 처리 — [[HBHR108_폴더·휴지통 사이드바]] 소유 (TBU)
- 이전 월 가져오기(22) 에러·실패 동작 (TBU)
- 폴더 관리 버튼(24) 에러·실패 동작 (TBU)
- tRPC procedure · 권한 토큰 실제 키 — 현재 전부 추정 네이밍