회사에서 급여 시스템을 개발하면서 IP 기반 출퇴근 체크 기능을 구현한 적이 있다. 원격근무가 늘면서 어디서 접속했는지 확인하는 게 인사관리에서 중요해졌기 때문이다. 내 IP 확인 도구를 써보면 알겠지만, IP 주소만으로도 상당히 많은 정보를 알 수 있다.
IP Geolocation API 구조
IP로 위치를 파악하는 건 Geolocation API를 통해 이뤄진다. 대표적으로 ipinfo.io, ipapi.co 같은 서비스가 있다. API 응답을 보면 국가, 지역, 도시, ISP, 심지어 위도경도까지 제공된다. 급여 시스템에서 이걸 활용하면 해외 출장 중 접속인지, 재택근무인지 구분할 수 있다.
fetch("https://ipapi.co/json/").then(res => res.json()).then(data => { console.log(data.city, data.region); });
이런 식으로 간단하게 호출할 수 있다. telegleam.kr/my-ip에서 직접 테스트해보면 자신의 IP 정보가 어떻게 나오는지 확인할 수 있다.
VPN 감지의 필요성
급여 시스템에서 위치 확인을 할 때 VPN 사용 여부도 체크해야 한다. VPN을 쓰면 실제 위치와 다른 IP가 나오기 때문이다. 일부 Geolocation API는 VPN/프록시 여부를 함께 제공한다. 이걸 체크하지 않으면 실제로 어디서 근무했는지 파악하기 어렵다.
근태와 급여 연동
출퇴근 기록이 쌓이면 이걸 급여 계산에 반영해야 한다. 지각, 조퇴, 결근에 따라 일할 계산을 하고, 야근수당이나 주말수당도 계산한다. 이 과정에서 시급 계산이 들어가는데, 월급제 직원의 시급은 월 소정근로시간(보통 209시간)으로 나눠서 구한다.
const hourlyWage = monthlySalary / 209;
이게 야근수당 1.5배, 휴일수당 2배 등의 기준이 된다.
개인정보 보호 이슈
IP 기반 위치 추적은 개인정보 처리에 해당한다. 직원에게 사전 동의를 받아야 하고, 수집 목적과 보관 기간을 명시해야 한다. 개발자 입장에서는 로그 데이터 암호화, 접근 권한 관리 등 보안 조치도 필요하다. IP 확인 기능을 제공할 때도 데이터를 서버에 저장하지 않는 게 좋다.
실무 적용 시 고려사항
실제로 이런 시스템을 도입할 때는 여러 예외 상황을 고려해야 한다. 카페나 공유오피스에서 근무하는 경우, 모바일 테더링을 사용하는 경우 등 IP가 수시로 바뀔 수 있다. 위치 기반 출퇴근 체크는 참고 자료로만 사용하고, 최종 판단은 관리자가 하도록 설계하는 게 현실적이다.
마치며
IP 기반 위치 추적과 급여 시스템 연동은 기술적으로 가능하지만, 프라이버시와 정확도 문제를 고려해야 한다. 테스트가 필요하다면 온라인 IP 확인 도구를 활용해볼 수 있다.