클라우드에 1바이트도 보내지 않고 직원 근무 시간을 관리하는 법

클라우드에 1바이트도 보내지 않고 직원 근무 시간을 관리하는 법

목차

시중의 거의 모든 근태 관리 제품 뒤에는 말하지 않는 전제가 있습니다. 직원의 출근 기록은 어딘가에 올려야 하는 데이터라는 전제입니다. 보통은 업체의 클라우드로. 때로는 “이중화를 위해” 세 지역에 복제되고, “서비스 제공에 필요한 기간"이라는 모호한 조항 아래 무기한 보관됩니다.

이 전제가 늘 틀린 것은 아닙니다. 하지만 치과, 인쇄소, 동네 극장, 수제 맥주 양조장 같은 작은 조직에는 잘해야 과하고, 나쁘면 진짜 문제가 됩니다. 그래서 이 글은 그 대안, 즉 기기에서 아무것도 내보내지 않고 근태 관리를 운영하는 방법을 다룹니다.

먼저 조금 지루한 법 이야기, 그다음 실제 설정, 마지막으로 함정 순서입니다.

왜 굳이 클라우드를 피하나

사람들이 드는 이유는 대략 이 순서로 세 가지입니다.

법 준수. 생체정보를 다룬다면(얼굴은 대부분의 현대 법에서 생체정보입니다), 그것을 제3자에게 보내는 순간 의무 목록이 길어집니다. 가장 쉬운 방법은 데이터가 기기를 떠나지 않게 하는 것입니다. 한국 개인정보 보호법이든, GDPR 제9조, BIPA, CCPA든, “절대 전송하지 않습니다"는 정당하고 알기 쉬운 답입니다. 한국에서는 별도 동의가 여전히 필요하지만, 위탁이나 국외 이전 문제는 아예 생기지 않습니다.

비용. SaaS 근태 관리는 보통 사용자당 월 38달러입니다. 15명 팀이면 연 5401,440달러를 끝없이 냅니다. 30명쯤 넘으면 계산이 뒤집히지만, 대부분의 작은 조직에서 질문은 이렇습니다. “직원들이 몇 시에 왔는지 적는 특권에 왜 매달 돈을 내고 있지?”

신뢰. 자기 얼굴을 업체 서버에 올려 달라는 요청을 직원이 어떻게 받아들일지는 알 수 없습니다. 일리노이주 소송 이야기를 들어 본 사람도 있고, 그냥 싫은 사람도 있습니다. 업로드를 없애면 그 대화 자체가 없어집니다.

세 가지가 다 필요하지는 않습니다. 보통은 하나면 충분합니다.

클라우드 없는 시스템의 구성 요소

오프라인 근태 관리는 다섯 부분으로 이루어집니다.

  1. 기록용 기기: 태블릿, 휴대폰, 키오스크
  2. 본인 확인: 얼굴, 지문, PIN, RFID, 또는 그냥 이름 목록
  3. 로컬 저장소: 기록이 실제로 놓이는 곳
  4. 보고서와 내보내기: 대개 CSV
  5. 백업 방법

5번은 거의 모두가 건너뜁니다. 뒤에서 다시 다룹니다.

기록용 기기

대부분 입구 근처에 둔 Android 태블릿입니다. 저가형(리퍼 Samsung Tab A8이나 Lenovo Tab M9)은 100~150달러이고 몇 년을 씁니다. 전원에 꽂아 두면 배터리는 잊어도 됩니다.

실용적인 팁:

  • 눈높이가 아니라 가슴에서 어깨 높이에 설치하세요. 사람들은 약간 내려다보는 쪽이 자연스럽습니다.
  • 하루 중 어느 때라도 화면에 직사광선이 들지 않게 하세요.
  • 튼튼한 거치대를 쓰세요. 약한 것은 화면을 누르면 휘어집니다.

본인 확인

여기서 정해야 합니다. 사람들은 출퇴근 기록기 앞에서 자신을 어떻게 증명할까요?

PIN 코드. 가장 간단합니다. 한 사람당 네 자리 코드. 도입 비용이 쌉니다. 남에게 알려 줄 수 있다는 게 문제이고, 그게 바로 대리 출근입니다.

지문. 잘 될 때는 믿을 만합니다. 추울 때, 장갑을 꼈을 때, 손에 상처가 있을 때, 업소용 주방에서는 골치 아픕니다.

RFID 카드나 키 태그. 팀이 이미 사원증을 갖고 있다면 좋은 선택입니다. 약점은 카드 분실입니다.

얼굴 인식. 손이 필요 없고, 빠르고, 빌려줄 수 없습니다. 다만 생체정보라서 규제의 무게가 따라옵니다. 제대로 만들면(기기 안에서만 처리하면) 편리함은 그대로 두고 그 무게의 대부분을 피할 수 있습니다.

저는 중립적이지 않지만, 대부분의 팀에게는 로컬 얼굴 인식이 가장 좋은 기본 선택이라고 봅니다. 생체정보가 기기를 떠나지 않는다는 걸 보여 줄 수 있으면, 상상했던 법적 골칫거리는 대개 사라집니다.

로컬 저장소

휴대폰이나 태블릿이라면 앱 전용 디렉터리의 SQLite 파일 하나와 출퇴근 사진용 이미지 폴더가 전부입니다. 15명 팀의 6개월치 데이터베이스도 30~60 MB 정도입니다. 규모 문제는 없습니다.

확인할 것: 앱이 기록을 즉시 디스크에 쓰나요, 아니면 메모리에 두었다가 나중에 쓰나요? 메모리에 두는 방식은 기기가 멈추거나 누가 플러그를 뽑을 때 치명적입니다. 잘 만든 앱은 “출근 완료"를 보여 주기 전에 디스크에 씁니다.

보고서

작은 조직의 95%에게 필요한 건 CSV입니다. 한 줄이 한 근무이고, 이름, 출근 시각, 퇴근 시각, 근무 시간, 선택적인 메모 열이 있습니다. CSV를 공유 폴더에 넣으면 세무 담당자가 월요일 아침에 엽니다. 끝입니다.

CSV보다 복잡한 것이 필요하다면 대개 급여 시스템 연동을 뜻하고, 그러면 본격적인 개발 과제가 됩니다. 그 경우 기기 안 방식은 아마 맞지 않습니다. 뒤에서 다룹니다.

백업

모두가 건너뛰는 부분입니다. 규칙은 이렇습니다. 기록이 벽의 태블릿에만 있다면, 그 기록은 없는 것과 같습니다. 태블릿은 깨집니다. 청소하는 분이 플러그를 뽑습니다. 어느 화요일 아침에 그냥 고장 나기도 합니다.

현실적인 백업 방법 세 가지:

  • 매주 CSV를 공유 폴더로 내보내기. 가장 간단합니다. 누군가 매주 금요일에 내보내서 세무 담당자가 볼 수 있는 폴더에 공유합니다. 태블릿이 고장 나도 잃는 건 최대 일주일입니다.
  • 바쁜 매장은 매일 내보내기. 마감할 때 같은 두 번의 터치. 20명이 넘어 일주일치를 잃으면 복원이 고통스러운 경우에 맞습니다.
  • 한 달에 한 번 PDF도 추가로. PDF에는 출근·퇴근 사진이 들어 있어서, 90일 보관 기간이 지나 기기에서 지워진 뒤에 분쟁이 생긴 근무가 나와도 증거가 됩니다.

FaceClock에서는 이 모든 것이 일부러 수동입니다. 앱에 네트워크 권한이 없어서 스스로 파일을 어디로도 보낼 수 없습니다. 내보내기는 Android 공유 메뉴를 거치고, 어디로 갈지는 여러분이 고릅니다. CSV에는 이름, 시각, 근무 시간만 들어 있고 얼굴도 벡터도 없습니다.

참고: 집계된 근무 데이터(CSV)를 백업하는 것은 괜찮습니다. 생체정보 벡터를 백업하는 것은 일반적으로 권하지 않습니다. 로컬에 두는 의미가 없어지기 때문입니다.

실제 예시 하나

작년 봄에 설치를 도운 9명 규모 치과의 구성입니다.

  • 직원 출입 통로에 Samsung Tab A8
  • FaceClock 설치. 미리 등록한 사람은 없고, 월요일 아침 각자 첫 출근 기록 때 이름과 사진 한 장으로 스스로 등록
  • 최대 근무 12시간. 치과가 그렇게 오래 여는 일은 거의 없지만, 토요일 응급 진료로 출근을 찍고 퇴근을 잊은 경우를 잡아 줍니다
  • 90일 지난 근무 자동 삭제(기본값)
  • 매주 금요일 근무 화면에서 CSV를 내보내 세무 담당자가 보는 Google 드라이브 폴더에 바로 공유. 수동(두 번 터치)이고, 실장님의 금요일 체크리스트에 들어 있습니다
  • 태블릿 옆에 문제가 생겼을 때의 대처법을 적은 종이. 이름, 시각, 이니셜을 손으로 적습니다. 11개월 동안 한 번도 쓰지 않았습니다.

총비용: 태블릿 약 130달러, 일요일 오후 한 번의 설치 작업, 월 요금 0원.

CSV만으로 연장근로 계산하기

여기서 당황하는 사람이 있습니다. “관리 화면 없이 연장근로를 어떻게 계산하죠?” 답은 조금 싱겁습니다. 10년 전처럼 스프레드시트에서 합니다. 전형적인 공식은 이렇습니다.

weekly_hours = SUMIF(employee_id, [name], duration_hours)
overtime_hours = MAX(0, weekly_hours - 40)

한국은 법정 근로시간이 1일 8시간, 1주 40시간이고, 연장근로는 1주 12시간까지이며 통상임금의 50% 이상을 가산해 줍니다. 1일 8시간 초과분도 따로 확인해야 합니다. 이런 규칙은 근태 앱이 아니라 스프레드시트에 넣습니다. 앱의 역할은 깔끔한 근무 기록을 주는 것입니다. 계산은 급여의 몫입니다.

이 방식이 무너지는 경우

규모에 대해서는 솔직하게 말하겠습니다.

  • 여러 지점. 카페가 세 곳이고 본사에서 실시간으로 근무를 보고 싶다면, 지점마다 둔 오프라인 키오스크는 맞는 모양이 아닙니다. CSV를 메일로 돌리면서 다점포용 SaaS를 쓸 걸 하고 후회하게 됩니다. 갈림길은 대략 세 지점입니다.

  • 실시간 급여 자동화. 근무표 시스템이 누가 지각했는지 지금 바로 알아야 한다면, 오프라인 앱은 그걸 알려 줄 방법이 없습니다. API 연동이 필요한데, 대부분의 오프라인 앱은 설계상 그걸 제공하지 않습니다.

  • 기기 한 대에 약 50명 이상. 등록된 사람이 늘수록 인식이 느려집니다. 50명은 요즘 기기에서 문제없지만, 저가 태블릿에 200명은 무리입니다.

  • 24시간 운영의 여러 번 교대. 병원, 공장 등 하루 3교대인 곳. 가능은 하지만 수정 작업(퇴근 기록 누락, 근무 교환)이 크게 늘고, 클라우드의 중앙 집중식 파악이 아쉬워질 겁니다.

이 범위를 벗어난다면 아마 클라우드가 맞습니다. 범위 안이라면(작은 조직은 대부분 그렇습니다) 오프라인 방식으로 돈을 아끼고, 생체정보의 번거로움을 피하고, 남의 서버가 계속 살아 있느냐에 좌우되지 않는 기록을 남길 수 있습니다.

마치며

SaaS 시대에는 어떤 업무 데이터든 누군가의 클라우드에 있어야 한다고 당연하게 여깁니다. 많은 분야에서는 그게 맞습니다. 하지만 근태 기록은 의외로 클라우드에 두지 않기에 잘 맞습니다. 개인정보이고, 보관 기간 규정이 있고, 양이 적고, 매장이 하나인 작은 조직에서는 한데 모아 봐야 얻는 게 별로 없습니다.

옛날식 답이 요즘의 답이기도 합니다. 문 옆의 기기. 주말의 CSV. 눈으로 볼 수 있는 곳에 있는 기록.

작은 팀의 근태 관리에 정말 필요한 건 거의 그게 전부입니다.

공유 :

관련 글

카페와 식당의 근태 관리: 바쁜 토요일에 실제로 통하는 방법

카페와 식당의 근태 관리: 바쁜 토요일에 실제로 통하는 방법

리스본에서 카페를 하는 친구가 있습니다. 직원 열두 명, 번갈아 근무하는 매니저 셋, 계속 바뀌는 학생 아르바이트들. 작년 여름, 일요일 새벽 2시에 그에게서 긴 음성 메시지가 왔습니다. 요약하면 이렇습니다. 토요일 오전 11시에 카페 와이파이가 끊기면서 계산대 옆 아이패드에서 돌아가던 근태 앱도 멈췄다. 네 시간 동안 아무도 출근을 찍지 못했다. 기다려야 할지 냅킨에 이름을 적어야 할지 아무도 몰랐다. 마감 때 근무 기록에는 일곱 군데 구멍이 나 있었고, 그날 급여를 복원하는 데 일요일을 거의 다 썼다고요.

더 읽기