HBEA000_직원 앱 (앱 개요)
(Hereby) 직원 앱 > 앱 개요
| 앱 | 직원 앱 (Employee App / ESS, 포트 4002) |
| 대상 사용자 | 조건1 [직원(self scope)] — 전 직원 공통 |
| 프로토타입 | TBU |
| 관련 정책 | [[POL_권한(RBAC)]] · [[POL_급여정본경계]] · [[POL_결재워크플로우]] · [[POL_근태원천]] |
| Status | review |
| Owner | 카나 (PM) |
개요
직원 앱은 전 직원이 self 권한 범위로 사용하는 모바일 PWA 셀프서비스 front door다. HR/Admin에서 생성된 원천(급여·근태·휴가·증명서)을 직원이 self 범위로 조회·신청한다. 화면 구조는 하단 4탭("근무" / "메신저" / "결재" / "더보기"). 결재 탭이 휴가·근무·인센티브·서류 4 카테고리 신청 허브로 통합된다. 운영 URL https://okbest.dev.hereby.me/employee-app — 미인증 시 /employee-app/signin 리다이렉트. 핵심 경계: 모든 신청 mutation은 self scope + 사람 confirm이며 타인 데이터·결재 자동승인은 금지, 급여 원장·명세서 본문·교부 이력의 정본 수정은 직원 앱에서 수행하지 않는다.
문서 히스토리
| 날짜 | 작성자 | 팀 | 변경 내용 |
|---|---|---|---|
| 2026-07-06 | 카나 | PM | 최초 작성 |
| 2026-07-10 | 카나 | PM | 라이브 기능 검토 반영 |
| 2026-07-21 | 카나 | PM | GC700 깊이 재작성 |
| 2026-07-21 | 카나 | PM | 하위 화면 상태표 추가 + 결재 허브(HBEA400/410/421) 트리 반영 |
| 2026-07-21 | 카나 | PM | 셀 스타일 확정판 적용 (콸 승인) |
Data I/O
Server → Client
| 변수 | DB 엔티티.컬럼 | 값 없을 때 | 비고 |
|---|---|---|---|
| $ | 인증 세션 (self scope) | /employee-app/signin 리다이렉트 | ⚠ 계정 레이어 전환(7/16 코드) 반영 여부 라이브 확인 필요 |
| $ | Employee self (본인 프로필) | hide | "최콸 / 관리자" 형태 표시 |
| $ | ConversationMember.unreadCount + Notification.isRead=false | 0 (배지 미표시) | 메신저 미읽음 + 알림 미읽음 |
| $ | Attendance (당일 근태) | "미출근" | 근무 탭 현재 상태 카드 |
Client → Server
| 액션 | 전달 값 | tRPC procedure | 권한 토큰 |
|---|---|---|---|
| 휴가 신청 | leaveType, startDate, endDate, reason | sdk.leave.request() (추정) | leave:request.self (추정) |
| 연장·휴일 근무 신청 | workDate, startTime, endTime, typeId, reason | sdk.overtime.request() (추정) | overtime:request.self (추정) |
| 외근 신청 | workDate, location, typeId, reason | sdk.fieldwork.request() (추정) | fieldwork:request.self (추정) |
| 증명서 제출·요청 | documentType, file | sdk.document.request() (추정) | document:request.self (추정) |
생성 엔티티: 휴가 → LeaveRequest · 연장/휴일 → OvertimeRecord · 외근 → OffsiteWorkRecord. procedure/토큰 명 미확정은 TBU.
외부 통합 (cross-app)
| 외부 시스템 | 데이터 | 동기/비동기 | 비고 |
|---|---|---|---|
| Team Management (HBTM) | 직원 신청 → 팀장 결재 승인 라우팅 | 비동기 | [[POL_결재워크플로우]] |
| Admin (HBAD) | 연장근무·외근·휴가 유형, 근태원천 config 소비 | 동기(조회) | HBAD261 / HBAD270 |
| HR (HBHR) | 급여명세서 원천·전자서명 교부 입증층 | 비동기 | HBHR270 |
| 알림/발송 (Notification) | per-event/per-channel 선호·mute·device_tokens 푸시 | 비동기 | [[HBEA110_Shell·탭바·알림]] |
화면 플로우 (4탭)
직원 앱은 조회·신청까지의 self-service 표면이다. 결재 승인은 HBTM, 정본 수정은 HR/Admin이 실행한다.
앱 개요 사양표
| 번호 | 항목/기능명 | 타입 | 사양 및 기능 설명 | 연관/영향 범위 | 비고 |
|---|---|---|---|---|---|
| 00 | 화면 진입 조건 | - | • 앱 진입 시 직원 인증(self scope)을 요구하는 게이트 • 진입 시: 조건1 [직원 인증(self scope)] 이면 노출- CASE01 [미인증]: /employee-app/signin 리다이렉트• 조건1 [직원] 전용 — 타 앱 계정 접근 경로 없음 | ${employee_session} · [[POL_권한(RBAC)]] | ⚠ 계정 레이어 전환(7/16 코드) 반영 여부 라이브 확인 필요 TBU: 세션 만료 재시도 UI · 타 앱 계정 접근 경로 |
| 01 | 초기 상태 | Output | • 진입 직후 랜딩 화면 • 진입 시: "근무 탭 (홈)" 랜딩 - CASE01 [당일 미출근]: "현재 상태 미출근" 카드 표시 | [[HBEA200_근무 탭 (홈)]] | |
| 10 | 정체성 | Info | • 전 직원 self-service front door — HR/Admin 원천을 self 범위로 조회·신청하는 모바일 PWA | PWA | |
| 20 | 4탭 구조 | - | • 하단 탭바 4탭 컨테이너: "근무" / "메신저" / "결재" / "더보기"(각 탭 액션은 ㄴ21-24) • 4월 5탭에서 재편(인센티브 탭 → 결재 서브탭 통합) | Shell 공통 [[HBEA110_Shell·탭바·알림]] | |
| ㄴ21 | 근무 | Tab | • 출퇴근 현황 홈(지문기 config-gated punch), 오늘 근무 유형 표시(예: "3교대 주간 07:00 - 15:00") • 클릭 → [[HBEA200_근무 탭 (홈)]] 전환 | [[HBEA200_근무 탭 (홈)]] | |
| ㄴ22 | 메신저 | Tab | • "대화" / "연락처" / "그룹 대화" — 공지는 "대화" 상단 "공지 n" 섹션, 배지 "메신저 0" • 클릭 → [[HBEA300_메신저]] 전환 | [[HBEA300_메신저]] | 4/5 개편 |
| ㄴ23 | 결재 | Tab | • 휴가·근무·인센티브·서류 4서브탭 신청 허브 • 클릭 → [[HBEA400_결재 허브]] 전환 | HBTM 승인 | |
| ㄴ24 | 더보기 | Tab | • 프로필 / 내 정보 / 근무 설정 / 급여명세서 / 로그아웃, 하단 "Hereby Works v1.0.0" • 클릭 → [[HBEA500_더보기]] 전환 | [[HBEA500_더보기]] | |
| 30 | 권한 범위 (self scope) | Info | • 모든 조회·신청 = Admin 권한 트리 (본인) scope 토큰으로 제한 (self < team < full). 타인 데이터·결재 자동승인 금지 | [[POL_권한(RBAC)]] | self scope |
| 40 | 화면 목록 (I.A.) | List | • 앱 하위 화면 트리(로그인·Shell·근무·메신저·결재 허브·더보기). 결재 허브는 4서브탭 신청 트리(ㄴ41-ㄴ46) | 앱 하위 화면 | |
| ㄴ41 | ㄴ 로그인·Shell | Link | • 클릭 → [[HBEA100_로그인]] / [[HBEA110_Shell·탭바·알림]] | ||
| ㄴ42 | ㄴ 근무·메신저 | Link | • 클릭 → [[HBEA200_근무 탭 (홈)]] / [[HBEA300_메신저]] | ||
| ㄴ43 | ㄴ 결재 허브 | Link | • 4서브탭 공통 골격(서브탭 스위처·상태 필터 칩·FAB) • 클릭 → [[HBEA400_결재 허브]] | 결재 탭 진입 | 공통 허브 |
| ㄴ44 | ㄴㄴ 휴가·근무 | Link | • 클릭 → [[HBEA410_휴가신청]] / [[HBEA420_근무 신청 (연장·휴일/외근)]] / [[HBEA421_보고서 제출]] | HBEA400 서브탭 | 보고서=근무 후속 |
| ㄴ45 | ㄴㄴ 인센티브·서류 | Link | • 클릭 → [[HBEA430_인센티브]] / [[HBEA440_서류관리]] | HBEA400 서브탭 | |
| ㄴ46 | ㄴ 더보기·명세서 | Link | • 클릭 → [[HBEA500_더보기]] / [[HBEA510_내 정보·근무 설정]] / [[HBEA530_급여명세서 모달]] | ||
| 50 | cross-app 연결 | List | • HBTM(신청 승인) · HBAD(유형·근태원천 config 소비) · HBHR(급여명세서·전자서명 교부) · Notification(알림·푸시) | Data I/O 외부 통합 참조 | |
| ㄴ51 | ㄴ 신청 승인 | Link | • 휴가/연장/외근/서류 신청 라우팅 • 클릭 → [[HBTM01_TeamManager_팀결재워크스페이스]] | [[POL_결재워크플로우]] | |
| ㄴ52 | ㄴ 유형 소비 | Link | • 연장근무·외근·휴가 유형 소비 • 클릭 → [[HBAD261_유형 설정 (연장근무·외근·휴가)]] | [[HBAD270_설정 (조직 설정·내 정보)]] · [[POL_근태원천]] | |
| ㄴ53 | ㄴ 명세서 교부 | Link | • 급여명세서 원천·전자서명 교부 입증층 연계 • 클릭 → [[HBHR270_전자서명 발송·eCount 연동 시트 (2섹션)]] | [[POL_급여정본경계]] |
AI 접점 요약표
ESS AI는 greenfield 확정(메신저 탭 AI 핀 0). 전 skill이 self scope + read/suggest/request-create + 사람 confirm 경계 내. 신청 mutation은 사람 confirm + 멱등키, 타인 데이터·결재 자동승인 금지([[POL_권한(RBAC)]] · [[POL_급여정본경계]]).
| AI Skill | 트리거 위치 | 동작 | 안전 경계 |
|---|---|---|---|
| 휴가 자연어 신청 | 결재 > 휴가신청 | "다음주 화수목 연차" → 결재 초안 → confirm → LeaveRequest | Write+confirm, self |
| 잔여연차·근무시간 질의 | 근무 / 결재 | "연차 며칠?" "이번주 몇시간?" | Read, self |
| 52h 임박 경고 | 근무 탭 | 주 52h 한도 임박 자동 경고(과태료 사전차단) | Read, self |
| 내 명세서 항목 설명 | 더보기 > 급여명세서 | "이번달 야근수당 얼마?" 자연어 설명 | Read, self-only |
| 외근→인센티브 본인 등록 | 결재 > 근무·인센티브 | "강남 방문 끝, 외근+인센티브 등록" → 초안 → confirm | Write+confirm, self-register TBU 후 활성 |
| 결재상태 추적 | 결재 탭 | "내 휴가 어디까지?" | Read, self |
| 증명서 자연어 발급 | 결재 > 서류관리 | "은행용 재직증명서 1부" → DocumentRequest | Write+confirm, self |
| 신입 온보딩 가이드 | 첫 로그인 | 첫 로그인 자동 체크리스트 | self |
권한·상태 분기 요약
| 시나리오 | 트리거 | 결과 화면 | 비고 |
|---|---|---|---|
| CASE01 [미인증 진입] | /employee-app 직접 | /employee-app/signin 리다이렉트(비밀번호 / 휴대폰 인증) | ⚠ 계정 레이어 7/16 |
| CASE02 [직원 인증] | 로그인(self scope) | 근무 탭 홈 | |
| CASE03 [신청] | 결재 > + 작성 | 대기중 → 승인/반려/취소(팀장 결재 = HBTM) | self scope |
하위 화면 상태
| 화면 | 코드 | 버전 | Status | 최종 갱신 | 비고 |
|---|---|---|---|---|---|
| 로그인 | [[HBEA100_로그인]] | v2 | review | 2026-07-21 | |
| Shell·탭바·알림 | [[HBEA110_Shell·탭바·알림]] | v3 | review | 2026-07-21 | fixed-header 정책 반영 |
| 근무 탭 (홈) | [[HBEA200_근무 탭 (홈)]] | v2 | review | 2026-07-21 | |
| 메신저 | [[HBEA300_메신저]] | v3 | review | 2026-07-21 | 공지 확인 cross-app write-back |
| 결재 허브 | [[HBEA400_결재 허브]] | v3 | review | 2026-07-21 | GC700 재작성 — 4서브탭 공통 골격 |
| 휴가신청 | [[HBEA410_휴가신청]] | v3 | review | 2026-07-21 | GC700 재작성 — 휴가 신청 폼 |
| 근무 신청 | [[HBEA420_근무 신청 (연장·휴일/외근)]] | v3 | review | 2026-07-21 | 연장·휴일/외근 폼·필터 |
| 보고서 제출 | [[HBEA421_보고서 제출]] | v4 | review | 2026-07-21 | GC700 재작성 — 외근 보고서 폼(제출 검증분) |
| 인센티브 | [[HBEA430_인센티브]] | v2 | review | 2026-07-21 | |
| 서류관리 | [[HBEA440_서류관리]] | v3 | review | 2026-07-21 | |
| 더보기 | [[HBEA500_더보기]] | v3 | review | 2026-07-21 | |
| 내 정보·근무 설정 | [[HBEA510_내 정보·근무 설정]] | v3 | review | 2026-07-21 | |
| 급여명세서 모달 | [[HBEA530_급여명세서 모달]] | v1 | draft | 2026-07-21 | 실직원 데이터 대기 |
Open Question
- ⚠ 계정 레이어 전환(7/16 코드): 세션 발급 주체·계정 소속(직원/테넌트) 레이어 변경이 EA 로그인·개요에 반영됐는지 라이브 재확인 필요
- 권한 레벨 체계(self/team/full, 조회/관리/계산/승인 상하관계·내부 key) = TBU (HBAD 공통)
- 인센티브 self-register: 현재 화면에 본인 등록 진입점(버튼·FAB) 없음 [[HBEA430_인센티브]]
- 메신저 탭 AI 핀 배치(단체방 영구 핀 / 별도 AI 탭) = TBU
- 급여명세서 §48 본문 + 전자서명 서명 액션(실직원 계정 필요) = TBU
- Data I/O tRPC procedure·권한 토큰 명칭 확정값 = TBU