HBEA200_근무 탭 (홈)
(Hereby) 직원 앱 > 근무 탭 (홈)
| 앱 | 직원 앱 Hereby Works (포트 4002) |
| 대상 사용자 | 조건1 [EMPLOYEE] (직원 인증 후 전원) |
| 프로토타입 | TBU |
| 관련 정책 | [[POL_근태원천]] |
| Status | review |
| Owner | 카나 |
개요
직원 앱 진입 후 최초 랜딩하는 근무 탭(홈). 당일 출퇴근 현황을 "현재 상태" 카드로 조회하고, 오늘 배정된 근무 유형("3교대 주간 07:00 - 15:00")을 표시한다. 출퇴근 punch UI는 config-gated — 테넌트 근태원천 config가 secom(지문기)이면 모바일 punch 버튼 미노출("지문 단말기로 출퇴근이 기록돼요." 안내만), app 모드면 check-in/out 버튼 노출. 기능 부재가 아니라 설정 분기다.
문서 히스토리
| 날짜 | 작성자 | 팀 | 변경 내용 |
|---|---|---|---|
| 2026-07-06 | 카나 | PM | 최초 작성 |
| 2026-07-10 | 카나 | PM | 라이브 기능 검토 반영 (오늘 근무 유형 표시 신규) |
| 2026-07-21 | 카나 | PM | GC700 깊이 재작성 |
| 2026-07-21 | 카나 | PM | 셀 스타일 확정판 적용 (콸 승인) |
| 2026-07-21 | 카나 | PM | TC 크로스체크 확정분 반영 (🟡) — SECOM 파이프라인 |
| 2026-09-21 | 카나 | PM | 「오늘 근무」·연장근무 휴일 판정을 판정 서비스(shift-resolution.service) 단일 경로로 통합, 근태 홈에 근무 배정 출처(shiftAssignedVia) 표시 반영(c4eb0f9, #804) — 커밋 근거, 라이브 실사 이월(TBU) |
| 2026-10-01 | 카나 | PM | 「이번 주 근태」 카드(월~일 7행 표·주 이동·주 합계) 신설, 출퇴근 직후 즉시 갱신(6e0584c5, #949) — 커밋 근거, 라이브 실사 이월(TBU) |
| 2026-10-07 | 카나 | PM | PR #1035 반영: 「지금 할 일」 반려 보기 → 신청 상세 직행·「이어서 작성」(25 신설) · 「오늘의 축하」 상세 + 축하 메시지 초안(26 신설) · 근무 기록 일별 「출퇴근 정정 요청」·「기록 추가 요청」(27 신설). ⚠️ #1049(이번 주 근태 카드 기본 꺼짐)는 close·미머지 — 반영하지 않음. 커밋 근거, 라이브 실사 이월(TBU) |
| 2026-10-08 | 카나 | PM | 10/7 머지분 반영 — 0f568bac(PR #1083 포함): 출퇴근 카드 「판정 순서」 줄을 출근하기 버튼 아래로·13px(ㄴ12-2 신설) · 배정 근무 없이 조직 기준 시각만 쓴 경우 「조직 기본 기준시간」 출처 줄 숨김(ㄴ12-1 보강) · 근무 홈 스크롤 시 헤더 유리(접힘 없음, [[HBEA110]] ㄴ14). 커밋 근거, 라이브 실사 이월(TBU) |
| 2026-10-10 | 카나 | PM | (10/9 머지분) PR #1125(MED-975) 반영: 공지(새로운 소식) 카드 노출 규칙 재정 — 안 본 글은 늘, 본 글은 병원 설정 일수(noticeKeepDays) 동안, 정보 게시글도 노출 대상 포함(16 신설) — 커밋 근거, 직원 앱 카드 실사 TBU(이 계정 미노출)·관리자 설정 실증 완료 |
| 2026-10-13 | 카나 | PM | (10/10~12 머지분) 근무 기록 일별 「이 날 시간외 근무 신청」(28, #1141 — 10/13 실증) · 출퇴근 기록 출처 표시(29, #1145 — 기록 0건이라 실사 TBU) · 소식 전체 페이지 뒤로가기·정보 게시글 읽음 규칙 수정(16 비고 보강, #1183) |
Data I/O
Server → Client
| 변수 | 엔티티.컬럼 | 값 없을 때 | 비고 |
|---|---|---|---|
| $ | Attendance.status | "미출근" 표기 | 당일 근태 상태. 당일 레코드 미존재 시 미출근 |
| $ | Attendance.actualCheckIn | hide (당일 미출근 시 미표기) | 당일 출근 시각 (정책: 당일 출퇴근 시간만 노출) |
| $ | Attendance.actualCheckOut | hide (미퇴근 시 미표기) | 당일 퇴근 시각 |
| $ | Organization.attendanceSource (secom | app) | 기본값 = secom 가정 (TBU) | config-gated punch 노출 결정 |
| $ | WorkScheduleType (본인 근무시간 설정 연동) | hide (근무유형 미설정 시 미표기) | 오늘 근무 유형. "3교대 주간 07:00 - 15:00" 형식. 원천 = 더보기 > 내 정보의 근무시간 선택 |
| $ | attendance.workLog({from,to}).days[] (shift.name · leave.name · segments · hours.total) + totals.total | 기록 없는 날도 빈 행으로 채움(7행 고정), 시각·근무 "-" | 이번 주 근태 카드 (#949). 기록 있는 날만 응답 → 클라이언트가 월~일 채움 |
| $ | conversation_members.unreadCount 합 | "0" | 하단 탭바 "메신저 0" 배지 (Shell 공통, [[HBEA110]]) |
Client → Server
| 액션 | 전달값 | tRPC procedure | 권한 토큰 |
|---|---|---|---|
| 출근 punch (app 모드) | { } (현재시각 서버 스탬프) | sdk.attendance.checkIn() (추정) | attendance:write.self (추정) |
| 퇴근 punch (app 모드) | sdk.attendance.checkOut() (추정) | attendance:write.self (추정) | |
| 외근 등록 진입 | — (결재 탭 이동, 경계 OQ 참조) | — | — |
| 주간 근태 조회 (카드 로드·주 이동) | { from, to } (월~일) | sdk.attendance.workLog() | attendance:read (미보유 시 카드 숨김) |
| 홈 새로고침 / 당일 상태 조회 | sdk.attendance.getToday() (추정) | attendance:read.self (추정) |
외부 통합
| 외부 시스템 | 데이터 | 동기/비동기 | polling 주기 |
|---|---|---|---|
| Secom 지문 단말기 | 지문 punch 이벤트 → secomEvent.ingestEvents → secom_events → processPending → Attendance (attendanceId 매핑) | 비동기 (단말기 → 서버 push/배치) | TBU · SECOM 파이프라인 표 참조 |
화면 플로우
출퇴근 원천은 Admin config에 종속 — Secom(지문기) 테넌트는 모바일 punch 미노출, app 모드 테넌트는 punch 버튼 노출 ([[POL_근태원천]]). okbest 테넌트는 현재 secom 모드.
근무 탭 (홈) 사양표
| 번호 | 항목/기능명 | 타입 | 사양 및 기능 설명 | 연관/영향 범위 | 비고 |
|---|---|---|---|---|---|
| 00 | 화면 진입 조건 | - | 조건1 [EMPLOYEE] 인증 완료 시 노출. 앱 진입 후 기본 랜딩 탭 | [[HBEA100]] 로그인 | |
| 01 | 초기 상태 | Output | 진입 시 당일 Attendance 조회 후 카드 렌더 | Attendance | TBU: 당일 레코드 없음/status 부재 시 "미출근" 폴백 표기 |
| 10 | 현재 상태 카드 | Card | 당일 출퇴근 상태 + 오늘 근무 유형 표시 상단 카드 | Attendance.status | 정책: 당일 출퇴근 시간만 |
| ㄴ11 | ㄴ 상태 라벨 | Text | "현재 상태" + 상태값 표기 | Attendance.status | |
| ㄴ11-1 | ㄴ 상태 분기 | Text | CASE01 [미출근] "미출근" / CASE02 [출근] 출근시각 / CASE03 [퇴근] 퇴근시각 (당일만) | Attendance.actualCheckIn/Out | |
| ㄴ12 | ㄴ 오늘 근무 유형 | Text | "3교대 주간 07:00 - 15:00" 형식 표기. 본인 근무시간 설정 연동 | [[HBEA510_내 정보·근무 설정]] | 원천 = 더보기 > 내 정보의 근무시간 선택 |
| ㄴ12-1 | ㄴ 근무형태 판정 출처 | Text | • 「오늘 근무」가 판정 서비스 한 곳(shift-resolution.service)을 거치도록 변경 — 기존에는 employee.shift만 읽었음- 판정 순서: 근무표 → 직원 배정 → 그룹 → 조직 기본 근무형태 → 조직 기본 기준시간 - 앱 출근·일괄 입력·오늘 근무·연장근무 휴일 판정이 같은 순서 사용 • 근태 홈에 배정 출처( shiftAssignedVia) 표시. 직원 앱에서 본인이 고른 경우 출처 = 「직원 앱 자기 선택」- 값 없음: 출처 미기록 데이터 표기 = TBU • 규칙 문서: docs/ko/features/shift-resolution.md | employees.shiftAssignedVia · attendances.metadata.shiftSource · [[HBAD250_근태 현황 (근무)]] | 신설 (코드 반영: c4eb0f9, #804) · TBU: 라이브 실사 이월 |
| ㄴ12-2 | ㄴ 판정 순서 줄 · 출처 줄 | Text | • (10/8, #1083, 0f568bac) 출퇴근 카드의 "판정 순서: " + 단계 이름(" → " 구분, 오늘 쓰인 단계는 진하게 — 예: 「스케줄 배정 → 직원 근무 → 근로형태/직무 기본값」) 줄을 「출근하기」 버튼 아래로 옮김(종전: 상태 · 버튼 사이) • 글자 = 직원 앱 최소 13px(b5, 종전 11px), 단계 이름은 중간에서 줄바꿈 안 됨 • 배정 출처 줄(근무표 배정 · 직원 근무 배정 등)은 그대로 - CASE01 [배정된 근무 없음 = 조직 기준 시각만 사용(org_default_time)]: 「조직 기본 기준시간」 출처 줄 숨김 — 판정 순서 줄이 「근로형태/직무 기본값」 단계를 진하게 해 같은 사실을 보여 줌 • 노출: 출처 라벨(shiftSourceLabel)이 있을 때만 | shifts.html shift-judgment-order · shift-source · [[HBEA110_Shell·탭바·알림]] | 위치 · 크기 변경 (0f568bac, #1083 · MED-923 #1059 후속) · TBU: 단계 이름 원문 전수(실사 대기) |
| ㄴ12-E | ㄴ 근무 유형 없음 | Text | 근무유형 미설정 시 해당 라인 hide | WorkScheduleType | |
| ㄴ13 | ㄴ 출퇴근 안내 (secom) | Info | CASE01 [secom 모드]에서만 "지문 단말기로 출퇴근이 기록돼요." 노출. app 모드 시 미노출 | Secom 지문기 | config-gated |
| ㄴ14 | ㄴ 출근/퇴근 punch (app) | Button | • 모바일에서 현재시각을 서버 스탬프해 출퇴근을 기록하는 기능. CASE02 [app 모드]에서만 노출, secom 모드면 완전 미노출• 클릭 → 현재시각 서버 스탬프, 성공: 출근/퇴근 상태 전이 | Attendance.actualCheckIn/Out | TBU: 실 UI(레이블·전이·위치)·에러 토스트 |
| ㄴ14-E | ㄴ 미출근 시 | Button | 당일 레코드 없으면 출근 버튼 활성 | Attendance | |
| 15 | 이번 주 근태 카드 | Card | • 「현재 상태」 카드 아래에서 월~일 본인 근태를 하루 한 줄 표로 보여주는 카드. 제목 "이번 주 근태"(지난 주 조회 시 "주간 근태") • 노출: 병원 설정 「직원 앱 첫화면」 showWeeklyAttendance(기본 켬) + attendance:read 보유 시. 기본 순서 = 이번 주 근태 → 오늘의 축하 → 공지 | sdk.attendance.workLog() · 관리자 병원 설정 「직원 앱 첫화면」 | 신설(6e0584c5, #949) · TBU: 라이브 실사 |
| 16 | 공지 카드 (새로운 소식) — 노출 규칙 | Rule | • (10/9 머지, #1125, MED-975) 홈 「새로운 소식」(공지) 카드의 글 노출 규칙 재정: - CASE01 [안 본 글]: 게시 중이면 늘 보임 — 확인 필요 공지는 「확인 했어요」 전, 정보 게시글(requiresAcknowledgment=false)은 열어 보기 전. 종전엔 정보 게시글이 홈에 한 번도 안 떴고(전부 정보 게시글이면 카드 자체가 사라짐), 확인한 공지는 즉시 빠졌음 - CASE02 [본 글]: 게시 후 병원 설정 일수( noticeKeepDays, 0~30 — [[HBAD270_설정 (조직 설정·내 정보)]] 45) 동안 유지 후 제외. 0일이면 확인 즉시 제외- 정보 게시글의 「본」 판정: 서버 읽음 기록이 없어 기기(local) 열람 기록 기준 • 표시 건수는 기존 noticeLimit(최대 N건) 유지 | home-feed · settings.employeeHome.noticeKeepDays · [[HBGA230_공지]] | 신설 (#1125) · 커밋 근거 — 홈 카드 자체는 이 계정 조건(게시 팀·확인 상태)으로 미노출, 실사 TBU. 관리자 설정 쪽은 10/10 실증 · (10/12 머지, #1183) 「소식」 전체 페이지: 공지 상세에서 뒤로 가면 홈 1depth가 아니라 소식 목록으로 복귀(homeReturn에 homePage 전달) + 정보 게시글은 열어 보면 「확인 전」·주황 점 제거(isEmployeeHomeNoticeSeen 공용 규칙·NOTICE_READ_EVENT 실시간 반영, 종전엔 isAcknowledged만 봐서 영구 「확인 전」) |
| ㄴ15-1 | ㄴ 주 이동 | Button | • 「<」("이전 주") · 「>」("다음 주") 버튼과 가운데 주 범위 라벨("9.28 ~ 10.4" 형식) • 클릭 → 해당 주 재조회, 로딩 중 표 위 흰 딤 + 스피너 - CASE01 [이번 주]: 「>」 비활성(오늘이 속한 주 이후로 이동 불가) | attendance.workLog | |
| ㄴ15-2 | ㄴ 일별 행 | List | • 월~일 7행 고정(기록 없는 날도 행 유지). 열 = 요일 · 근무/휴가/외근 · "출근" · "퇴근" · "근무" • 요일 + 일자: 오늘 = 주황 요일 칩, 주말·공휴일 = 빨간 요일 | 375px 5열 | |
| ㄴ15-3 | ㄴ 근무/휴가/외근 라벨 | Label | • 근무형태명(회색) · 휴가명(초록) · "외근"(파랑) · "연장"(회색, 승인·합산된 연장근무만) 라벨 - CASE01 [공휴일 + 근무·휴가 없음]: "공휴일"(빨강) 표기 | shift.name · leave.name · segments.kind | |
| ㄴ15-4 | ㄴ 출근·퇴근·근무 | Text | • 출근 = 그날 가장 이른 출근, 퇴근 = 가장 늦은 퇴근("HH:MM"), 근무 = 그날 합계("8:30" 형식) - CASE01 [익일 퇴근]: 퇴근 시각 위에 "익일" 표기 • 값 없음: "-" | segments(clock) · hours.total | |
| ㄴ15-5 | ㄴ 주 합계 | Text | • "주 합계" + 서버 합계("40:00" 형식) • 하단 안내 "급여·근로시간 마감과 같은 기준으로 합산해요. 자세한 내역은 「전체 근무기록」에서 봐요." | totals.total · 급여·근로시간 마감 | 승인 대기 연장근무는 합계 미포함(가이드 원문) |
| ㄴ15-6 | ㄴ 즉시 갱신 | - | 앱 출근/퇴근 확정 직후 표 자동 재조회(당겨서 새로고침과 같은 갱신) | ㄴ14 출근/퇴근 punch | |
| ㄴ15-E | ㄴ 빈 주·조회 실패 | Text | • 기록 없는 주도 카드 유지(7행 모두 "-") • 조회 실패: "주 합계" 자리에 "근태를 불러오지 못했어요." 표기, 표 틀 유지 • attendance:read 미보유: 카드 미노출 | TBU: 빈 주 합계 표기 | |
| 20 | 외근 등록 진입 | Link | • 외근 등록 동선으로 진입하는 링크(배치 위치 근무홈 vs 결재 탭 미확정, OQ 참조) • 클릭 → TBU | [[HBEA400]] 결재 탭 (추정) | TBU: 범위 경계 OQ |
| 25 | 지금 할 일 | List | • (10/7, #1035) 홈(근무 탭)의 할 일 목록 — 반려 알림·이어서 작성 등 • 반려 「보기」 → 신청 상세(a65248b9): 반려 알림의 "보기"를 누르면 결재 목록 대신 **그 반려된 신청의 상세 화면(2depth)**이 바로 열리고, 「<」·기기 뒤로 가기는 들어오기 전 화면(홈 첫 화면 ↔ 「지금 할 일」 전체 화면)으로 복귀(router.markHomeReturn — 공지 상세와 같은 계약). 결재 목록 미로드면 먼저 읽고 열고, 그 신청이 없어졌으면 내 신청·결재 현황에 남음 • 「이어서 작성」(bf34a923): 저장한 신청서 초안이 홈 「지금 할 일」에 "이어서 작성"으로 표시([[HBEA410_휴가신청]] 초안 저장) | [[HBEA400_결재 허브]] · router.markHomeReturn | 신설 (#1035) · 목록 구성·원문 TBU(실사 대기) |
| 26 | 오늘의 축하 | List | • (10/7, #1035, 89d8b531) 축하 줄(생일·입사 N주년)을 누르면 **그 사람 상세(2depth)**가 열리고, "축하 메시지 보내기"가 메신저 1:1을 열어 기본 문구(생일 · 입사 N주년)를 입력칸에 채움 — 자동 전송하지 않음. 방은 서버 conversation.create가 찾아 주므로 동명이인도 맞는 방, 손대지 않고 나가면 채운 문구는 지움 | [[HBEA300_메신저]] · conversation.create | 신설 (#1035) · 원문 TBU(실사 대기) |
| 27 | 근무 기록 (일별) — 정정 요청 진입 | Button | • (10/7, #1035, afd9bb68) 근무 기록 「일별」에 「출퇴근 정정 요청」·「기록 추가 요청」(잠긴 날·검토 중은 안내) — 지난 출퇴근 기록 시각 수정 또는 빠진 날 기록 추가를 요청. 요청 폼 + 보낸 뒤 화면, 결재 「내 신청·결재 현황」 근무 묶음에 「정정」 카드·상세·요청 취소([[HBEA400_결재 허브]]) • 급여 확정·지급 기간·근로시간 마감된 날은 요청 불가. 알림: 요청 → 근태 승인 권한자, 결과 → 요청자 | attendanceCorrection 라우터(request·mine·cancel·dayStatus) · [[HBAD250_근태 현황 (근무)]] 정정 요청 탭 | 신설 (#1035) · 10/13 실사: 과거 빈 날에 「기록 추가 요청」 + "휴가였다면 정정이 아니라 휴가 신청을 해 주세요." 안내 실측 |
| 28 | 근무 기록 (일별) — 이 날 시간외 근무 신청 | Button | • (10/10 머지, #1141, MED-965) 근무 기록 일별 화면에 「이 날 시간외 근무 신청」 버튼(10/13 실측 — 과거일에 노출, 오늘(미래 포함)은 미노출) — 결재 탭으로 이동해 그 날짜가 채워진 연장 신청서를 엶(app-open-request overtime-new). 결재 메뉴를 찾지 않아도 되는 진입점 | [[HBEA420_근무 신청 (연장·휴일/외근)]] | 신설 (#1141) · 라이브 실증 2026-10-13 |
| 29 | 출퇴근 기록 출처 표시 | Label | • (10/10 머지, #1145, MED-970) 근무 기록 일별 출퇴근 줄에 기록 출처 병기 — "09:00~18:00 · 지문"처럼 지문(secom) / 앱(app) / 관리자 입력(manual). 출처는 기록 생성 주체가 metadata(checkInSource·checkOutSource)에 남김, 배포 이후 새 기록부터(옛 기록은 관리자 입력만 추정·나머지 빈 값) • 세콤 「버튼 태그만 반영」 설정은 [[HBAD270_설정 (조직 설정·내 정보)]] 참조 | work-log · secom-processor | 신설 (#1145) · 실사 계정 기록 0건 — 라벨 실측 TBU |
| 30 | 하단 탭바 | Tab | • 근무/메신저/결재/더보기 4탭 + "메신저 0" 배지를 전환하는 하단 네비게이션 • 클릭 → 해당 탭 전환 | [[HBEA110_Shell·탭바·알림]] | Shell 공통 |
| -E | 당일 데이터 Empty | Text | 당일 Attendance 전무 시 카드는 "미출근" 상태로 렌더 (전용 Empty 문구 없음) | Attendance | 별도 Empty 카피 미관찰 |
근태원천 분기 보조표
| 모드 | punch UI | 안내 문구 | 원천 | 비고 |
|---|---|---|---|---|
CASE01 [secom] (지문기) | punch 버튼 없음 | "지문 단말기로 출퇴근이 기록돼요." | secom_events → Attendance | okbest 테넌트 현재 모드 |
CASE02 [app] (모바일 punch) | 출근/퇴근 버튼 노출 (실 UI TBU) | 안내 문구 미노출 (추정) | Attendance.actualCheckIn/Out | 데모는 app 모드 테넌트 필요 |
SECOM 이벤트 파이프라인 (secom 모드 원천 처리)
secom 모드 테넌트는 지문 단말기 이벤트를 3단계 파이프라인으로 근태 정본에 반영한다. 이벤트 처리 화면 자체는 라이브 사양서 부재(누락). procedure·enum은 TC 라이브 확정. (TC 확정: 01:1.9 SECOM)
| 단계 | procedure | 입력/출력 | 비고 |
|---|---|---|---|
| 수집 | secomEvent.ingestEvents([{ eventDatetime, terminalId, employeeNumber, rawEventType, authType }]) | 단말기 raw 이벤트 배치 삽입 | rawEventType "1"=출근 / "2"=퇴근 |
| 조회 | secomEvent.listEvents({ status }) | status별 이벤트 목록 | status = pending / error |
| 처리 | secomEvent.processPending() | pending 이벤트 → Attendance 반영 | 매핑 실패 시 error |
enum·매핑 확정:
- status:
pending(미처리) /error(매핑 실패) - eventType:
check_in/check_out(rawEventType"1"/"2"매핑 결과) - 미지 사번(employeeNumber 미매칭): status=
error, 사유 "not found"
권한·상태 분기 요약
| 시나리오 | 트리거 | 결과 화면 | 비고 |
|---|---|---|---|
CASE01 [Secom 모드 진입] | 근무 탭 진입 (config=secom) | "미출근" 카드 + 안내문, punch 버튼 없음 | config-gated |
CASE02 [app 모드 진입] | 근무 탭 진입 (config=app) | "미출근" 카드 + 출근/퇴근 punch 버튼 | [[POL_근태원천]] |
CASE03 [출근 후] | (app) 출근 punch / (secom) 지문 인식 | 카드에 당일 출근시각 표기 | 당일만 |
CASE04 [퇴근 후] | (app) 퇴근 punch / (secom) 지문 인식 | 카드에 당일 퇴근시각 표기 | 당일만 |
조건1 [EMPLOYEE] | 전 직원 인증 | 근무홈 전체 노출 (원천 모드에 따라 punch만 분기) | 역할 세분 미관찰 |
조건2 [attendance:read 미보유] | 근무 탭 진입 | 이번 주 근태 카드 미노출 | #949 |
Open Question
- app 모드 punch 버튼 실 UI (레이블·상태 전이·버튼 위치·에러 토스트) = TBU (app 모드 테넌트 데모 필요)
- 근태원천 config 토글 키·enum 정확명 (
secom/app가정) 및 Organization 컬럼명 = TBU - 현재 상태 카드 상세 필드 중 출근시각·근무시간 요약의 정확한 표기 포맷 = TBU (오늘 근무 유형 표시 자체는 확인됨)
- [범위 경계] 정책 home.md의 "외근 등록 / 외근 등록 리스트 추가"가 근무홈(HBEA200) 범위인지 결재 탭([[HBEA400]]) 범위인지 미확정 — 현행 라이브에서 외근 신청 폼은 결재 탭 관측(ea-diff B7). 근무홈 진입 링크 여부 검증 필요 = TBU/OQ
- 정책상 삭제 대상("주간 근무시간 / 이번주 근무 스케줄 삭제")의 현행 라이브 잔존 여부 = TBU (본 캡처에는 두 항목 미관찰, 삭제 반영으로 추정). 단 #949로 「이번 주 근태」 표가 신설됨 — 정책 home.md 삭제 항목과의 정합성 확인 필요 = OQ
- 지문 단말기 → 서버 동기화 주기(실시간 push vs 배치) = TBU. 단 처리 파이프라인 procedure(
secomEvent.ingestEvents/listEvents/processPending)·status(pending/error)·eventType(check_in/check_out)은 확정 (TC: 01:1.9). 이벤트 처리 UI 화면은 사양서 부재(누락)