Skip to content

HBAD241_문서 양식

(Hereby) 관리자 패널 > 문서 결재 > 문서 양식

메타앱: 관리자 패널 (포트 4001)대상 사용자: 조건1 [문서 관리 권한 보유자]프로토타입: TBU관련 정책: [[POL_권한(RBAC)]] · [[POL_법정의무교육]]Status: reviewOwner: 카나

개요

문서 양식은 결재([[HBAD240_문서 결재]])에서 사용하는 제출 문서 유형·증명서 양식·자격증 유형의 마스터 관리 화면이다. 240(결재 인박스)이 "제출된 건의 결재"를 다루는 반면, 241은 그 결재 대상이 되는 양식 자체를 정의하는 상위 마스터 화면으로, 코드 계보상 240의 하위(문서 결재 그룹)에 둔다. 상단 2탭 구성: "문서 제출 유형"(document_templates, 우측 "+ 양식 추가") / "자격증·면허"(certification_type_configs, 우측 "+ 유형 추가"). 문서 제출 유형 양식은 bodyTemplate(본문)을 갖는 증명서 양식이며, 기본 양식 선택·변수 팔레트 16종·리치 에디터 본문으로 구성된다. 자격증·면허 유형은 자격유형 마스터로, 이름·설명·상태 + 커스텀 등록 필드 정의("자격유형" 기본 필드 + 필드 추가)를 가지며 직원 자격증 요구·등록([[HBAD296_자격증·면허 관리]])의 taxonomy 원천이 된다.

문서 히스토리

  • 2026-07-06 최초 작성 - 카나/콸
  • 2026-07-10 라이브 기능 검토 반영 (변수 팔레트 16종·커스텀 필드 빌더) - 카나/콸
  • 2026-07-13 버튼 행동 명세 보강 - 카나/콸
  • 2026-07-21 GC700 깊이 재작성 - 카나/콸
  • 2026-07-21 가독성 패스 (GUIDE §7) - 카나/PM
  • 2026-07-21 셀 스타일 확정판 적용 (콸 승인) - 카나/PM

Data I/O

Server → Client

변수

메타${templates}
메타${cert_types}
메타${cert_variables}

Client → Server

액션전달 값tRPC procedure권한 토큰
양식 추가/수정 (문서)기본 양식 선택·양식명·변수 팔레트·본문document_templates upsert (추정)라벨 "문서 관리" (토큰 document:write 추정)
유형 추가 (자격증)이름·설명·상태 + 등록 필드 정의certification_type_configs upsert (isSystem=false 사용자 정의)라벨 "문서 관리"
커스텀 필드 추가필드 정의certification_type_configs.fields(jsonb) 누적라벨 "문서 관리"

메인 화면 사양표 (문서 양식)

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00진입 조건-조건1 [문서 관리 권한] 보유 시 문서 결재 그룹 > "문서 양식" 메뉴 노출. 미보유 시 hide권한 트리(문서)
01초기 상태Output• "문서 제출 유형" 탭 양식 목록 표시
10Tab• "문서 제출 유형" / "자격증·면허" 2탭 전환
• 선택 시: 해당 탭 뷰로 인라인 전환 + 우측 추가 버튼 라벨 전환
 - CASE01 [문서 제출 유형]: 우측 "+ 양식 추가"
 - CASE02 [자격증·면허]: 우측 "+ 유형 추가"
document_templates · certification_type_configs탭 전환
20양식/유형 추가Button• 현재 탭 대상의 신규 폼을 여는 버튼
• 클릭 시: 탭별 폼 분기
 - CASE01 [문서 탭]: "+ 양식 추가" → 증명서 양식 폼
 - CASE02 [자격증 탭]: "+ 유형 추가" → 자격유형 폼
탭별 폼 분기

탭A: 문서 제출 유형 (증명서 양식) 목록·폼 사양표

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
30양식 목록Grid• 문서 제출 유형 양식을 나열하는 그리드
• 컬럼(추정): 이름 / 상태 / 관리
 - CASE01 [양식 0건]: Empty state
document_templatesTBU: 컬럼·Empty 원문
ㄴ31기본 양식 선택Dropdown• 기존 양식을 기반 템플릿으로 선택해 초기 본문을 프리셋하는 드롭다운. 옵션(라이브): 재직 / 경력 / 퇴직
• 선택 시: 본문에 해당 양식 프리셋 반영
document_templates.bodyTemplate선택 사항
ㄴ32양식명 *Input• 양식 명칭 입력 (필수)
• 입력 시: 값 반영
 - CASE01 [미입력]: 저장 비활성
document_templates.name필수
ㄴ33설명Input• 양식 설명 입력 (선택)
• 입력 시: 값 반영
document_templates.description
ㄴ34변수 팔레트Palette• 증명서 변수 16종을 본문에 삽입하는 팔레트 (성명/생년월일/주소/사번/직위/부서/입사일/기관명/법인명/기관 주소/기관 전화/사업자등록번호/대표자명/용도/발급일/증명서 번호)
• 클릭 시: 본문 커서 위치에 변수 토큰 삽입
document_templates.bodyTemplate16종 · 7/10 확인
ㄴ35본문 *Editor• 리치 에디터 양식 본문 (필수, HTML/텍스트)
• 입력 시: 값 반영
document_templates.bodyTemplate · cssTemplate필수
ㄴ36증명서 미리보기Button• 하단 "증명서 미리보기" 버튼
• 클릭 시: 변수 치환 미리보기 렌더
document_templates.bodyTemplateTBU: 미리보기 UI
ㄴ37저장/취소Button• 하단 "취소" / "저장" 버튼
• 클릭 시: 저장 → upsert 후 목록 반영, 취소 → 폼 종료
 - CASE01 [저장 성공]: document_templates upsert 반영
document_templates실패 TBU

탭B: 자격증·면허 유형 목록·폼 사양표

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
40유형 목록Grid• 자격증·면허 유형을 나열하는 그리드
• 컬럼: 이름 / 설명 / 상태 / 관리
 - CASE01 [유형 0건]: Empty state
certification_type_configsTBU: Empty 원문
ㄴ41직종 *Dropdown• 자격유형이 속한 직종 선택 (필수)
• 선택 시: 값 반영
직종 마스터 (원천 TBU)필수
ㄴ42새 직종 추가Button/Input• 직종 목록에 없는 직종을 신규 등록
• 입력 시: 직종 목록에 추가
직종 마스터
ㄴ43직종 목록List• 등록된 직종을 나열하는 목록직종 마스터
ㄴ44자격유형 *Input• 자격증/면허 유형명 입력 (필수). 직원 자격증 등록의 자격유형 선택지가 됨
• 입력 시: 값 반영
certification_type_configs.name/code · [[HBAD296_자격증·면허 관리]]필수
ㄴ45커스텀 필드 빌더Builder• "자격유형" 기본 필드 + "필드 추가"로 커스텀 등록 필드를 정의하는 빌더
• "필드 추가" 클릭 시: fields(jsonb)에 필드 누적
 - CASE01 [기본 필드]: 삭제 불가
 - CASE02 [추가 필드]: 삭제 가능(추정)
certification_type_configs.fields(jsonb)7/10 확인 · TBU: fields 스키마
ㄴ46시스템 유형-• 시스템 기본 유형 여부 표기
 - CASE01 [isSystem=true]: 시스템 기본 (수정/삭제 제약 추정)
 - CASE02 [isSystem=false]: 사용자 정의
certification_type_configs.isSystemTBU: 제약 상세
ㄴ47저장/취소Button• "취소" / "저장" 버튼
• 클릭 시: 저장 → upsert 후 목록 반영, 취소 → 폼 종료
 - CASE01 [저장 성공]: certification_type_configs upsert 반영
certification_type_configs실패 TBU

ERD 근거

엔티티핵심 컬럼용도
document_templatescode(50) · name · bodyTemplate · cssTemplate · isActive · sortOrder · description문서 제출 유형 탭 — 양식명(name)·본문(bodyTemplate) 대응
certification_type_configscode(64) · name · isActive · isSystem · sortOrder · fields(jsonb)자격증·면허 탭 — 자격유형(name). isSystem=시스템 기본 vs 사용자 정의. fields=jsonb 추가 필드 정의(추정)

권한·상태 분기 요약

시나리오트리거결과 화면비고
CASE01 [문서 양식 추가]문서 탭 "+ 양식 추가"증명서 양식 폼 (변수 팔레트 16종)권한 "문서 관리"
CASE02 [양식 저장]양식명*·본문* 입력 → 저장document_templates upsert
CASE03 [증명서 미리보기]"증명서 미리보기"변수 치환 미리보기미리보기 UI = TBU
CASE04 [자격 유형 추가]자격증 탭 "+ 유형 추가"자격유형 폼 + 커스텀 필드 빌더isSystem=false 사용자 정의
CASE05 [커스텀 필드]"필드 추가"fields(jsonb) 누적 ("자격유형" 기본 삭제 불가)7/10 확인

Open Question

  • 직종 마스터 엔티티 — census "직종*/새 직종 추가/직종 목록"이 certification_type_configs와 별개 테이블인지 fields(jsonb) 내 정의인지. TBU.
  • certification_type_configs.fields(jsonb) 스키마 — 자격증 유형별 커스텀 필드 정의 구조. TBU.
  • "문서 제출 유형"이 결재 대상 문서 양식인지 증명서 발급 양식(certificate_issuances.templateId)인지, 둘 다인지. TBU.
  • 양식 활성/비활성(isActive) 토글 UI 및 sortOrder 편집 동선. TBU.
  • 문서 제출 유형 목록 컬럼·Empty 원문·저장 실패 동작. TBU.
  • 증명서 미리보기 렌더 UI·isSystem 유형 수정/삭제 제약. TBU.