Files
sam-docs/changes/20260319_esign_salary_year_regex_fix.md

2.5 KiB

전자계약 근로계약서 연봉계약종료연도 버그 수정

날짜: 2026-03-19 작업자: Claude Code

변경 개요

전자계약 → 새 계약 생성 → 근로계약서 작성 시 "사원 불러오기"로 사원 정보를 로드하면, 연봉계약종료연도가 시작연도 + 1년으로 반영되지 않고 시작연도와 동일하게 표시되는 버그 수정.

원인 분석

템플릿 필드 라벨과 JavaScript 정규식 패턴 간 두음법칙 불일치:

구분 유니코드
템플릿 라벨 "연봉계약종료도" 연 = U+C5F0 (ㅇ+ㅕ+ㄴ)
정규식 패턴 연봉계약.*종료.*년도 년 = U+B144 (ㄴ+ㅕ+ㄴ)

"연도"와 "년도"는 한국어 두음법칙으로 동일한 뜻이나 유니코드가 달라 정규식 매칭 실패. 이로 인해 종료연도 필드가 폴백 패턴 계약.*연도에 매칭되어 시작연도 값이 할당됨.

정상: "연봉계약종료연도" → '연봉계약.*종료.*년도' 매칭 → salaryEndYear (2026)
실제: "연봉계약종료연도" → '연봉계약.*종료.*년도' 실패 → '계약.*연도' 매칭 → salaryStartYear (2025)

수정된 파일

파일 변경 내용
mng/resources/views/esign/create.blade.php labelMap의 "년도" 정규식을 [년연]도로 변경 (7곳)

상세 변경 사항

handleEmployeeSelect() 함수의 labelMap 객체에서 "년도"를 포함하는 모든 정규식 패턴을 [년연]도로 변경하여 양쪽 표기 모두 매칭되도록 수정:

수정 전 수정 후
출생.*년도 출생.*[년연]도
연봉계약.*종료.*년도 연봉계약.*종료.*[년연]도
연봉계약.*시작.*년도 연봉계약.*시작.*[년연]도
근로계약.*종료.*년도 근로계약.*종료.*[년연]도
근로계약.*시작.*년도 근로계약.*시작.*[년연]도
계약.*종료.*년도 계약.*종료.*[년연]도
계약.*연도 계약.*[년연]도

테스트 체크리스트

  • 연봉계약종료연도가 시작연도 + 1년으로 표시되는지 확인
  • 연봉계약시작연도/월/일이 정상 반영되는지 확인
  • 근로계약 시작/종료 연도 정상 반영 확인
  • 출생년도 정상 반영 확인

관련 문서

  • mng/resources/views/esign/create.blade.php — 전자계약 생성 화면 (React + JSX)

최종 업데이트: 2026-03-19