Skip to content

HBAD290_전자 서명 ​

(Hereby) 관리자 패널 > 기타 > 전자 서명

메타앱: 관리자 패널 (HBAD)대상 사용자: 조건1 [문서 관리] 권한 보유 역할프로토타입: TBU관련 정책: [[POL_급여정본경계]] · [[POL_권한(RBAC)]]Status: confirmed (전송 flow 실행 검증 · 7/12)Owner: 카나

개요 ​

전자 서명은 관리자가 문서 템플릿을 직원에게 전송하고, 발송·서명·수신 상태를 추적하는 화면이다. 사이드바 "기타" 그룹의 "전자 서명" 진입점이다."전자서명 목록"은 발송 건별 상태 추적 그리드(9컬럼)이며 e_sign_records를 근거로 한다.2026-09-11(#663·CS-LOC-260911-0004·0005) 툴바 재편 — 툴바에서 인라인 직원/템플릿 피커를 걷어내고 목록 검색창(플레이스홀더 "직원명 · 사번 · 이메일로 목록 검색", 서버 list.search) + 상태 필터 + [계약서 템플릿](등록 템플릿 전체 목록 모달·새로고침) · [계약서 추가하기](Hereby Sign 템플릿 관리 화면 새 창; integrationStatus.templateManageUrl — env HEREBY_SIGN_TEMPLATE_MANAGE_URL 우선, 없으면 자격증명 Open API 오리진, 둘 다 없으면 버튼 숨김) · [서명 요청 보내기] 버튼만 남긴다.신규 발송은 [서명 요청 보내기] 일반 모달(.ds-modal 580)에서 생성한다 — 1. 서명할 직원 → 2. 계약서 템플릿 단계 라벨, 수신 이메일 확인 줄(선택 직원 이메일 자동 채움), 이메일 없음·템플릿 없음 경고, "보내기를 누르면 Hereby Sign 작성 화면이 새 창으로 열려요" 안내를 포함(모달 열림 중 30초 폴링 skip, 닫기는 공용 closeGuard). 실행 시 목록 최상단에 신규 행이 추가되고 수신자 이메일은 선택 직원의 이메일로 자동 채워지고, 초기 상태는 "작성중인 계약", 전송일시가 기록된다(7/12 실행 검증). 발송·서명 이력은 급여명세서 등 문서 교부의 입증층으로, HR 급여 관리 앱의 발송 시트([[HBHR270_전자서명 발송·eCount 연동 시트 (2섹션)]] 섹션 A, 🔒잠금)와 동일한 e_sign_records 원천을 공유한다.

문서 히스토리 ​

  • 2026-07-06 최초 작성 - 카나/콸
  • 2026-07-10 라이브 기능 검토 반영 (연결 상태·상태 필터 enum) - 카나/콸
  • 2026-07-12 실행 검증 반영 (전송 flow·자동 채움·초기 상태, 콸 승인) - 카나/콸
  • 2026-07-13 버튼 행동 명세 보강 - 카나/콸
  • 2026-07-21 GC700 깊이 재작성 - 카나/콸
  • 2026-07-21 가독성 패스 (GUIDE §7) - 카나/PM
  • 2026-07-21 셀 스타일 확정판 적용 (콸 승인) - 카나/PM
  • 2026-08-06 Hereby Sign 연동 프로비저닝 게이트 반영(c9bde29) - 카나/PM
  • 2026-09-05 리스트 새로고침 시 Sign 상태 동기화 + 최신순 정렬 반영(#614 머지 9/4, a5f3341) — 목록 갱신 시 서명 상태가 Sign 서버와 sync, 기본 정렬 최신 생성순. 세부 UI 표기는 실사 대기 - 카나/PM
  • 2026-09-11 툴바 재편·서명 요청 모달 신설 반영(#663 머지, 9b36a55·c0a1a31) — 목록 검색창+[계약서 템플릿]/[계약서 추가하기]/[서명 요청 보내기]로 정리, 인라인 피커→가이드 모달(1.직원→2.템플릿), 열 제목 "링크"→"계약서"·"관리"→"상태 확인". 라이브 실증(okbest.dev, 조회·모달만). 근거 = 커밋 + 라이브 이중 - 카나/PM
  • 2026-10-22 (10/21 머지분, PR #1257 92adb9d) 필터 줄 DS 필터바 전환 라이브 실측 — 상태 콤보(전체 상태/작성 중/예약/실패/대기 중/체결/비활성) + 검색 입력 「이름 · 사번 · 이메일 검색」 이 DS 필터바 규약으로 정렬, 연결 상태 배지(「전자서명 연결 정상」·「상태 수신 대기」) 병행 표시(13·ㄴ13-1 갱신). 스샷 live-1022-ad-esign-filterbar.png - 카나/PM

Data I/O ​

Server → Client

변수

메타$
메타$
메타$
메타$
메타$
메타$
메타$

Client → Server

액션전달 값tRPC procedure권한 토큰
전송herebyTemplateId · 수신자(employeeId)e_sign_records 생성 (sentById · sentAt 기록)문서 관리 (라벨 기반, 매핑 TBU)
서명 링크 열기herebyRedirectUrl(외부 이동)문서 관리 (추정)
상태 필터status enum목록 재조회문서 관리(조회)

외부 통합

외부 시스템데이터동기/비동기비고
Hereby 전자서명herebyTemplateId / herebyContractId · herebyRedirectUrl비동기(연동 상태 수신)외부 서명 플로우. 연결 상태 = "전자서명 연결 정상" / "상태 수신 대기"
HR 급여 시트 (HBHR270)동일 e_sign_records 원천 공유동기 참조섹션 A 🔒잠금 교부 입증층

전자 서명 사양표 ​

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00진입 조건-• 조건1 [문서 관리] 보유 시 사이드바 "기타" 그룹에 노출권한 트리(문서)
01초기 상태Output• 진입 시 전자서명 목록(9컬럼) + 연결 상태 인디케이터 표시. 전송 버튼은 disabled 상태 (연동 게이트 통과 시)e_sign_records[]
02연동 프로비저닝 게이트Output• 연동 상태(esignIntegrationStatus.status)가 'linked'가 아니면 템플릿·기록 영역을 숨기고 상단에 ds-notice 배너 표시. 'linked'일 때만 기존 템플릿·기록 화면 노출
• 배너 제목/톤 (CASE 구조):
 - CASE01 [provisioning]: "전자서명 연동을 설정하는 중입니다"
 - CASE02 [error·revoked]: "전자서명 연동에 문제가 있습니다" (danger 톤)
 - CASE03 [그 외]: "전자서명 연동이 필요합니다" (info 톤)
• 배너 본문:
 - CASE01 [errorMessage 있음]: errorMessage 내용
 - CASE02 [errorMessage 없음 · non-provisioning]: "관리자 계정으로 Hereby Sign 연동을 설정하면 전자서명을 사용할 수 있습니다."
• "연동 설정" 버튼 (라벨/상태 CASE 구조):
 - CASE01 [error·revoked]: "다시 시도"
 - CASE02 [실행 중]: "설정 중..."
 - CASE03 [provisioning]: 비활성
• 클릭 시: 조직 프로비저닝 자동 실행(provisionESignIntegration) → 조직 자동 생성
esignIntegrationStatus.status (enum: provisioning / linked / error / revoked) · esignIntegrationStatus.errorMessage · provisionESignIntegrationc9bde29 · 백엔드 hereby-sign-provisioning.service
10연결 상태Badge• 외부 전자서명 연동 상태를 표시하는 인디케이터
 - CASE01 [연동 정상]: "전자서명 연결 정상"
 - CASE02 [상태 미수신]: "상태 수신 대기"
Hereby 전자서명 연동
11직원 검색Search• 연동 상태 'linked'일 때만 노출 (§02 게이트 통과 시)
• 발송 대상 직원을 검색·선택하는 드롭다운. placeholder "직원 검색 (이름 / 사번 / 이메일)...", 후보 항목 표기 "이름 (사번)"
• 선택 시: 발송 대상 직원 확정 (전송 선행 조건)
employeesTBU: 검색 0건
12템플릿 검색Search• 연동 상태 'linked'일 때만 노출 (§02 게이트 통과 시)
• 발송할 문서 템플릿을 검색·선택하는 드롭다운. placeholder "템플릿 검색..." (예: "표준근로계약서 (기간의 정함이 없는 경우)")
• 선택 시: 발송 템플릿 확정 (전송 선행 조건)
herebyTemplateIdTBU: 후보 0건
13상태 필터 (DS 필터바)Filter• 발송 상태별로 목록을 거르는 드롭다운. "전체 상태" + 작성 중 / 예약 / 실패 / 대기 중 / 체결 / 비활성
• 선택 시: 해당 상태 목록 재조회
 - CASE01 [필터 결과 0건]: 빈 상태
• (10/21 머지, #1257 92adb9d — 10/22 실측) 필터 줄이 DS 필터바 규약으로 전환 — 상태 콤보 + 검색 입력(「이름 · 사번 · 이메일 검색」)이 공용 필터바 스타일로 정렬, 목록 제목 「전자서명 목록」·연결 상태 배지 병행
e_sign_records.statusDS 필터바 전환(#1257) · 10/22 실측
14전송Button• 선택한 직원·템플릿으로 신규 발송 건을 생성하는 기능. 직원·템플릿 선택 전에는 disabled
• 클릭 시: 즉시 실행 → 목록 최상단에 신규 행 추가 (수신자 이메일 = 직원 이메일 자동 채움 · 초기 상태 "작성중인 계약" · 전송일시 기록, 7/12 실행 검증)
 - CASE01 [직원·템플릿 미선택]: disabled
 - CASE02 [둘 다 선택]: 활성
e_sign_records insert · Hereby 연동발송 트리거 · TBU: 전송 실패 피드백(단건 정상 flow만 검증)
20전자서명 목록Grid• 연동 상태 'linked'일 때만 노출 (§02 게이트 통과 시, 기록 영역)
• 발송 건별 상태를 추적하는 그리드 (9컬럼, 하단 "목록 컬럼" 참조). 페이지네이션 포함
 - CASE01 [발송 0건]: 빈 상태 (원문 문구 TBU)
e_sign_records[]교부 입증층 · Empty 원문 TBU
30페이지네이션Pagination• 목록 페이지를 이동하는 컨트롤 (« ‹ 1 › »)
• 클릭 시: 해당 페이지 목록 표시
-
90권한별 차이-• 조건1 [문서 관리] 미보유 시 "기타 > 전자 서명" 메뉴 미노출RBAC

전자서명 목록 컬럼 (9컬럼, 라이브 census 원문) ​

#컬럼타입설명연관 (ERD)
1사번Text수신 직원 사번employees.employeeNumber (employeeId)
2직원Text수신자 성명 (발송 시점 스냅샷)e_sign_records.recipientNameSnapshot
3템플릿Text발송 문서 템플릿명 (스냅샷)e_sign_records.templateNameSnapshot · herebyTemplateId
4수신자 이메일Text수신자 이메일 주소 (스냅샷). 전송 시 직원 이메일 자동 채움e_sign_records.recipientEmailSnapshot
5상태Badge상태 배지 (하단 "상태 enum" 표 참조). 값 없음: 미서명 등은 배지 표기만e_sign_records.status · errorMessage
6전송일시DateTime발송 일시 (교부 시점 입증). 전송 시 기록e_sign_records.sentAt
7서명일시DateTime수신자 서명 완료 일시. 미서명 시 공란("-")e_sign_records.signedAt
8계약서LinkHereby 서명 페이지 링크("Hereby Sign에서 계약서 열기"). 없으면 hide(추정). 열 제목 "링크"→"계약서"(#663, 9/11)e_sign_records.herebyRedirectUrl
9상태 확인Button행 상태 갱신("Hereby Sign의 최신 서명 상태 가져오기"). 열 제목 "관리"→"상태 확인"(#663, 9/11)—

상태 enum (exec-diff §5 원문) ​

구분값근거
상태 필터 enum (6종)작성 중 / 예약 / 실패 / 대기 중 / 체결 / 비활성라이브 필터 드롭다운 원문
배지 표기 추가 관찰 (3종)작성중인 계약 / 예약 전송 / 내 입력 대기전송 직후 신규 행 초기 상태 = "작성중인 계약" (7/12 실행 검증)
데이터 상태값계약 파기필터 enum에 없음 — 데이터상 존재 (라이브 관찰)

권한 / 상태 요약 ​

시나리오트리거결과 화면비고
CASE01 [선택 전]진입전송 disabled실발송 방지
CASE02 [직원·템플릿 선택]둘 다 선택전송 활성전송 선행 조건
CASE03 [전송 실행]전송 클릭신규 행(이메일 자동 채움 · 상태 "작성중인 계약" · 전송일시)7/12 실행 검증
CASE04 [수신자 서명]Hereby 서명 완료signedAt 기록 · 상태 "체결"(추정)외부 flow
CASE05 [권한 미보유]메뉴 접근미노출RBAC gate

Open Question ​

구분미확인 항목
상태 enum"계약 파기" · "작성중인 계약" / "예약 전송" / "내 입력 대기" 배지의 status enum 매핑(상태 필터 6종과의 관계)
전송 flow"전송" 실행 후 수신자 다건 발송·계약 연동(herebyContractId) 여부 (단건 전송 flow는 검증됨)
목록 관리"관리" 컬럼 동작(재전송/취소/상세 보기)
에러·Empty전송 실패 피드백 · 직원/템플릿 검색 결과 0건 · 목록 Empty 원문 처리 (라이브 미검증)
앱 경계HBAD290 전자 서명(관리자 발송)과 HBHR270 발송 시트(급여 명세서 교부)의 발송 주체·문서 유형 경계

변경 이력 ​

일자티켓변경
2026-09-11CS-LOC-260911-0005툴바의 직원 검색·템플릿 검색·전송(§12·§13·§14)을 「서명 요청 보내기」 일반 모달로 이동. 툴바에는 목록 검색창(직원명·사번·이메일)과 [서명 요청 보내기]만 남김. 모달은 1. 서명할 직원 → 2. 계약서 템플릿 단계 라벨, 수신 이메일 확인, 이메일 없음·템플릿 없음 경고, 다음 단계(새 창) 안내를 포함. 표 「링크」·「관리」 열 제목은 「계약서」·「상태 확인」으로.
2026-09-11CS-LOC-260911-0004툴바에 [계약서 템플릿](등록 템플릿 전체 목록 모달 · 새로고침)과 [계약서 추가하기](Hereby Sign 템플릿 관리 화면 새 창, integrationStatus.templateManageUrl — env HEREBY_SIGN_TEMPLATE_MANAGE_URL 우선, 없으면 자격증명 Open API 오리진) 추가.