안녕하세요! 오늘은 출퇴근 관리 자동화에 대해 이야기해 보려고 합니다. 여러분도 반복적인 작업에 지쳐본 적 있나요? 제가 최근에 경험한 문제와 이를 해결한 과정을 공유하며, 여러분의 업무 흐름을 더 효율적으로 만들 수 있는 방법을 알려드리겠습니다.
배경 이야기
저는 스타트업에서 풀스택 개발자로 일하고 있습니다. 우리 회사는 직원 출퇴근 관리를 위해 Keka라는 시스템을 사용하는데, 매일 출근할 때와 퇴근할 때 수동으로 체크를 해야 합니다. 문제는 가끔 체크를 깜빡 잊는 경우가 있다는 점이었어요. 그 결과, 출근 상태가 '미체크'로 표시되고 이를 수정하려면 Keka에 티켓을 올려야 했습니다. 이 번거로운 과정을 자동화할 방법이 필요했습니다.
문제 분석
처음에는 Keka가 제공하는 API를 찾으려 했지만, 아쉽게도 제공되지 않았습니다. 그래서 브라우저 개발자 도구의 네트워크 탭을 사용해 Keka 웹사이트가 체크인과 체크아웃 시 어떤 엔드포인트를 호출하는지 분석했습니다. 분석 결과, Bearer 토큰을 사용해 요청을 보내야 한다는 것을 알게 되었습니다. 하지만 Bearer 토큰은 매일 만료되었고, 웹사이트의 로컬 스토리지에 저장된 리프레시 토큰을 사용해 새로운 Bearer 토큰을 가져와야 했습니다. 이를 해결하기 위해 Node.js로 스크립트를 작성했습니다.
또한, 스크립트가 언제 출근했는지, 퇴근 시간을 어떻게 판단할지, 오류 발생 시 어떻게 알림을 받을지 고민했습니다.
해결책
이 문제를 해결하기 위해 다음과 같은 방식을 도입했습니다:
- 출근 시간 감지: 스크립트에 사무실 출근 시간을 설정해두고, 해당 시간이 되면 체크인을 시도하도록 했습니다.
- 퇴근 시간 설정: 출근 후 몇 시간 뒤 자동으로 체크아웃하도록 설정 가능한 옵션을 추가했습니다.
- 오류 알림 및 수동 체크인: Slack 알림을 통합하여 체크인/아웃 성공 여부나 오류 발생 시 알림을 받을 수 있도록 했습니다.
스케줄러(CRON)를 사용해 15분마다 스크립트를 실행하도록 설정했고, 이 방식은 1년 동안 완벽히 작동했습니다.
Chrome 확장으로 전환
1년 후, 이 솔루션을 동료들과 공유하기 위해 Chrome 확장으로 개선했습니다. 확장은 다음과 같이 작동합니다:
- 설정: 확장을 설치한 후 출근 시간과 퇴근 시간을 입력하고, 퇴근까지의 시간을 설정합니다.
- 알람 메커니즘: 15분마다 알람을 설정해 출근 시간이 되면 Keka 웹사이트를 열고 체크인을 시도합니다.
- 컨텐츠 스크립트: Keka 웹사이트에 특정 쿼리 파라미터를 전달하고, 성공적으로 체크인/아웃이 완료되면 백그라운드 서비스에서 이를 기록해 다음 작업을 예약합니다.
여러분의 차례!
여러분도 코드를 사용해 반복적인 작업을 자동화해본 적이 있나요? 또는 자동화하고 싶은 작업이 있나요? 댓글로 여러분의 경험과 아이디어를 공유해주세요! 더 많은 팁과 업데이트를 원하신다면 제 블로그를 구독하는 것도 잊지 마세요.
자동화된 업무로 더 많은 시간을 절약하고, 행복한 코딩 하세요!
'Web > Node.JS' 카테고리의 다른 글
Lambda에서 Fargate로 Node.js 성능 최적화를 위한 적절한 설정 찾기 (0) | 2025.03.31 |
---|---|
Node.js 최신 자바스크립트 트렌드와 프론트엔드 기술 탐구 (0) | 2025.02.06 |
Node.js 입문 기본 개념과 설치 방법 (0) | 2025.02.05 |
Electron 첫 번째 앱 구축 (0) | 2025.02.05 |
NodeJS 공부한후 누군가와 함께 팀프로젝트를 시작 해보려고 한다. (0) | 2025.02.04 |