인터넷이 차단된 사내 PC 한 대에서 단독 기동되는 근무평정 관리 웹입니다. 산식을 순수함수 엔진 하나로 통일해 화면값과 저장값이 어긋나지 않도록 구축·납품했습니다.
인터넷이 완전히 차단된 사내 PC 한 대에서 단독으로 도는 근무평정 관리 웹을 구축·납품했습니다. 운전원 1,000명 규모의 근무평정을 담당자 서너 명이 엑셀 워크북으로 관리하던 업무를, 명단 관리부터 정량 7·정성 2 지표 입력, 직급별 정원 배분과 등급 산출, 결과 엑셀 내보내기와 결재용 인쇄까지 하나의 시스템으로 옮겼습니다. 관리자 웹 11개 화면, API 40개 엔드포인트, 6개 테이블을 신규로 만들었고, 웹·API·데이터베이스 세 컨테이너를 명령 한 번으로 함께 띄웁니다. 이미지를 tar로 반입해 오프라인에서 설치하며, 화면 폰트까지 번들해 외부로 나가는 요청이 한 건도 없습니다. 화면은 담당자의 업무 순서를 그대로 따릅니다. 대시보드에서 등급 배분과 진행률을 확인하고, 운전원 관리에서 명단을 정비한 뒤, 평가 입력에서 지표 점수를 채웁니다. 결과·등급 화면에서 산출 결과를 확인하고 개인별 산출 근거를 열어 보며, 평가 이력에서 기간별 결과를 비교합니다. 수식 관리에서 가중치와 등급 컷오프를 조정하고, 검산 화면에서 기존 엑셀과 대조하며, 병가 대조로 근태 반영분을 맞추고, 계정 관리와 작업 로그로 운영을 통제합니다. 이 구조는 근무평정에 한정되지 않고, 외부망을 쓸 수 없는 조직의 인사·심사·정산 업무에 같은 골격으로 응용할 수 있도록 설계했습니다.
작업 범위
주요 업무









담당자가 쓰던 엑셀에서 정량 7·정성 2 지표와 정원 배분·정규화 규칙을 역추적해 요구사항 정의서와 화면 설계서로 확정했습니다.
평가·기간·설정·감사 등 6개 테이블을 설계하고 산식을 순수함수 패키지로 분리했습니다. 전수 재현 테스트를 함께 만들어 이후 변경을 게이트로 묶었습니다.
대시보드·명단·평가 입력·결과·이력·수식 관리 화면을 만들고 워크북 업로드와 전수 대조 화면을 붙였습니다.
컴포즈 단독 기동 구성, 루프백 바인딩, 권한 이중 차단, 세션 만료, 백업·복구 스크립트를 정비했습니다.
인터넷이 없는 현장 PC에 이미지를 반입해 설치하고 담당자와 함께 실제 데이터로 결과를 대조했습니다. 이어서 사용 매뉴얼을 포함한 산출물 6종을 정리해 인계하고 준공 서류를 제출했습니다.
총점·환산·순위·정원배분·정규화·등급 계산을 순수함수 패키지 하나에 모으고 프론트 미리보기와 백엔드 확정 계산이 같은 코드를 씁니다. 계산을 두 번 구현하지 않으므로 두 값이 어긋날 수 없습니다.
산식을 프론트와 백엔드가 각각 구현하면 반드시 갈라집니다. 한 곳에 두고 양쪽이 import 하는 것이 유일한 해법이었습니다.


직급별 정원 컷오프로 변환등급을 정하고 등급 그룹 안에서 총점을 정규화해 결정등급을 산출합니다. 개인별 계산 경로를 단계별로 펼쳐 보고, 기존 엑셀과 전 인원·다섯 항목을 대조해 모두 일치함을 확인했습니다.
평가는 결과보다 근거를 설명할 수 있어야 받아들여집니다. 숫자가 나온 경로를 되짚게 하고, 기존 엑셀과 전수 대조해 의심을 없앴습니다.


외부 통신이 전혀 없는 사내 PC 한 대에서 명령 한 번으로 웹·API·데이터베이스가 함께 뜨도록 구성했습니다. 이미지를 tar로 반입해 오프라인 설치하며 폰트까지 번들해 외부 요청이 없습니다.
포트를 모든 인터페이스에 열면 랜선을 꽂는 순간 사내망 어느 PC에서든 열립니다. 루프백에 고정해 접속 범위를 서면 약속대로 묶었습니다.


수식 관리와 작업 로그는 마스터 계정에만 노출되고 서버에서도 차단합니다. 평가 기간을 잠그면 입력이 동결되며 등록·수정·삭제가 감사 로그에 남습니다.
메뉴만 숨기는 권한은 권한이 아닙니다. 화면과 서버 양쪽에서 막아야 우회가 없습니다.


1,000명 규모 명단을 엑셀로 일괄 등록하거나 개별 등록·수정하고 사번·이름 검색과 직급 필터로 대상을 찾습니다. 평가 입력에서 진행 상태를 보며 점수를 채우고 병가 대조로 근태 반영분을 맞춥니다.
담당자 서너 명이 1,000명을 다루므로, 어디까지 입력했는지가 항상 보여야 일이 끊기지 않습니다.


담당자가 쓰던 엑셀에서 정량 7·정성 2 지표와 정원 배분·정규화 규칙을 역추적해 요구사항 정의서와 화면 설계서로 확정했습니다.
평가·기간·설정·감사 등 6개 테이블을 설계하고 산식을 순수함수 패키지로 분리했습니다. 전수 재현 테스트를 함께 만들어 이후 변경을 게이트로 묶었습니다.
대시보드·명단·평가 입력·결과·이력·수식 관리 화면을 만들고 워크북 업로드와 전수 대조 화면을 붙였습니다.
컴포즈 단독 기동 구성, 루프백 바인딩, 권한 이중 차단, 세션 만료, 백업·복구 스크립트를 정비했습니다.
인터넷이 없는 현장 PC에 이미지를 반입해 설치하고 담당자와 함께 실제 데이터로 결과를 대조했습니다. 이어서 사용 매뉴얼을 포함한 산출물 6종을 정리해 인계하고 준공 서류를 제출했습니다.