Skip to content

HBHR200_급여대장 시트 ​

(Hereby) HR 급여 관리 > 시트 워크스페이스 > 급여대장 시트

앱HR 급여 관리 (hr-system, 포트 4000)
대상 사용자조건1 [HR_ADMIN] / 조건2 [SUPER_ADMIN]
프로토타입TBU
관련 정책[[POL_급여정본경계]]
Statusreview
Owner카나
부모[[HBHR100_시트 워크스페이스 (공통 Shell)]]
하위[[HBHR201_전체 확정 (commit)]] · [[HBHR202_직원 추가]] · [[HBHR203_재계산 diff 뷰]]

개요 ​

  • 급여대장 시트는 전 직원의 급여를 한 시트에서 편집·검토하는 **급여 작업 시트(작업공간)**다. 급여대장 시트는 좌측 폴더 트리에서 폴더 위로 승격돼 「급여대장」 폴더 안에 그려지지 않는다 — 이름 있는 「급여대장」 폴더는 급여대장 시트 혼자 세우지 못하므로 0개짜리 빈 폴더가 상시 노출되지 않는다(폴더 트리 동작은 [[HBHR100_시트 워크스페이스 (공통 Shell)]] ㄴ41 소유, 코드 반영: d123698, #754). 확정(commit = sheetView.commitToRecords)은 allowance_records / deduction_records 정본 record만 생성한다. 급여대장 정본(payroll_records)은 커밋이 만들지 않는다 — 별도 절차 payroll.generateForPeriod(year, month)가 AR/DR을 집계해 PayrollRecord를 생성한다(중복 시 skip) — (TC 확정: 03:3.3 / payroll.test.ts). ([[POL_급여정본경계]] 참조 — 이중 경로: ①시트 커밋→AR/DR ②generateForPeriod→PayrollRecord)
  • 좌측 시스템 컬럼(#/사번/성명/팀/직급)은 read-only로 employee에 바인딩되고, 우측 급여 항목 컬럼은 각각 ƒ(수식)로 Module Manager calculator의 output key에 바인딩된다.
  • 가상 스크롤 그리드이며, 상단 헤더에 건수 카운트("293/293건" 형태), 하단에 컬럼별 ∑ 합계행("n명")을 표시한다. 휴직·퇴사 행은 회색 처리된다.
  • 본 화면의 컬럼 정의(시스템 컬럼 + 급여 항목 컬럼)는 기본 템플릿 기준이다. 라이브 시트는 사용자 편집으로 컬럼 구성이 변형될 수 있다 — 예: 사번 / 성명 / 팀 / 연장근무수당 + 커스텀 열 구성.

문서 히스토리 ​

날짜작성자팀변경 내용
2026-07-06카나PM최초 작성
2026-07-10카나PM라이브 기능 검토 반영
2026-07-13카나PM버튼 행동 명세 보강
2026-07-21카나PMGC700 깊이 재작성
2026-07-21카나PM가독성 패스 + 액션 표기 (GUIDE §7·§8)
2026-07-21카나PM셀 스타일 확정판 적용 (콸 승인)
2026-07-21카나PMTC 크로스체크 확정분 반영 (🟡)
2026-07-21카나PM🔴 정정: 급여 생성 경계(커밋=AR/DR만·PayrollRecord=generateForPeriod)·record 타깃 페어 모델 (TC 정본, 콸 승인)
2026-07-25카나PM코드 변경 반영(17f8589·b83a51b) — 행 우클릭 메뉴 「직원 정보 수정」·「근태 기록 확인하기」 추가, 우클릭 행 추가 배치 버그 수정
2026-09-17카나PM급여대장 시트가 폴더 트리 위로 승격돼 「급여대장」 폴더 안에 그려지지 않음을 명시(빈 급여대장 폴더·삭제 재생성 수정 d123698, #754, CS-OKBEST-260917-0002 — 폴더 트리 동작은 [[HBHR100_시트 워크스페이스 (공통 Shell)]] 소유)
2026-09-17카나PM퇴사자 급여대장 제외 + 성명 셀 옆 퇴직 배지(5c332e8)·최종 근무일 컬럼 추가+퇴사일 판정(10ae783)·seeded 시트 성명 셀 편집 가능(aa00ff8) 반영 — 커밋 근거, 라이브 실사 이월(TBU)
2026-09-18카나PM재입사 가드 판정 확대(재직기 시작일 = 입사일·최신 근로계약 시작일 중 늦은 날) + 퇴사→재직 복귀 시 유효 퇴사 기록 자동 마감 반영(dc9821a, #789) — 운영 재직자 23명 급여대장 누락(9/18) 수정. 커밋 근거, 라이브 실사 이월(TBU)
2026-09-25카나PM낮 스윕 라이브 실사 — 「최종 근무일」 읽기전용(🔒) 열 실측(ㄴ36 해소). 퇴직 배지·재입사 가드는 퇴사자 데이터 부재로 미실증(이월 유지)
2026-10-01카나PM열 원천 「반복 고정 수당 — 그 달 유효한 정의 (recurring_allowance)」 추가(ㄴ44, 기간 스코프·코드 필터·종료 다음 달 제외) 반영(dea7be96, #969) — 커밋 근거, 라이브 실사 이월(TBU)
2026-10-02카나PM반복 고정 수당 월 중 시작·종료 일할(ㄴ44, d43e9da9, #998, MED-824)·행 우클릭 「계약 시행일 변경…」(ㄴA3, a0298fde, #962)·계약 시행일 분할에 따른 기본급 달별 반영(c7ccf7fa, #960) 반영 — 커밋 근거, 라이브 실사 이월(TBU)
2026-10-07카나PMPR #1045 반영(78c9a477): 유효 퇴사 판정을 resignationIsEffectiveSql 공통 판정으로 보강 — 상태 TERMINATED 또는 퇴사일이 조직 오늘 이후인 기록만 배지·최종 근무일·급여 마감일·대장 행 포함에 사용(ㄴ51). 운영 재직 직원 퇴직 배지 잔존 수정. 커밋 근거, 라이브 실사 이월(TBU)

Data I/O ​

Server → Client ​

변수DB 엔티티.컬럼값 없을 때비고
${sheet}sheet_views (viewKind, year, month)시트 미선택 시 빈 그리드급여대장 뷰
${rows}sheet_rows[] (sheetViewId FK, sortOrder 순)0건 시 Empty (-E)"293/293건" 카운트
${row.employee}sheet_rows.employeeId FK → employeesemployee 부재 시 시스템 컬럼 공란시스템 컬럼 바인딩
${cell}sheet_cells (sheetRowId, columnKey, kind)셀 없음 시 빈 셀literal/formula/ref 분기
${cell.computedValue}sheet_cells.computedValue jsonb (+computedAt)미계산 시 빈 텍스트(미계산 표시)ƒ 산출값
${column.fieldKey}컬럼 바인딩 키미바인딩 시 커스텀 열(employeeNumber)/(employeeName)/(team)/(position) 등
${column.warning}컬럼 설정 검증 상태정상이면 hide미검증 시 "⚠ 설정 확인 필요" 배지
${payslip.allowanceRecords}payslip 응답의 allowanceRecords[] (수당 원천 링크)없으면 빈 배열grossPay 구성 = 월급여+연장+수당 합산 · (TC 확정: 07:7.10 payroll includes overtime from ALL categories)

Client → Server ​

액션전달 값tRPC procedure권한 토큰
셀 편집rowId, columnKey, valuesdk.payrollSheet.updateCell() (추정)payroll:write (추정)
컬럼 수식/설정 변경columnKey, formula, fieldKey, aggregatesdk.payrollSheet.updateColumn() (추정)payroll:write (추정)
시트 내 검색query (사번/성명/사유/항목)클라이언트 필터—
직원(행) 추가 진입—[[HBHR202_직원 추가]]payroll:write (추정)
전체 확정 진입—[[HBHR201_전체 확정 (commit)]]payroll:confirm (추정)

ƒ컬럼 ↔ Calculator output key 바인딩 (Module Manager) ​

급여 항목군바인딩
기본급/호봉/장기근속/계약수당근로계약 calculator ([[HBHR210_계약급여내역 시트]]) — 그 달에 유효한 계약을 읽음: 시행일 변경(#960) 뒤 시행 전 달 옛 값 · 시행 후 달 새 값 · 걸친 달 일할
연장/야간/휴일/주말초과근무·근태 calculator ([[HBHR220_연장근무 내역 시트]] / [[HBHR231_근태 내역 시트 (근무시간 유형 집계)]])
고정 인센티브고정인센티브 calculator ([[HBHR250_인센티브 세션 시트]])
반복 고정 수당 (자격·직책 수당 등)열 원천(ref) recurring_allowance — 직원별 기간 정의([[HBAD201_직원 추가·수정 모달]] ⑤ 고정 수당) 중 그 달 유효분 (#969)
4대보험 공제InsuranceCalculator
소득세 공제소득세 calculator

ƒ수식 저장 단위(formula string vs calculator key binding) = TBU. sheet_cells.formulaExpression(text)와 record ref가 병존.

시트 ↔ record 참조 모델 (2026-06-19 타깃 페어 모델) ​

시트 구조는 sheet_views(시트) → sheet_rows(행) → sheet_cells(셀).

커밋 산출 record(AR/DR)는 item-code FK를 갖지 않는다(migration 1816으로 제거). 대신 두 방향의 참조를 보유한다 — (TC 확정: 10:10.1~10.3 / sheet-fixtures):

방향필드의미
record → 원천 시트 (lineage)sourceSheetId / sourceSheetRowId / sourceSheetColumnKey + isAutoGenerated=true어느 시트·행·컬럼 커밋에서 생성됐는지 스탬프. 재커밋 시 sourceSheetId 단위 soft-delete 후 재삽입(멱등)
record → 급여대장 앵커 (target)targetSheetSlug + targetColumnKey급여대장의 어느 집계 컬럼으로 흘러갈지 지정하는 페어. 실 급여대장 슬러그에 앵커되지 않으면 eCount export에서 excludedRecords로 제외 (TC 확정: 10:10.6)

구(舊) 서술이던 sheet_rows.sourceAllowanceRecordId 등 행 단위 ref 4종·sheet_cells.refAllowanceRecordId 등 셀 단위 ref 4종(item-code 바인딩 모델)은 폐기된 모델이다.


화면 플로우 (Mermaid) ​

ƒ 컬럼의 compute는 preview일 뿐 정본이 아니다. AR/DR 정본 record 생성은 확정([[HBHR201_전체 확정 (commit)]])에서만. PayrollRecord 생성은 커밋이 아니라 payroll.generateForPeriod(별도 절차) — 이후 validate(year,month) → approvePayroll(id)/bulkApprove(ids[]) → confirm(year,month) → processPayment(id) → exportEcount(year,month) 순의 절차형 급여 사이클이 이어진다 (TC 확정: 03:3.3~3.5 / 07:7.11 / 08:8.9). 이 사이클의 UI 진입점 = TBU.

시트 lifecycle ​


급여대장 시트 사양표 ​

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00노출 조건-조건1 [HR_ADMIN]/조건2 [SUPER_ADMIN] 인증 후 급여대장 폴더의 급여대장 시트 클릭 시 그리드 렌더. 미인증 시 [[HBHR100_시트 워크스페이스 (공통 Shell)]] 게이트에서 차단sheet_views인증 게이트
01초기 상태Output전 행 로드, 상단 "293/293건" 형태 카운트. 검색 placeholder "사번 / 성명 / 사유 / 항목 검색 ( / )"가상스크롤
10시트 헤더-"{이름} '26.7 · {수정 경과} · n/n건" + 검색창 + 💬. 시트명/기간 더블클릭 인라인 편집은 [[HBHR100_시트 워크스페이스 (공통 Shell)]] 위임[[HBHR100_시트 워크스페이스 (공통 Shell)]]
20컬럼 헤더Cell• 라벨 + ƒ(수식) + ⚙(설정) + ∑(집계) + (fieldKey) + ⇅ + ⌄ + "⚠ 설정 확인 필요" 배지로 구성된 프로그래머블 헤더. 헤더 버튼 "정렬 추가"/"필터 추가"
• 클릭 시: 컬럼 헤더 컨트롤 노출 → 정렬/필터/수식·설정 진입
 - CASE01 [정상]: ⚠ 배지 hide
 - CASE02 [미검증]: ⚠ 배지 노출
[[HBHR107_컬럼 헤더 컨트롤]]프로그래머블
30시스템 컬럼Column• #/사번/성명/팀/직급. fieldKey employeeNumber/employeeName/team/position 바인딩, read-only
• 편집 시: 차단(입력 무시). employee 마스터가 SoT
sheet_rows.employeeId → employees편집 불가
ㄴ31#Cell• 행 순번 (sortOrder). read-only
ㄴ32사번Cell• employeeNumber 바인딩. read-only
ㄴ33성명Cell• employeeName 바인딩. seeded(시드) 시트에서도 편집 가능 — 이름 변경이 아니라 행을 다른 직원으로 재연결하거나 빈 행에 성명을 타이핑해 직원을 붙이는 용도(구버전은 시드 시트 성명 열 철자 불일치로 읽기전용이던 버그, 오류 없이 조용히 막힘)
• 퇴직자 행: 성명 셀 옆 퇴직 배지 표시
 - CASE01 [시트 달 내 퇴사]: "퇴직 {M}/{D}"(노랑) — 툴팁 "{ISO} 퇴직 — 이 달이 마지막 급여예요.\n다음 달 급여대장부터는 자동으로 빠져요."
 - CASE02 [시트 달 이후 퇴사]: "퇴직예정 {M}/{D}"(라인) — 툴팁 "{ISO} 퇴직 예정이에요.\n퇴직한 다음 달부터는 급여대장에서 자동으로 빠져요."
 - CASE03 [시트 달 이전 퇴사·값 보존]: "퇴직 {M}/{D}"(회색) — 툴팁 "{ISO} 퇴직한 직원이에요.\n입력된 값이 있어 행을 남겨 뒀어요. 값을 지우면 다음 새로고침에 빠져요."
sheet_rows.employeeId → employees · resignationseeded 성명 편집(코드 반영: aa00ff8) · 퇴직 배지(코드 반영: 5c332e8) · 2026-09-25 실사: 급여대장 '26.7에 퇴직자 행이 없어 배지 실렌더 미관찰(ㄴ51 제외 규칙과 정합) — 배지 원문 실측은 퇴사자 발생 시점으로 이월
ㄴ34팀Cell• team 바인딩. read-only
ㄴ35직급Cell• position 바인딩. read-only
ㄴ36최종 근무일Cell• 급여대장에 추가된 읽기전용 식별 열 "최종 근무일"(refField resignationDate) — 월 중간 퇴사자 급여 마감일 근거. 실제 퇴사일이 있으면 표시, 없으면 공란
• 컬럼 종류 편집기 옵션 "최종 근무일 · 퇴사일 (resignationDate)"
employees(퇴사일) · resignation신설 (코드 반영: 10ae783) · 읽기전용 · 라이브 실사 확인(2026-09-25): 급여대장 '26.7 헤더에 "최종 근무일 🔒"(읽기전용 잠금 표시) 열 실측 — 사번·성명과 급여 가산일🔒·급여 마감일🔒 사이
40급여 항목 컬럼 (ƒ컬럼)Column• 기본급/수당/공제/실수령 등. 각 컬럼 ƒ로 calculator output key에 바인딩. 값은 sheet_cells.computedValue. 본 컬럼 구성은 기본 템플릿 기준이며 라이브 시트는 커스텀 열로 변형될 수 있음
 - 값 없음: 미계산 시 빈 텍스트
Calculator output key기본 템플릿 · TBU: 전체 목록
ㄴ41수식(ƒ)Fill Handle• 컬럼 값을 calculator output key / formula로 산출하는 채우기 핸들
• 조작 시: 셀 선택 후 Ctrl+D(아래 채우기)/Ctrl+R(오른쪽 채우기) → 수식 전파
Calculator RegistryAI 진입 표면 · 저장 단위 TBU
ㄴ42집계(∑)-• 컬럼 하단 합계/통계합계행(60)
ㄴ43설정 검증Badge• "⚠ 설정 확인 필요" — 컬럼 바인딩/수식 미검증 경고
ㄴ44열 원천: 반복 고정 수당Column Source• 열 설정 원천 옵션 "반복 고정 수당 — 그 달 유효한 정의 (recurring_allowance)". 시트 달에 유효한 정의(시작일 ≤ 월말 AND 종료일 없음 또는 ≥ 월초)를 행의 직원으로 매칭해 월 금액을 채움
 - 코드 필터(sourceFilter.allowanceCodes)로 특정 수당만 거름. 한 직원에 정의 여러 개면 합산
 - 종료일이 지나면 다음 달 시트부터 빠지고 지난달 시트 값은 그대로. 금액 정정은 미커밋 달에 즉시 반영
 - ref 필드: amount · code · label · validFrom · validUntil · note
recurring_allowance_definitions · [[HBAD201_직원 추가·수정 모달]] ⑤ · [[HBHR107_컬럼 헤더 컨트롤]] 열 설정신설 (코드 반영: dea7be96, #969, MED-824 — 10월 정산 준비) · 행을 만들지 않는 원천(자동 행 생성 대상 아님) · 기존 fixed_incentives 월 레코드와 별개 · TBU: 라이브 실사 이월
ㄴ45반복 고정 수당 월 중 일할Rule• 정의가 달 전체 유효 → 전액(계약 유무 무관)
• 달 중간 시작·종료 → 그 달 근로계약 기준
 - CASE01 [그 달 계약 없음]: 0 (산정 근거 없음, 10-01 결정)
 - CASE02 [조직 계약 기준 prorate(기본)]: 정의 구간 ∩ 계약 구간의 소정근로일(월~금 − 휴일) ÷ 그 달 소정근로일 — 예: 9/1~9/15 정의 300,000 → 2026-09 11/22 = 150,000
 - CASE03 [조직 계약 기준 「최종 계약」(last)]: 월말 유효면 전액, 월말 전 종료면 0
• 상시 시트는 「지금 유효한 정의」라 일할 미적용 · 정의 원금액은 extras.fullAmount로 보존(설명 도구 인용)
ㄴ44 · 조직 설정 sheetContractBasis · 휴일신설 (코드 반영: d43e9da9, #998, MED-824 QA 반려) · TBU: 라이브 실사 이월
50데이터 행Row• 시스템 컬럼 + 급여 항목 컬럼으로 구성된 직원 행
 - CASE01 [재직]: 정상 표시
 - CASE02 [휴직·퇴사]: 행 회색 처리
 - CASE03 [확정됨]: 확정 후 회색(lockedAt)
휴직·퇴사([[HBHR260_휴직·퇴사 내역 시트 (2섹션)]])회색 = 정산/확정 대상
ㄴ51퇴사자 행 제외 규칙Rule• 지난 달 이전 퇴사자(퇴사 + 유효 퇴사 기록)는 급여대장 행을 생성하지 않음(퇴사한 다음 달 급여대장부터 자동 제외). 값이 입력된 행은 보존하고 성명 옆 퇴직 배지로 이유 표시(ㄴ33)
• 재입사 가드(9/18 판정 기준 확대): 「지금 재직기」의 퇴사 기록만 유효 퇴사로 인정 — 재직기 시작일 = 입사일과 최신 근로계약 시작일 중 늦은 날, 그보다 앞선 퇴사 기록은 이전 재직기의 것으로 무효. (9/17판은 입사일만 비교 → 운영은 재입사 때 최초입사일을 갱신하지 않고 근로계약만 새로 시작해 가드가 0건 동작, 재직자 23명이 9·10월 급여대장에서 누락 — 9/18 수정 배경)
• 퇴사 → 재직 복귀 처리 시: 지금 재직기의 유효 퇴사 기록을 자동으로 닫음(안 닫으면 「퇴직」 배지가 남고 다음 달 급여대장에서 빠짐). 옛 재직기 기록은 이력으로 보존
• 같은 판정 정의를 5곳이 공유: 급여대장 행 포함·제외(materializer) · 「퇴직」 배지·「최종 근무일」 열(resolver) · 직원 마스터 시트 읽기·쓰기 · 급여 생성(generateForPeriod)
 - CASE01 [직원 행 직접 삭제 시도]: 거부 "직원 행은 직접 삭제할 수 없어요. 직원 정보에서 퇴직 처리하면 퇴직한 다음 달 급여대장부터 자동으로 빠져요."
• 유효 퇴사 판정 보강(10/7, PR #1045): 공통 판정 resignationIsEffectiveSql — 「직원 상태가 TERMINATED이거나 퇴사일이 조직 오늘 이후(퇴직 예정)」인 기록만 배지·최종 근무일·급여 마감일·대장 행 포함에 사용. 재입사 때 입사일·근로계약을 새로 쓰지 않아 지난 퇴사 기록이 「지금 재직기」 안에 남은 재직 직원에게 「퇴직」 배지·최종 근무일이 남던 운영 사례 해소. 복귀 무효화·정정 쓰기는 재직기 기준 그대로
resignation · employees.status · employment_contracts.startDate · utils/resignation-tenure신설 (코드 반영: 5c332e8 · 퇴사일 판정 10ae783) · 재입사 판정 = 최신 계약 시작 기준 + 복귀 시 퇴사 기록 자동 마감(코드 반영: dc9821a, #789) · 판정 보강(78c9a477, #1045) · TBU: 라이브 실사 이월
60합계 행Cell• 하단 컬럼별 ∑ 합계 + "{n}명" 카운트전 시트 공통
70셀 메모Button• 셀에 메모(💬)를 부착하는 기능. 미부착 시 아이콘 hover 노출
• 클릭 시: 셀에 메모 부착 (open/resolved 상태 관리)
payroll_cell_memos (columnKey, sheetRowId)open/resolved 상태
80직원 추가 진입Button• 시트에 직원(행)을 추가하는 진입점. "➕ 직원 추가"
• 클릭 시: [[HBHR202_직원 추가]] 모달 오픈
 - 버그 수정: 우클릭 행 추가 시 새 행이 최하단에 붙거나 안 보이던 문제 해소 — 500행+ 시트에서도 새 행이 슬롯 위치에 정상 배치·리페인트(sheetRow.create 반환 id를 정렬 키로 직접 사용)
[[HBHR202_직원 추가]]코드 반영: b83a51b
90전체 확정 진입Button• 시트를 정본으로 확정하는 진입점 — ★destructive. "💰 전체 확정"
• 클릭 시: [[HBHR201_전체 확정 (commit)]] 진입
[[HBHR201_전체 확정 (commit)]]
A0행 우클릭 메뉴Context Menu• 직원 행 우클릭 시 나오는 컨텍스트 메뉴. 기존 항목(정보/추가/취소/삭제)에 「직원 정보 수정」·「근태 기록 확인하기」 2항목 추가 — 7/21 베스트 요구(시트에서 근태 바로 확인, 메뉴 왕복 제거) 반영
• 클릭 시: 해당 항목 실행
sheet_rows.employeeId → employees코드 반영: 17f8589
ㄴA1직원 정보 수정Menu Item• 우클릭 메뉴에서 직원 정보 편집 위저드를 여는 항목. 공용 editEmployeeWizard 재사용
• 클릭 시: editEmployeeWizard 오픈 → 저장 시 employee-saved 이벤트로 해당 행만 갱신(전체 reload 없음)
공용 editEmployeeWizard · employees코드 반영: 17f8589 · 행 단위 갱신
ㄴA2근태 기록 확인하기Menu Item• 우클릭 메뉴에서 해당 직원 근태 팝업을 여는 항목. admin의 근태 팝업을 hr-system에 이식
• 클릭 시: 근태 팝업 오픈(시트에서 근태 바로 확인)
admin 근태 팝업 (hr-system 이식)코드 반영: 17f8589 · 메뉴 왕복 제거
ㄴA3계약 시행일 변경…Menu Item• 「이 날부터」 기본급·계약 조건이 바뀌도록 예약(칸 편집 = 정정과 구분). 툴팁(원문): "정해진 날부터 기본급·계약 조건이 바뀌도록 예약해요. 그 전달 시트 값은 그대로예요."
• 클릭 → "계약 시행일 변경" 모달 — 상세 [[HBHR210_계약급여내역 시트]] 행 메뉴 사양표 10~ㄴ13
 - CASE01 [여러 행 선택]: 비활성 "여러 행을 선택한 상태에서는 쓸 수 없어요"
sdk.employee.upsertContract(mode=effective) · [[HBHR210_계약급여내역 시트]]신설 (코드 반영: a0298fde, #962, MED-821) · 직원 기준 시트에서만 노출 · TBU: 라이브 실사 이월
20-EEmpty (0건)Text시트 행 0건 시 빈 그리드.원문 미확인 · TBU: Empty 문구 원문

그리드 단축키 (HBHR-modals 카탈로그 반영) ​

카테고리키동작
탐색↑ ↓ ← →셀 이동
탐색j / k사이드바 시트 전환 (다음 / 이전)
탐색/검색창 포커스
탐색i선택 행 정보 패널 열기 ([[HBHR109_행 정보 패널·검색]])
선택Shift + 클릭셀 범위 선택
선택우클릭 (# 열)행 메뉴 (정보 / 추가 / 취소 / 삭제 / 직원 정보 수정 / 근태 기록 확인하기) — 코드 반영: 17f8589
편집Enter선택 셀 편집 / 편집 후 아래 셀로 이동
편집Tab / Shift+Tab편집 후 오른쪽 / 왼쪽 셀로 이동
편집Esc편집 취소 / 모달 닫기
편집Ctrl+C / Ctrl+V선택 셀 TSV 복사 / 붙여넣기
편집Ctrl+D / Ctrl+R아래로 / 오른쪽으로 채우기 (Excel 스타일)
편집Ctrl+Z / Ctrl+Shift+Z되돌리기 / 다시 실행

단축키 도움말 모달 전체는 [[HBHR103_편집 메뉴·단축키]] 참조.

권한·상태 분기 요약 ​

시나리오트리거결과비고
CASE01 [시스템 컬럼 편집 시도]사번/성명/팀/직급 셀 편집차단 (read-only 바인딩, 입력 무시)employee 마스터가 SoT
CASE02 [ƒ 컬럼 편집]급여 항목 셀/수식 변경셀 업데이트 (작업공간)payroll:write (추정)
CASE03 [휴직·퇴사 행]재직상태 = 휴직/퇴사행 회색 처리정산 계산 대상
CASE04 [확정된 행]전체 확정 후행 회색 처리(lockedAt)재편집 방지

Open Question ​

  • 급여 항목 컬럼 전체 목록 (기본급/수당/공제/실수령 세부) = TBU
  • ƒ수식 저장 단위: formulaExpression(string) vs calculator key binding = TBU
  • 휴직·퇴사 행 회색 ↔ 확정 스킵(합계 0)의 연동 여부 = TBU
  • 4대보험 config "미사용"(요율 코드 내장)의 ƒ 컬럼 반영 방식 = TBU
  • Empty(20-E) 상태 노출 문구 원문 = TBU