근무시간 급여 자동계산

업무 자동화4분 읽기

케이터링 현장은 행사마다 알바 인력이 붙고, 그만큼 인건비 정산이 잦아요. 근무표를 보고 시간을 세고, 시급을 곱하고, 월말에 정산으로 옮기는 일이 매번 반복되죠. 케이터링 식자재 ERP에서는 이 흐름을 근무시간 급여 자동계산 체인으로 묶어, 담당자가 종료시간 하나만 넣으면 정산까지 흘러가게 했어요. 전체 그림은 케이터링 식자재 ERP 구축 사례에 있습니다.

근무시간 급여 자동계산은 무엇을 잇나요

근무시간 급여 자동계산은 근무 종료시간 입력 하나가 근무시간·시급·급여·정산까지 연쇄로 이어지게 하는 것이에요. 사람이 하던 일을 뜯어보면 네 단계예요. ① 근무시간을 세고 ② 그 사람의 시급을 정하고 ③ 곱해서 급여를 내고 ④ 월 정산에 반영하는 거죠. 이 네 단계는 사실 앞 단계의 결과가 뒤 단계의 입력이라, 한 번에 이어 붙일 수 있어요.

우리는 이걸 근무세션(work session)이라는 한 기록에 콜백으로 엮었어요. 근무세션은 프로젝트 배정에 연결돼 있어서, 누가 어떤 행사에 몇 시간 일했는지가 한 줄로 남아요. 종료시간이 입력되는 순간 아래 체인이 순서대로 돌아요.

종료시간 하나로 시작되는 연쇄

핵심은 저장 콜백을 순서대로 걸어 한 단계의 출력이 다음 단계의 입력이 되게 한 거예요. 종료시간이 채워지면 근무시간이 계산되고, 근무시간이 생기면 시급이 세팅되고, 시급이 정해지면 급여가 계산돼요.

종료시간 입력이 근무시간 계산, 시급 세팅, 급여 계산으로 순서대로 이어지는 저장 콜백 체인종료시간 입력근무시간 계산시급 세팅급여 계산

종료시간 입력 하나가 근무시간, 시급, 급여 계산으로 자동으로 이어집니다.

근무시간은 종료시간에서 시작시간을 빼 시간 단위로 환산한 값이에요. 시급이 아직 없으면 그 사람의 프로필에서 시급을 가져와 세팅하고, 근무시간과 시급이 모두 준비되면 곱해서 급여(total_pay)를 내요. 담당자는 종료시간만 넣었을 뿐인데 세 값이 한 번에 채워지죠.

시급은 누적 근무시간으로 자동 승급

시급을 어디서 가져오는지가 재밌는 부분이에요. 고정 시급이 아니라 누적 근무시간에 따라 자동으로 오르는 구조예요. 오래 일한 사람에게 자연스럽게 보상이 가도록, 시급 계산을 프로필에 두고 누적 근무시간을 기준으로 올렸어요.

increments = (total_work_hours.to_i / 300).floor
[base_rate + (increments * 1_000), 20_000].min  # 300시간마다 +1,000원, 상한 20,000원

기본 시급은 11,000원에서 시작해, 누적 근무시간이 300시간을 넘을 때마다 1,000원씩 올라가고, 상한은 20,000원이에요. 근무세션이 저장될 때마다 그 사람의 누적 근무시간이 갱신되니까, 다음 근무의 시급 계산에 자동으로 반영돼요. 승급 규칙이 코드에 있어서 담당자가 매번 시급표를 뒤질 필요가 없어요.

숫자로 보면 이래요. 누적 근무시간이 620시간인 알바가 있다고 하죠. 620을 300으로 나누면 몫이 2니까 기본 시급에 1,000원씩 두 번 붙어 시급은 13,000원이 돼요. 이 사람이 이번 행사에서 5시간 일했다면 급여는 5시간 × 13,000원으로 65,000원이 계산되고요. 이 근무가 저장되면 누적 근무시간은 625시간으로 갱신돼, 다음에 300시간 경계를 넘는 순간 시급이 또 한 칸 올라가요. 계산과 승급이 한 흐름 안에서 자동으로 맞물리는 거죠.

근무는 '프로젝트 배정'에 매달려 있다

이 체인이 성립하려면 근무 기록이 누구의, 어떤 행사의 것인지가 분명해야 해요. 그래서 근무세션은 홀로 떠 있지 않고 프로젝트 배정에 연결돼요. 어떤 파트너를 어떤 행사에 배정하면, 그 배정 아래에 근무세션이 쌓이는 구조예요. 덕분에 근무 하나만 봐도 "이 사람이 이 행사에서 이만큼 일했다"가 바로 드러나고, 급여가 어느 프로젝트의 비용인지도 자동으로 따라와요. 이 연결이 있어서 프로젝트를 완료할 때 그 프로젝트에 묶인 근무의 정산만 골라 확정하는 것도 가능해져요.

급여 계산이 알바비 정산으로 이어진다

마지막 고리는 정산이에요. 근무세션에 종료시간이 채워지면, 저장 후 콜백이 그 달의 알바비 정산을 자동으로 생성해요. 이때도 규칙이 있어요. 콜백은 그 달 기존 정산을 먼저 찾아보고, 이미 확정·지급완료된 상태면 손대지 않고, 대기 상태이거나 아직 없을 때만 새로 만들거나 다시 계산해요.

이렇게 알바비 정산은 다중 정산 자동화의 세 정산 중 하나로 합류해요. 반대로 근무 기록을 지우면 대기 정산에서 그 근무 상세만 빠지고 총액이 다시 잡혀요. 그리고 프로젝트를 "완료" 처리하면, 그 프로젝트에 묶인 대기 상태 알바비 정산이 자동으로 확정돼요. 확정된 뒤에는 재계산이 건드리지 못하는데, 그 불변성은 확정된 정산은 건드리지 않는다에서 자세히 다뤘어요.

정리하면 근무시간 급여 자동계산은 종료시간 → 근무시간 → 시급(누적 기반 승급) → 급여 → 알바비 정산 → 프로젝트 완료 시 확정으로 이어지는 한 줄기 흐름이에요. 사람은 종료시간과 완료 버튼만 다루고, 나머지 계산은 규칙이 대신해요.

자주 묻는 질문

근무 기록을 정산까지 자동으로 이으려면 어떻게 하나요?

근무세션에 저장 콜백을 순서대로 걸어 한 단계의 출력이 다음 단계 입력이 되게 합니다. 종료시간이 입력되면 근무시간이 계산되고, 시급이 세팅되고, 급여가 계산된 뒤, 저장 후 콜백이 그 달 알바비 정산까지 자동으로 만들어요.

시급이 자동으로 오르게 할 수 있나요?

네. 고정 시급 대신 누적 근무시간을 기준으로 시급을 계산합니다. 기본 시급에서 시작해 누적 300시간마다 1,000원씩 올리고 상한을 20,000원으로 두었어요. 근무가 쌓일 때마다 누적 시간이 갱신돼 다음 근무 시급에 자동 반영됩니다.

근무 기록을 수정하면 이미 만든 정산은 어떻게 되나요?

대기 상태 정산만 다시 계산됩니다. 근무를 지우면 대기 정산에서 그 근무 상세만 빠지고 총액이 다시 잡히지만, 이미 확정·지급완료된 정산은 건드리지 않아요. 프로젝트를 완료 처리하면 묶인 대기 정산이 자동 확정되어 그 시점 값으로 잠깁니다.

#근무시간급여계산#알바비정산#시급자동승급#급여자동화#자동화

업무자동화 구축이 필요하신가요?

무료 상담 신청