HBHR107_컬럼 헤더 컨트롤
(Hereby) HR 급여 관리 > [[HBHR100_시트 워크스페이스 (공통 Shell)]] > 시트 그리드 > 컬럼 헤더 컨트롤
| 앱 | HR 급여 관리 (HBHR) |
| 대상 사용자 | 조건1 [HR_ADMIN] / 조건2 [SUPER_ADMIN] |
| 프로토타입 | TBU |
| 관련 정책 | [[POL_급여정본경계]] |
| Status | review |
| Owner | 카나 (PM) |
개요
- 급여대장 시트의 프로그래머블 컬럼 헤더 한 칸을 구성하는 개별 컨트롤(라벨 · ƒ 수식 · ⚙ 설정 · ∑ 집계 · fieldKey · ⇅ 정렬 · 필터 · ⌄ 메뉴 · ⚠ 배지)을 요소 단위로 정의한다.
- 컬럼 ƒ(수식) = 컬럼 값을 산출하는 표면이자 Module Manager Calculator Registry 연동 진입점(HBMM01: 근로계약 11키·초과근무 16키·4대보험 5키 등 9 calculator)이다.
- 시스템 컬럼 employeeNumber / employeeName / team / position 4종은 read-only 바인딩으로 재바인딩 불가하며, AI(formulaFromNL)는 제안까지만 관여하고 commit은 항상 사람이 한다 ([[POL_급여정본경계]]).
문서 히스토리
| 날짜 | 작성자 | 팀 | 변경 내용 |
|---|---|---|---|
| 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 | 셀 스타일 확정판 적용 (콸 승인) |
Data I/O
Server → Client
| 변수 | 엔티티.컬럼 | 값 없을 때 | 비고 |
|---|---|---|---|
| $ | 컬럼 표시명 (사용자 지정 라벨) | fieldKey로 fallback (추정) | 예 "사번" |
| $ | 컬럼 바인딩 필드 키 | 빈 텍스트 | 예 "(employeeNumber)" |
| $ | 컬럼 ƒ ↔ Calculator output key (추정) | 자유 수식 or 미바인딩 → 라벨 hide | 저장 단위 TBU |
| $ | 바인딩 원천 "← {시트명}: {항목명}" | 자유 수식·시스템 컬럼이면 hide | 예 "← 치료일 인센티브: 청구금액" |
| $ | ∑ 집계 결과 (합계·평균 등) | 빈 텍스트 | 시트 하단 합계행 반영 |
| $ | 바인딩/수식 미검증 여부 (추정) | 검증 완료 시 hide | "⚠ 설정 확인 필요" 배지 |
Client → Server
| 액션 | 전달 값 | tRPC procedure | 권한 토큰 |
|---|---|---|---|
| ƒ 수식 편집/바인딩 | columnKey, formula | calculatorKey | sdk.payrollSheet.setColumnFormula() (추정) | payroll:write (추정) |
| ⚙ 컬럼 설정 | columnKey, fieldBinding, type | TBU | payroll:write (추정) |
| ⇅ 정렬 추가 | columnKey, direction | TBU | payroll:read (추정) |
| 필터 추가 | columnKey, condition | TBU | payroll:read (추정) |
| AI formulaFromNL 제안 | naturalLanguage → formula 제안 | sdk.formulaFromNL() (추정) | 제안까지만, commit은 사람 ([[POL_급여정본경계]]) |
화면 플로우
컬럼 헤더 컨트롤 사양표
| 번호 | 항목/기능명 | 타입 | 사양 및 기능 설명 | 연관/영향 범위 | 비고 |
|---|---|---|---|---|---|
| 00 | 노출 조건 | - | 급여대장 등 시트 그리드의 컬럼 헤더 행에 상시 노출. 헤더 hover/클릭 시 하위 컨트롤(ƒ/⚙/∑/⇅/⌄) 활성 | [[HBHR200_급여대장 시트]] 급여대장 시트 | |
| 01 | 초기 상태 | - | 라벨 + fieldKey 표기 기본 노출. ⚠ 배지는 컬럼 바인딩/수식 검증 상태에 따라 조건부 노출(검증 완료 시 hide) | ||
| 10 | 헤더 구성(컨테이너) | - | 한 컬럼 헤더 = 라벨 + "ƒ + ⚙ + ∑ + (fieldKey) + ⇅ + ⌄" 컨트롤 + "⚠ 설정 확인 필요" 배지(조건부) 조합. 하위 요소를 개별 해부(11~19) | 프로그래머블 컬럼 | |
| ㄴ11 | 라벨 (컬럼명) | Text | • 컬럼 표시명(예: 사번)을 나타내는 사용자 지정 라벨. 시스템 컬럼은 고정 라벨과 결합 - 값 없음: 라벨 미지정 시 fieldKey 표기로 대체(추정) | ||
| ㄴ12 | ƒ 수식 | Control | • 컬럼 값을 산출하는 ★표면 — 수식 또는 Calculator output key 바인딩 진입점. Module Manager(HBMM01) Calculator Registry 연동: 컬럼 ƒ ↔ output keys(근로계약 11키·초과근무 16키·4대보험 5키 등 9 calculator) • 클릭 시: 수식/바인딩 편집 진입. 바인딩 시 헤더에 "← {시트명}: {항목명}" 라벨 노출(예 "← 치료일 인센티브: 청구금액") - CASE01 [바인딩됨]: calculator key 소비 - CASE02 [자유 수식]: formula string - 권한: 시스템 컬럼(50)은 ƒ 편집 불가(read-only) - 에러: 미검증 바인딩 시 ⚠ 배지(80) 노출 | HBMM01 Calculator Registry · [[HBHR105_삽입 메뉴]] 삽입(ƒ) · [[HBHR106_데이터 메뉴]] 새로고침(재계산) · 80 ⚠ 배지 | ★AI(formulaFromNL) 표면 · 제안까지만 · TBU: formula string vs calculator key 저장단위 |
| ㄴ13 | ⚙ 설정 | Control | • 컬럼 설정(필드 바인딩/타입 등)을 여는 컨트롤. 시스템 컬럼은 필드 바인딩 read-only • 클릭 시: 컬럼 설정 진입 | fieldKey 바인딩(50) | TBU: 설정 모달 세부 필드 |
| ㄴ14 | ∑ 집계 | Control | • 컬럼 하단 합계/통계(합계·평균 등)를 산출해 시트 하단 합계행에 반영하는 컨트롤 • 클릭 시: 집계 방식 선택 UI 노출(TBU) → 집계 결과 합계행 반영 - 값 없음: 집계 대상 0건이면 빈 텍스트(추정) | [[HBHR100_시트 워크스페이스 (공통 Shell)]] 합계행("{n}명"+∑) | TBU: 집계 선택 UI |
| ㄴ15 | (fieldKey) | Text | • 필드 바인딩 키 표기 — 예 "(employeeNumber)" / "(employeeName)" / "(team)" / "(position)". 시스템 컬럼 4종은 read-only 바인딩(50에서 별도 강조) | 엔티티 필드(추정) | 바인딩 키 표기 |
| ㄴ16 | ⇅ 정렬 | Control | • 컬럼 기준 정렬 컨트롤. 헤더 버튼 "정렬 추가"(20)로 정렬 기준 등록 • 클릭 시: 해당 컬럼 기준 정렬 | [[HBHR106_데이터 메뉴]] "↕ 시트 정렬" | "정렬 추가" |
| ㄴ17 | 필터 | Control | • 컬럼 필터 컨트롤. 헤더 버튼 "필터 추가"(21)로 조건 등록 • 클릭 시: 해당 컬럼 필터 진입 | [[HBHR106_데이터 메뉴]] "🔽 필터 만들기" | "필터 추가" |
| ㄴ18 | ⌄ 컬럼 메뉴 | Dropdown | • 컬럼 단위 드롭다운 메뉴 • 클릭 시: 컬럼 메뉴 노출(세부 항목 TBU) | ㄴ 세부 항목 취합 → OQ | TBU: 드롭다운 항목 |
| ㄴ19 | ← 바인딩 라벨 | Text | • 수식 열이 다른 시트 항목에 바인딩된 경우 "← {시트명}: {항목명}" 형태로 원천을 노출(예 "← 치료일 인센티브: 청구금액") - CASE01 [바인딩됨]: 라벨 노출 - CASE02 [자유 수식·시스템 컬럼]: 라벨 없음(hide) | ㄴ12 ƒ 수식 · [[HBHR251_치료실 인센티브 시트]] 관찰 | 바인딩 원천 표기 |
| 20 | 헤더 버튼 "정렬 추가" | Button | • 해당 컬럼을 정렬 기준으로 추가하는 버튼 • 클릭 시: 해당 컬럼 정렬 기준 추가 | ㄴ16 ⇅ · [[HBHR106_데이터 메뉴]] 시트 정렬 | TBU: 실패 피드백 |
| 21 | 헤더 버튼 "필터 추가" | Button | • 해당 컬럼에 필터 조건을 추가하는 버튼 • 클릭 시: 해당 컬럼 필터 조건 추가 - Empty: 조건 불일치 시 표시 행 0건 | ㄴ17 필터 · [[HBHR106_데이터 메뉴]] 필터 만들기 | |
| 50 | fieldKey 바인딩 (read-only 강조) | - | • 필드 바인딩 키를 컬럼에 매핑. 시스템 컬럼 4종 = read-only: employeeNumber / employeeName / team / position — 수식/필드 재바인딩 불가. 조건1 [HR_ADMIN] 이어도 시스템 컬럼 재바인딩 불가. 그 외 급여 항목 컬럼은 ƒ/⚙로 바인딩 편집 가능 | ㄴ13 ⚙ 설정 · ㄴ15 fieldKey | ★시스템 컬럼 read-only |
| 80 | ⚠ "설정 확인 필요" 배지 | Badge | • 컬럼 바인딩/수식 미검증 경고 배지 — Calculator 바인딩 미검증 시 "⚠ 설정 확인 필요" 노출 - CASE01 [검증 완료]: 배지 hide - CASE02 [미검증]: "⚠ 설정 확인 필요" 노출 | ㄴ12 ƒ 수식 · HBMM 바인딩 · commit preflight([[HBHR201_전체 확정 (commit)]]) | 조건부 노출 · TBU: 검증 트리거 시점 |
시스템 컬럼 (read-only 바인딩) 강조
| fieldKey | 표기 | 의미 | 편집 |
|---|---|---|---|
| employeeNumber | (employeeNumber) | 사번 | read-only (재바인딩 불가) |
| employeeName | (employeeName) | 성명 | read-only |
| team | (team) | 팀 | read-only |
| position | (position) | 직급 | read-only |
위 4종 시스템 컬럼은 엔티티 필드에 직결된 고정 바인딩이므로 ƒ 수식/필드 재바인딩이 불가하다. 나머지 급여 항목 컬럼만 ƒ(수식)·⚙(설정)로 Calculator output key에 바인딩·편집한다.
AI 접점 참조
컬럼 ƒ(수식) 표면에서 formulaFromNL 스킬이 자연어 → 컬럼 수식/계산기 바인딩을 제안한다(자동 삽입 X, 사용자 확인 후 적용). 안전 경계 = Sheet 단계 preview/preflight까지만이며, commit·PayrollLedger 변경은 항상 사람이 실행한다 ([[POL_급여정본경계]], [[HBHR201_전체 확정 (commit)]]). ⚠ 설정 확인 필요(80) 배지 및 commit preflight가 미검증 바인딩을 확정 직전에 경고한다.
권한·상태 분기 요약
| 시나리오 | 트리거 | 결과 | 비고 |
|---|---|---|---|
CASE01 [바인딩됨] | ƒ ↔ calculator key 결합 | "← {시트명}: {항목명}" 라벨 노출 | 재계산 시 값 소비 |
CASE02 [미검증] | 바인딩 검증 실패 | "⚠ 설정 확인 필요" 배지 | commit preflight 경고 |
조건1 [HR_ADMIN]/조건2 [SUPER_ADMIN] | 급여 항목 컬럼 ƒ 편집 | 편집 가능 | 시스템 컬럼 4종은 read-only |
Open Question
- 컬럼 ƒ 저장 단위(formula string vs calculator key 참조 vs 혼합) = TBU
- ⚙ 컬럼 설정 모달 세부 필드(타입 옵션 등) = TBU
- ⌄ 컬럼 메뉴 드롭다운 세부 항목 = TBU
- ⚠ 배지 검증 트리거(저장 시 vs 재계산 시 vs commit preflight) 정확 시점 = TBU
- 정렬 추가 / 필터 추가와 [[HBHR106_데이터 메뉴]] 정렬·필터의 상태 공유 여부(동일 store) = TBU