네이버 웍스 일 평균 근무시간, 매일 직접 계산하고 계시나요?

안녕하세요! 오늘은 제가 재직 중인 회사에서 실제로 겪었던 근태 관리 문제와, 이를 해결하기 위해 만든 웹 앱을 소개해 드리려고 합니다. (웹사이트 주소: https://ando-zone.github.io/remaining-working-time/ ) 저희 회사는 Naver Works라는 서비스를 통해 출퇴근 시간을 기록하고 근무 현황을 관리하고 있는데요, 굉장히 편리하지만 한 가지 불편한 점이 있었습니다. 바로 남은 일 평균 근무시간을 간편하게 확인하기 어렵다는 점이었죠.

1. Naver Works 근태 관리 시스템의 문제점.

위 스크린샷은 현재 글을 작성 중인 1월 8일 기준으로 이번 달 저의 누적 근무 시간과 일평균 잔여 시간을 보여주고 있습니다. 1월이 시작되고 지금까지 6 근무일 동안 평균 8시간 정도 성실히 근무해 왔는데, 남은 일평균 잔여 시간이 9시간 12분이라니… 너무 많아 보이지 않나요? 🤦🏻‍♂️ 🫠

맞습니다. 해당 스크린샷에 보이는 일평균 잔여 시간과 실제로 제가 매일 근무해야 하는 평균 잔여 시간은 큰 차이가 있습니다. 실제로 직접 일평균 잔여 시간을 계산해 보면 7시간 28분으로 나오거든요. 이렇게 크게 차이가 나다 보니 우리 회사 사람들은 지금까지 일평균 잔여 시간을 매번 직접 계산해야 하는 불편함을 겪어왔습니다.

그래서 몇몇 분들은 chatGPT에게 일평균 잔여 시간 계산을 맡기거나 아래처럼 간단한 계산식을 이용하여 실제 잔여 시간을 구하는 엑셀 파일을 만들어 공유하기도 했습니다.

하지만, 공휴일이 하루라도 껴있는 달이거나 승인된 사용 예정 연차가 존재할 경우, Naver Works의 일평균 잔여 시간 계산식은 달라지는데요. 위 엑셀 파일 계산 결과에서 볼 수 있듯이, 정확한 잔여 시간(7시간 28분)을 구하기 어렵다는 한계가 있었습니다.

2. 그래서 직접 웹 서비스를 만들었습니다.

저는 문제를 해결하기 위해, 어떻게 하면 정확히 실제 잔여 시간을 구할 수 있는지부터 파악해 봤습니다. Naver Works가 실제 잔여 시간을 구하지 못하는 이유는 크게 세 가지입니다.

Naver Works의 일평균 잔여 시간 계산 방식

  1. 오늘을 포함하여 일평균 잔여 시간을 구하지 않습니다.
  2. 남은 근무일에 공휴일이 포함된 경우, 해당 일수를 포함하지 않고 일평균 잔여 시간을 구합니다.
  3. 사용 예정인 연차가 근무 누적 시간에 즉각 반영되어 일평균 잔여 시간이 계산됩니다.

사용자가 실제 잔여 시간을 확인할 수 있도록 개선하려면, 정확히 반대로만 로직을 구현하면 됩니다.

  1. 오늘을 포함하여 일평균 잔여 시간을 계산합니다.
  2. 남은 근무일에 공휴일이 포함된 경우, 해당 일수를 포함하여 일평균 잔여 시간을 구합니다.
  3. 근무 누적 시간에 즉각 반영된 사용 예정 연차를 고려하여 일평균 잔여 시간을 계산합니다.

회사에서 Naver Works를 사용하지 않는 분이시라면, 위 내용이 이해가 쉽지 않을 수 있습니다. 다만, 실제 잔여 시간 계산에 있어 이 세 가지 내용을 중점으로 로직을 구현했다는 사실만 기억해 주세요 🙂 이 핵심 로직을 정리하고 나니, 실제 서비스 구현은 놀라울 정도로 아주 간단했습니다.

3. 코드 구현부터 서비스 배포까지

처음에는 아주 간단한 UI를 보여주는 프론트엔드 부분과, 위에서 정리한 로직을 구현하여 잔여 시간을 계산하는 서버 부분을 나누어서 개발할 생각이었어요. 그런데 서버가 담당하는 역할이 단순히 잔여 시간 계산 뿐인 점, 그리고 서버 유지 비용을 계속해서 부담해야 한다는 점 때문에 전략을 수정하게 되었습니다. 바로 화면의 동작을 담당하는 프론트엔드 코드에 계산 로직도 심어버리기로요! 여기에 github-pages를 이용하여 작성한 프론트엔드 코드를 배포하면 비용 없이 24시간 작동하는 계산기를 세상에 공개할 수 있겠다는 생각이 들었습니다.

이제 제가 만든 계산기를 공개합니다…!

4. 서비스 출시 이후는 어땠을까요?

배포 후 바로, 메신저를 통해 회사 직원분들에게 근무 시간 계산기를 홍보했습니다. 단 한 분이라도 유용하게 사용해 주시길 바라는 마음으로… 🙏😅 한 번 동료분들의 반응은 어땠는지 확인해 볼까요?

아주 만든 보람이 있는 동료분들의 반응이었습니다 😆 이후에도, 간혹 계산기에 대한 피드백이 들어올 때면, 누군가 사용하고 있구나 라는 생각에 너무나 반갑고 기쁘더라고요.

5. 이번 프로젝트에서 느낀점.

너무나도 간단한 프로젝트였지만, 사람들의 불편함을 제가 가진 지식으로 해결하는 것이 정말 뿌듯한 일이구나를 크게 느낄 수 있었습니다.

실은 제가 가진 지식을 거의 사용하지도 않았습니다. 왜냐하면 코드 작성은 AI code editor인 Cursor가 다 했거든요 😄 제가 한 것은 단지, 문제를 정의하고 그에 대한 해결 방안을 정리한 것, 그리고 그 해결 방안을 Cursor가 구현하게 만든 뒤, github-pages라는 툴을 통해 최종 결과물을 배포한 것입니다. 디테일한 부분은 생성형 AI가, 핵심 로직 정의와 시스템 전반에 대한 구성 및 이해는 제가 맡아서 진행했다고 볼 수 있겠네요.

다시 한번 놀라운 시대에 살고 있다는 생각이 들었어요. 프론트엔드 지식이 거의 없는 저도 짧은 시간에 화면을 구성하고 동작하게 만들 수 있었으니까요. 생성형 AI의 도움으로, 저는 문제 정의와 해결 방안에 대한 구상에만 더 집중할 수 있게 된 것 같습니다. 그리고, 그 아이디어를 행동으로 옮기는 시도가 비약적으로 늘어날 수 있다고 느꼈습니다.

그런 의미에서 앞으로는 더 적극적으로 문제를 찾아다니려고 해요. 지금처럼 간단한 문제부터 더 복잡한 문제들까지, 많은 문제들을 정의하고 해결하는 시도를 계속해서 해보고 싶습니다. 그 과정에서 또 어떤 것들을 배우고 느꼈는지 공유하러 다시 오겠습니다. 감사합니다!

Leave a Comment