SimpleHR project
GPS 출퇴근 스펙
conceptedited by Cairni · 방금 · AIv7
개요
GPS 출퇴근은 직원이 지정된 근무지 반경 내에 위치할 때만 출퇴근 체크를 허용하는 기능이다. 근태 관리 스펙의 하위 기능으로, GPS 위치 검증 로직과 실패 시 관리자 승인 워크플로를 포함한다.
핵심 기술 요소
GPS 정확도 및 타임아웃
- 정확도: ±35m 범위의 GPS 정확도를 기반으로 근무지 반경 설정
- 고정확도 모드 타임아웃: 기존 8초 → 15초로 확대 fix-task-0622.md
- 원인: 삼성 브라우저 등에서 GPS 칩 응답 전 타임아웃 발생
- 폴백: WiFi/IP 기반 저정확도 위치로 전환 시 "WiFi/네트워크 기반으로 위치 확인 중" 안내 메시지 추가 fix-task-0622.md
- 확인 필요: 삼성 브라우저에서 재확인 필요 fix-task-0622.md
체크인 반경 설정
- 필수 항목: 근무지 설정 후 체크인 반경(검증 거리)을 반드시 사전 설정해야 함
- 기본값: 체크 반경 기본 100m로 세팅 fix-taskNew-0702 (26년 07월 02일 우선수정사항)
- 초기 설정 시 허용 방법: 출퇴근 GPS만 사용, 나머지 방법은 막아두기 fix-taskNew-0702 (26년 07월 02일 우선수정사항)
- 근무지 안내 배너: 근무지 이름 및 좌표가 등록되지 않으면 안내 배너 유지 fix-taskNew-0702 (26년 07월 02일 우선수정사항)
- 미설정 시 동작:
withinRadius검사 결과가null로 표시되며, 출퇴근이 정상 처리되지 않음
GPS 출퇴근 플로우
출근 플로우
fix-task-0622.md
퇴근 플로우
- 반경 내: 직접 퇴근 처리
- 반경 외: 출근과 동일하게 관리자 승인 워크플로 진입 fix-task-0622.md
- 동작: CheckInLocationSheet 다이얼로그 표시, 내부 텍스트는 출근/퇴근 상황에 맞게 동적 표시 fix-task-0622.md
주요 수정 사항 (0622)
버그 및 개선 완료
| 항목 | 내용 | 조치 |
|---|---|---|
| GPS 출근 클릭 불가 | 고정확도 타임아웃 8초로 인한 폴백 → 부정확한 좌표 반환 | 타임아웃 8초→15초, 안내 메시지 추가 fix-task-0622.md |
| 출근 후 결재 진행 | 사유 입력 후 출근 시 팀장 결재선으로 넘어감 | 즉시 출근/퇴근 처리로 변경, 대시보드 "근무중" 즉시 전환 fix-task-0622.md |
| 출퇴근 결재선 삭제 | 기본 결재선 삭제 가능, NULL 상태 발생 | 서버 시작 시 자동 생성, 프론트 삭제 실패 시 토스트 표시 fix-task-0622.md |
| 퇴근 GPS 미적용 | 출근만 GPS 검증, 퇴근은 미적용 | 퇴근 시에도 GPS 반경 검증 적용 fix-task-0622.md |
확인 필요 항목
- 삼성 브라우저에서 GPS 고정확도 타임아웃 15초 재확인 fix-task-0622.md
- 삼성 브라우저 다크 테마 이슈 fix-task-0622.md
- 출퇴근 GPS 사용을 위한 브라우저 위치 허용 팝업 띄우기 (중요) fix-taskNew-0702 (26년 07월 02일 우선수정사항)
PC 출근 버튼 비활성화 이슈 (07.01)
- 현상: PC 환경에서 "출근하기" 버튼이 비활성화되어 출근 등록 불가 fix-task-0701 (26년 07월 01일 수정사항)
- 원인 분석: 백엔드는 GPS 없이 출근을 허용하지만, 프론트엔드에서 GPS 좌표를 필수 조건으로 처리하여 CTA 버튼 비활성화 fix-task-0701 (26년 07월 01일 수정사항)
- PC GPS 한계: PC는 WiFi/IP 기반 위치 측정으로 정확도가 낮음 fix-task-0701 (26년 07월 01일 수정사항)
- 현재 폴백: GPS 실패 시 "출퇴근 요청하기" fallback 존재 fix-task-0701 (26년 07월 01일 수정사항)
- 개선 방향:
checkin_radius확대 또는 PC 전용 위치 우회 방식 도입 고려 필요 fix-task-0701 (26년 07월 01일 수정사항)
- 브라우저 위치 권한 미부여 여부 포함 재확인 필요 fix-task-0701 (26년 07월 01일 수정사항)
출장자 GPS 출퇴근 처리 (07.02)
- 요구사항: 출장이 잦은 직원도 GPS로 출근 가능하되, 출근하기 누르면 현재 위치가 저장되도록 처리 fix-taskNew-0702 (26년 07월 02일 우선수정사항)
- 관련 스펙: 출장 관리 스펙 (신청·승인·근태 자동생성)
- 구현 완료: 출근하기 누르면 현재 위치가 저장되도록 구현 fix-task-0703 (26년 07월 03일 수정사항) fix-taskNew-0706 (26년 07월 06일 우선수정사항)- [ ] 미완료: 출장 잦은 직원 GPS 출근 — GPS로 출근 가능하되, 출근하기 버튼 클릭 시 현재 위치가 저장되도록 추가 구현 필요 fix-taskNew-0706 (26년 07월 06일 우선수정사항)
데스크톱 출근 버튼 활성화 (0622)
- 통일 기준: 모바일과 동일하게
start_time1시간 전부터 활성화 fix-task-0622.md - 기존 문제: 9시 이전 출근 체크 불가 fix-task-0622.md
출퇴근 결재선 관리
기본 출퇴근 결재선 자동 생성 및 보호
- 자동 생성: 서버 시작 시
checkin_approval_line_id가 NULL인 테넌트에 기본 결재선 자동 생성 fix-task-0622.md - 삭제 차단: 기본 결재선 삭제 불가 — 삭제 시 "기본 출퇴근 결재선은 삭제할 수 없습니다" 토스트 표시 fix-task-0622.md
관련 스펙 및 기능
- 근태 관리 스펙 — 기본 출퇴근 관리 프레임
- 교대(변형)근로 관리 스펙 — 변형근무 설정 시 근무지 및 시간 연동
- 결재 관리 스펙 — GPS 실패 시 관리자 승인 요청 워크플로
- 근무 정책 스펙 — 근무지별 GPS 반경 기준 설정
- 모바일 UI/UX 개선 작업 — 모바일 환경 실제 출퇴근 시간 표시
- 모바일 앱 스펙 — GPS 출퇴근의 핵심 사용자 인터페이스
- 토스트 알림 공통 컴포넌트 스펙 — 결재선 삭제 실패 등 사용자 피드백
- fix-task-0701 (26년 07월 01일 수정사항) — PC 출근 버튼 비활성화 이슈 및 개선 방향
- fix-taskNew-0702 (26년 07월 02일 우선수정사항) — 체크 반경 기본값 100m, 브라우저 위치 허용 팝업, 출장자 GPS 위치 저장
- fix-task-0703 (26년 07월 03일 수정사항) — 출장자 GPS 위치 저장 구현 완료
- fix-taskNew-0706 (26년 07월 06일 우선수정사항) — 출장 잦은 직원 GPS 출근 현재 위치 저장 미완료 항목
비고
GPS 출퇴근 기능은 모바일 앱 스펙의 핵심 입력 기능이며, 정확도 기반 근무지 반경 설정과 타임아웃 최적화가 데이터 신뢰성을 좌우한다. 관리자 가이드 및 사용자 피드백 메시지 제공 필요.