RN 앱 ↔ 웹모바일뷰 기능 격차 감사 (0729)
배경 및 방법
기업 모바일은 RN 앱(mobile/src) 과 웹 모바일뷰(frontend/src/components/user/mobile/MobileXXX.tsx) 이중 구조로 운영된다. 웹모바일은 정상 동작하나 RN 앱에서 안 되는 기능이 많다는 현장 피드백을 받아, 12개 도메인을 웹모바일 기준으로 RN과 코드(파일·라인) 수준에서 1:1 대조했다. RN 앱 ↔ 웹모바일뷰 기능 격차 감사 (0729)
총평: RN 이식이 웹모바일보다 후속으로 진행되며 최근·핵심 기능이 미반영. 특히 출퇴근 인증방식(QR·IP) 과 휴가 촉진 응답이 RN에 통째로 빠져 실사용을 직접 차단한다.
도메인별 종합 현황
🔴 HIGH — 실사용 차단
1. 출퇴근 QR·IP 방식 RN 전무
RN CheckInSheet.tsx:161이 check_in_method:'GPS'만 하드코딩. 웹모바일은 GPS/QR/IP 세 방식을 모두 지원한다.
- QR: 웹
CheckInLocationSheet.tsx:584-591,858→viaQr+ qr_token. RN에 QR UI·경로 없음 → QR 전용 근무지 직원 앱 출퇴근 불가. - IP(사내망): 웹
:592-596handleIpConfirm→viaIp. RN에viaIp/allowed_ips미사용 → IP 전용 근무지 직원 앱 출퇴근 불가.
→ GPS 출퇴근 스펙 참고.
2. 연차촉진 응답 RN 전무 (근기법 61조)
웹모바일 MobileVacation.tsx에 촉진 응답이 완비(leaveApi.myPromotionNotices() L165)돼 있으나 RN vacation에 promotion 엔드포인트·UI 전무.
- 촉진 통보 배너: 웹
MobileVacation.tsx:208-259. RN 미구현. - 1차 응답(사용 계획 제출+서명): 웹
PromoResponseSheet round=1. RN 미구현. - 2차 응답(회사 지정 사용일 확인 서명): 웹
round=2. RN 미구현.
→ 연차촉진 스펙 참고.
3. 조직도 부서 칩 필터 누락
웹 MobileDirectory.tsx:20-23,70-90 — distinct 부서 칩으로 직원을 부서별 필터. RN DirectoryScreen.tsx는 서버 페이지네이션을 이유로 의도적 제거 → 부서 기준 직원 탐색 수단 소실. (검색도 이름·이메일만, 부서명·직책 검색 불가.)
→ 조직도 관리 스펙 참고.
4. 프로필 필수서류 제출·조회 RN 전무
웹 MobileProfile.tsx:376-505 — getMyRequiredDocuments 목록 + UPLOAD/PASTE/SIGN 처리 + 재제출/취소 + 상태 배지. RN ProfileScreen.tsx:242-265는 PC 안내만 표시.
🟠 MEDIUM — 완결성
| 항목 | 웹모바일 | RN 상태 |
|---|---|---|
| 결재 '전체' 통합 탭 | 근태+서류 날짜순 합본 | 근태/서류 2탭만 |
| 결재 서류 본문 리치 렌더 | 폼 스키마+TemplatePreview | 15개 라벨 key-value 표(커스텀 폼 raw 키 노출) |
| 조직도 '메시지 보내기' | /user/messages?new=1 딥링크 | 미구현 |
| 대시보드 허용시간 외 폴백 | EARLY/LATE → 출퇴근 요청 | 에러 문구만 |
| 대시보드 계약 미서명 액션 | '날인하러가기' 버튼 | 토스트 액션 버튼 미지원 |
| 출퇴근 폴백 GPS 역지오코딩 | 주소 첨부 | 좌표만(결재자에게 주소 미노출) |
| 신청서 서명/도장 입력 | 서명 캔버스 | 'PC에서 작성' 안내만 |
| 프로필 서류함(계약서/보관함/제증명서) | 조회·PDF·서명 완비 | 전무 |
| 프로필 자격증·면허 목록 | 만료/임박 배지 포함 | 전무 |
🟡 LOW — 소소한 격차
- 공지 본문 하이퍼링크: RN
logic.ts:127이 인라인 태그 제거 → href 소실. - 연장근로 사유 입력 maxLength: RN 500자 vs 웹 무제한.
- 근무표 개인화 헤드라인: 웹만
'{이름}님의 이번 주 근무', RN은 고정 타이틀. - 메시지 새 대화 picker: 웹 부서 계층 트리 vs RN 평면 칩; 프로필 사진 vs 이니셜.
- 결재 상세 대기 결재자 표시: 웹은
'~님 결재중'표시, RN 상세 시트 미표시.
착수 권장 순서
- 1순위출퇴근 QR·IP (RN) — CheckInSheet에 인증방식 선택 + QR스캔·IP 경로 추가. auth_methods·allowed_ips 소비.RN 앱 ↔ 웹모바일뷰 기능 격차 감사 (0729)
- 2순위휴가 촉진 응답 (RN) — vacation/api.ts에 promotion 래퍼 + 배너 + 응답 시트(1·2차) + 내역.RN 앱 ↔ 웹모바일뷰 기능 격차 감사 (0729)
- 3순위프로필 필수서류·서류함·자격증 (RN) — UPLOAD·PASTE 제출, 계약서/서류/제증명서 조회.RN 앱 ↔ 웹모바일뷰 기능 격차 감사 (0729)
- 4순위신청서 서명·붙여넣기·본문 리치 렌더 (RN) — TemplatePreview 엔진 이관 규모 검토.RN 앱 ↔ 웹모바일뷰 기능 격차 감사 (0729)
- 5순위결재 통합탭 / 조직도 필터·메시지 / 대시보드 폴백·계약 액션 — 완결성.RN 앱 ↔ 웹모바일뷰 기능 격차 감사 (0729)
참고: 급여(payroll)는 이의조회 이식으로 웹모바일과 동등 수준 달성. 급여관리 스펙 참고.