HBHR102_파일 메뉴
(Hereby) HR 급여 관리 > 시트 워크스페이스 > 파일 메뉴
| 항목 | 내용 |
|---|---|
| 앱 | HR 급여 관리 (HBHR) |
| 대상 사용자 | 조건1 [HR_ADMIN] |
| 부모 화면 | [[HBHR100_시트 워크스페이스 (공통 Shell)]] |
| 프로토타입 | TBU |
| 관련 정책 | [[POL_급여정본경계]] |
| Status | review |
| Owner | 카나 |
개요
스프레드시트 툴바([[HBHR100_시트 워크스페이스 (공통 Shell)]])의 "파일 ▾" 메뉴를 정의한다. 7개 항목("📄 새 시트" / "📤 업로드" / "⎘ 사본 만들기" / "⬇ 다운로드" / "🖨 인쇄"(신규) / "✏️ 이름 바꾸기" / "🛠 시트 정보")으로 구성된다. 파일 메뉴에 시트 삭제 항목은 없다 — 시트 삭제는 좌측 사이드바 시트 우클릭 → "삭제"로 수행한다 ([[HBHR108_폴더·휴지통 사이드바]] 참조).
문서 히스토리
| 날짜 | 작성자 | 팀 | 변경 내용 |
|---|---|---|---|
| 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-09-23 | 카나 | PM | 📤 업로드(20)에 매핑 단계·검증 리포트·임포트 변경 세트 진입 동선 한 줄 반영(eea3dac #832, 1193e00 #836) — 커밋 근거, 라이브 실사 이월(TBU) |
| 2026-09-30 | 카나 | PM | PR #888 반영: 파일 메뉴 「업로드 파일 관리」(25) + 업로드 파일 관리 모달 사양표 신설 · PR #886 반영: 「원본 보기」 보관 만료 안내 문구 · PR #831 반영: 「인쇄」(45)가 곧장 인쇄하지 않고 「인쇄 설정」 모달(46)을 먼저 엶 — 커밋·소스 근거, 라이브 실사 이월(TBU) |
| 2026-10-07 | 카나 | PM | PR #1065 반영(MED-935): 설정 중 시트에서 파일 메뉴 맨 아래 「시트 재설정 하기」 자리에 「설정 완료」 항목(65 신설) — 커밋 근거, 라이브 실사 이월(TBU) |
Data I/O
Client → Server
| 액션 | 전달 값 | tRPC procedure | 권한 토큰 |
|---|---|---|---|
| 사본 만들기 | sheetId | sdk.payrollSheet.duplicate() (추정) | payroll:write (추정) |
| 다운로드 | sheetId, format | sdk.payrollSheet.export() (추정) | payroll:read (추정) |
| 이름 바꾸기 | sheetId, name | sdk.payrollSheet.rename() (추정) | payroll:write (추정) |
| 시트 정보 조회 | sheetId | sdk.payrollSheet.info() (추정) | payroll:read (추정) |
procedure는 라이브 확인 전 추정치이며, 확정 시 갱신한다. "📄 새 시트"는 모달([[HBHR101_새 시트 만들기 모달]]) 진입만 담당하여 서버 액션 없음.
화면 플로우
파일 메뉴 사양표
| 번호 | 항목/기능명 | 타입 | 사양 및 기능 설명 | 연관/영향 범위 | 비고 |
|---|---|---|---|---|---|
| 00 | 노출 조건 | - | 스프레드시트 툴바 "파일 ▾"([[HBHR100_시트 워크스페이스 (공통 Shell)]] 참조) 클릭 시 드롭다운 노출조건1 [HR_ADMIN] 시 노출 | [[HBHR100_시트 워크스페이스 (공통 Shell)]] | 권한 세부 TBU |
| 01 | 초기 상태 | - | 메뉴 닫힘. 현재 시트가 액션 대상 | 현재 시트 | TBU: 시트 미열림 상태 메뉴 활성 여부 |
| 10 | 📄 새 시트 | MenuItem | • 새 시트 생성을 시작하는 기능. 서버 액션 없이 모달 진입만 담당 • 클릭 시: "새 시트 만들기" 모달 오픈 | [[HBHR101_새 시트 만들기 모달]] | |
| 20 | 📤 업로드 | MenuItem | • 외부 파일을 업로드해 시트로 가져오는 기능 • 클릭 시: 파일 업로드 동선 진입 → 매핑 단계 → 검증 리포트 → 승인 후 시트 생성(생성 결과는 임포트 변경 세트로 되돌릴 수 있음) — 상세는 [[HBHR100_시트 워크스페이스 (공통 Shell)]] ㄴ25-U | [[HBHR101_새 시트 만들기 모달]] 업로드 탭 · [[HBHR100_시트 워크스페이스 (공통 Shell)]] ㄴ25-U | 매핑·검증·임포트 변경 세트 동선 추가 (코드 반영: eea3dac #832 · 1193e00 #836) · TBU: 지원 포맷·포맷 미지원 시 에러 |
| 25 | 업로드 파일 관리 | MenuItem | • 조직의 업로드 원본 파일 전부(시트로 이어진 것 · 분석만 하고 닫은 것 · 지운 이력)를 보고 직접 삭제하는 기능. title "업로드한 원본 파일을 보고 삭제해요" • 클릭 → "업로드 파일 관리" 모달 (아래 별도 표) | 20 · 업로드 파일 관리 모달 · [[HBHR101_새 시트 만들기 모달]] 원본 보기 | 신설 (PR #888) · 목록 payroll:read / 삭제 payroll:manage |
| 30 | ⎘ 사본 만들기 | MenuItem | • 현재 시트를 복제해 사본을 만드는 기능 • 클릭 시: 현재 시트 복제 실행 | sdk.payrollSheet.duplicate() (추정) | TBU: 복제본 이름·저장 폴더 규칙·원본 미저장 처리 |
| 40 | ⬇ 다운로드 | MenuItem | • 현재 시트를 파일로 내보내 다운로드하는 기능 • 클릭 시: 시트 다운로드 실행 | [[HBHR270_전자서명 발송·eCount 연동 시트 (2섹션)]] | TBU: 지원 포맷·eCount export 관계 |
| 45 | 🖨 인쇄 | MenuItem | • 현재 시트를 인쇄하는 기능. 서식 도구 모음의 프린터 단추(title "인쇄 ({단축키})")와 같은 동작 • 클릭 → "인쇄 설정" 모달 (46) — 곧장 브라우저 인쇄를 부르지 않음 | 46 · [[HBHR100_시트 워크스페이스 (공통 Shell)]] 63 서식 도구 모음 | 인쇄 설정 모달 경유로 변경 (PR #831 G-8) · 메뉴 title 원문 "브라우저 인쇄 (Ctrl/Cmd+P)" |
| ㄴ 46 | 인쇄 설정 모달 | Modal | • 인쇄 전 범위·용지·배율·격자선을 고르는 모달. 제목 "인쇄 설정" • 항목: "인쇄 범위"(현재 시트 "— 지금 보이는 {N}행" / 선택한 셀 "— 칸을 두 개 이상 골랐을 때") · "용지 방향 (A4)"(가로/세로) · "배율"(너비에 맞춤/실제 크기 (100%)) · "격자선 표시" · "맨 위에 시트 이름 · 기간 표시" • [인쇄] 클릭 → 인쇄 전용 표를 모든 행으로 그려 브라우저 인쇄 창을 열고, 인쇄 창이 닫히면 치움 | 45 · 가상 스크롤 그리드 | 신설 (PR #831 G-8) · 안내 원문 "다음 화면(브라우저 인쇄 미리보기)에서 프린터·용지·PDF 저장을 고를 수 있어요. 필터로 가린 행과 숨긴 열은 인쇄되지 않고, 열 이름 줄은 쪽마다 다시 찍혀요." · X·취소·Esc 즉시 닫힘 |
| 50 | ✏️ 이름 바꾸기 | MenuItem | • 현재 시트명을 변경하는 기능 • 클릭 시: 시트명 변경 동선 진입 | [[HBHR100_시트 워크스페이스 (공통 Shell)]] 시트 헤더 | TBU: 인라인/모달 방식·시트 헤더 더블클릭과 동선 관계 |
| 60 | 🛠 시트 정보 | MenuItem | • 현재 시트의 메타 정보를 조회하는 기능 • 클릭 시: "시트 정보" 모달 노출 (61) | 61 | |
| ㄴ 61 | 시트 정보 모달 | Modal | • 시트 메타 정보를 표시하는 모달 (수정시각·건수·작성자 후보) | — | TBU: 필드 구성·Empty(값 부재 필드) 처리 |
| 65 | 시트 재설정 하기 / 설정 완료 | MenuItem | • 파일 메뉴 맨 아래 항목. 시트 상태에 따라 둘 중 하나가 옴 • CASE01 [설정 완료된 시트]: "시트 재설정 하기" 노출 • CASE02 [설정 중 시트]: 같은 자리에 "설정 완료" 항목이 옴 — 클릭 → 툴바 [설정 완료]와 같은 확정 다이얼로그(구조 요약)를 엶 | 툴바 [설정 완료] · [[HBHR100_시트 워크스페이스 (공통 Shell)]] | 신설 (PR #1065, MED-935) · 권한 = 재설정과 같은 canManageSetup · 다이얼로그 문구 원문 TBU(실사 대기) |
| 70 | 시트 삭제 경로 | - | 파일 메뉴에는 시트 삭제 항목이 없다 시트 삭제는 좌측 사이드바 시트 우클릭 → "삭제"로 수행 네이티브 confirm "삭제된 시트는 사이드바 상단 [휴지통]에서 복원할 수 있습니다." 후 휴지통으로 이동 | [[HBHR108_폴더·휴지통 사이드바]] | 파일 메뉴 외 경로 |
업로드 파일 관리 모달 사양표
| 번호 | 항목/기능명 | 타입 | 사양 및 기능 설명 | 연관/영향 범위 | 비고 |
|---|---|---|---|---|---|
| 00 | 모달 헤더 | Text | • 제목 "업로드 파일 관리" + 설명 "업로드로 올라온 원본 파일이에요. 개인정보가 들어 있을 수 있어 12개월이 지나면 자동으로 지워지고, 그 전에도 여기서 직접 지울 수 있어요. 지워도 그 파일로 만든 시트의 데이터는 그대로예요." | sheetImport.listUploads | 신설 (PR #888) |
| 10 | 지운 파일도 보기 | Checkbox | • 기본 해제 = 지울 수 있는 파일만 표시 • 체크 → 삭제 이력(사용자 삭제·보관 만료 삭제)까지 목록에 펼침 | 20 목록 | |
| 11 | 새로고침 | Button | • 클릭 → 업로드 원장 목록 재조회(조회 중 비활성) | 20 목록 | |
| 20 | 업로드 파일 목록 | Table | • 조직의 업로드 원장을 최신순 표시. 열 = "파일"(파일명 + 형식 · 크기) / "올린 사람 · 시각" / "상태" / "시트"(그 파일로 만든 시트, 휴지통 시트는 취소선, 4개 초과 시 "외 {N}개") • 조회 중: "불러오는 중…" | sheet_import_uploads · sheetImport.listUploads | 실패 시 "업로드 파일 목록을 불러오지 못했어요." |
| ㄴ21 | 상태 배지 | Badge | • CASE01 [시트로 이어짐]: "시트 {N}개"(green) • CASE02 [분석만 하고 닫음]: "시트 없음"(yellow) • CASE03 [사용자 삭제]: "삭제됨" / CASE04 [12개월 보관 만료]: "보관 만료 삭제"(gray) | removedReason(user · retention) | |
| ㄴ22 | 삭제 | Button | • 클릭 → 컨펌 "「{파일명}」 원본 파일을 삭제할까요? 삭제한 파일은 복구할 수 없어요." + 시트 안내("이 파일로 만든 시트 {N}개의 데이터는 그대로 남고, 「원본 보기」 만 안내 문구로 바뀌어요." / "이 파일로 만든 시트는 없어요.") → [삭제] 실행 - 성공: 토스트 "「{파일명}」 원본을 삭제했어요." · 진행 중 라벨 "삭제 중…" - 실패: 오류 창 "삭제 실패: {사유}" | sheetImport.deleteUpload · storage 원본 · sheet_views.importSourceKey | payroll:manage · 이미 지운 행은 멱등 |
| 20-E | Empty | Text | • "남아 있는 업로드 파일이 없어요." (지운 파일도 보기 체크 시 "업로드한 파일이 없어요.") | ||
| 30 | 원본 보기 안내 (삭제 후) | - | • 원본이 지워진 시트에서 「원본 보기」 시 안내로 거절 - CASE01 [보관 만료]: "보관 기간(12개월)이 지나 원본 파일이 삭제됐어요. 시트 데이터는 그대로예요." - CASE02 [사용자 삭제]: "원본 파일이 「업로드 파일 관리」 에서 삭제됐어요. 시트 데이터는 그대로예요." | [[HBHR101_새 시트 만들기 모달]] 원본 보기 · sheetImport.original | PR #886(만료 워커) · PR #888(사용자 삭제) |
| 40 | 닫기 | Button | • 클릭 → 모달 닫힘(즉시 서버 반영 모달이라 저장 확인 없음) |
Open Question
- 업로드(20) 지원 포맷·업로드 동선 및 포맷 미지원 시 에러 처리 = TBU
- 사본 만들기(30) 복제본 이름·저장 폴더 규칙 = TBU
- 다운로드(40) 지원 포맷 및 eCount export와의 관계 = TBU
- 이름 바꾸기(50) 인라인/모달 방식 및 시트 헤더 더블클릭과의 동선 관계 = TBU
- 시트 정보 모달(61) 표시 필드 구성 = TBU
- 시트 미열림 상태에서 파일 메뉴 항목 활성 여부 = TBU