HBEA510_내 정보·근무 설정
(Hereby) 직원 앱 > 더보기 > 내 정보·근무 설정
| 앱 | 직원 앱 (Employee App, 포트 4002) |
| 대상 사용자 | 조건1 [EMPLOYEE] (self scope) |
| 프로토타입 | TBU |
| 관련 정책 | [[POL_더보기개편]] (FIG 정책 more.md) · [[POL_RBAC권한모델]] |
| Status | review |
| Owner | 카나 |
개요
- 더보기 탭 메뉴 "내 정보" / "근무 설정"에서 진입하는 self scope 조회·수정 표면. 부모 화면은 [[HBEA500_더보기]].
- 두 메뉴는 각각 독립 모달로 열린다. ① 내 정보 모달 = 프로필 필드 + 근무시간 선택 + "휴대폰 인증 로그인 허용" 토글 + 알림 설정 + "비밀번호 재설정" / "저장". ② 근무 설정 모달 = 내 정보의 근무시간 섹션만 독립적으로 연 "근무 설정" / "근무시간" 모달.
- 프로필 수정 허용 항목은 Admin "직원 본인 수정 허용 항목"([[HBAD270_설정 (조직 설정·내 정보)]])에 연동된다.
문서 히스토리
| 날짜 | 작성자 | 팀 | 변경 내용 |
|---|---|---|---|
| 2026-07-06 | 카나 | PM | 최초 작성 |
| 2026-07-10 | 카나 | PM | 라이브 기능 검토 반영 (내 정보 상세·근무 설정 독립 모달) |
| 2026-07-13 | 카나 | PM | 버튼 행동 명세 보강 |
| 2026-07-21 | 카나 | PM | GC700 깊이 재작성 |
| 2026-07-21 | 카나 | PM | 셀 스타일 확정판 적용 (콸 승인) |
| 2026-07-22 | 카나 | PM | 코드 변경 반영(d7bd3f4) |
Data I/O
Server → Client
| 변수 | DB 엔티티.컬럼 | 값 없을 때 | 비고 |
|---|---|---|---|
${profile} | Employee.{name,employeeNo,email,teamName,birthDate,phone,address,emergencyContact,bankAccount} (self) | 빈 필드 "-" 표시 (라이브: "팀 -", "생년월일 -", "계좌정보 -") | census 필드 |
${editable_fields} | Admin "직원 본인 수정 허용 항목" 집합 | 미허용 필드는 읽기 전용 | HBAD270 종속 |
${work_types} | WorkType[] (근무 유형 목록) | "— 근무시간 선택 —" placeholder | HBAD261 원천 |
${work_type_recommended} | 최근 출근 기록 기반 짐작값 | 기록 0회 시 추천 산정 불가 | 안내 문구에 회수 노출 |
${notification_settings} | NotificationSetting.{push,receiveAll} (self) | 기본값(추정 ON) | 푸시 알림 / 전체 알림 받기 |
${phone_auth_login_allowed} | Employee.phoneAuthLoginAllowed (self) | OFF (라이브 관찰) | 토글 상태 |
${signature_image} | Employee.signatureImage (self, data URI) | 미등록 시 미리보기 미표시 | 서명 조회 엔드포인트 (코드 반영: d7bd3f4) |
Client → Server
| 액션 | 전달 값 | tRPC procedure | 권한 토큰 |
|---|---|---|---|
| 본인정보 수정 | 허용 필드 patch | sdk.employee.updateSelf() (추정) | employee:write.self |
| 근무시간 저장 | workTypeId | sdk.employee.updateSelf() (추정) | employee:write.self |
| 휴대폰 인증 로그인 허용 | boolean | sdk.employee.updateSelf() (추정) | employee:write.self |
| 본인 서명 업로드 | 서명 이미지 (data URI) | 직원 서명 업로드 엔드포인트 (Employee.signatureImage migration) | employee:write.self (추정) |
| 알림 설정 | 푸시 / 전체 boolean | sdk.notification.updateSelf() (추정) | notification:write.self |
| 비밀번호 재설정 | — | 재설정 플로우 진입 | (본인 계정) |
외부 통합 (cross-app)
| 외부 시스템 | 데이터 | 동기/비동기 | 비고 |
|---|---|---|---|
| Admin 유형 설정 ([[HBAD261_유형 설정 (연장근무·외근·휴가)]]) | 근무 유형 목록 원천 | 동기 (모달 로드 시) | select 옵션 |
| Admin 조직 설정 ([[HBAD270_설정 (조직 설정·내 정보)]]) | "직원 본인 수정 허용 항목" 원천 | 동기 | 수정 가능 필드 결정 |
화면 플로우 (내 정보 · 근무 설정 독립 모달)
(a) 내 정보 모달 사양표
| 번호 | 항목/기능명 | 타입 | 사양 및 기능 설명 | 연관/영향 범위 | 비고 |
|---|---|---|---|---|---|
| 00 | 화면 진입 조건 | - | 조건1 [EMPLOYEE] 인증 · 더보기 "내 정보" 선택 시 모달 노출 | 인증 세션 (self) | |
| 01 | 초기 상태 | Output | ${profile} 로드하여 프로필 필드 채움. 값 없는 필드는 "-" 표시 | self | |
| 10 | 프로필 필드 | Form | 이름 / 사번 / 이메일 / 팀 / 생년월일 / 전화번호 / 주소 / 비상연락처 / 계좌정보 | sdk.employee.updateSelf() | census 필드 |
| ㄴ | 값 표시 (라이브) | Output | 상단 "최콸 FIRMA005", "이름 최콸", "이메일 djcola814@gmail.com", "전화번호 010-2955-7354" | census 원문 | |
| ㄴ | 값 없음 처리 | Output | 라이브(7/10) 빈 값은 "-": "팀 -" / "생년월일 -" / "계좌정보 -". 주소·비상연락처는 값 없이 라벨만 | census 관찰 | |
| ㄴ | 수정 가능 필드 | Input | ${editable_fields} 허용 필드만 편집. 나머지 읽기 전용 | [[HBAD270_설정 (조직 설정·내 정보)]] | Admin 종속 |
| ㄴ | 정책(예정) | - | 수정 불가[성명·사번·이메일·부서/팀] / 수정 가능[전화번호·비상연락처]. 생년월일·계좌정보·주소 필드 제거(주소는 직원 등록 시로 이동). 순서[성명·사번·이메일·부서/팀·전화번호·비상연락처·비밀번호 수정] | [[POL_더보기개편]] | 정책 vs 라이브 (출처: FIG 정책 more.md) |
| ㄴ | 정책(예정) 자물쇠 | - | 잠금 필드 자물쇠 호버·터치 시 "변경을 원하시면 관리자에게 문의해 주세요." 안내 | [[POL_더보기개편]] | 정책 원문 |
| ㄴ | 라이브(현행) | Output | 7/10 라이브는 생년월일·주소·계좌정보 필드 여전히 노출 + 자물쇠 안내 미확인 | 정책 미적용 | |
| 20 | 근무시간 선택 | Select | • 본인 근무시간 지정. placeholder "— 근무시간 선택 —" • 선택 → 근무 유형 반영 | 근무 유형([[HBAD261_유형 설정 (연장근무·외근·휴가)]]) | census 원문 |
| ㄴ | 옵션 (라이브) | ListItem | "스케줄 근무 (00:00-12:00)" / "3교대 주간 (07:00-15:00)" / "3교대 오후 (15:00-23:00)" / "3교대 야간 (23:00-07:00)" / "일반근무 (09:00-18:00)" 등 | census 원문 (junk 옵션 "sdfsfsd" 등 혼입) | |
| ㄴ | 추천 안내 | Info | "'추천'은 최근 출근 기록(0회)으로 짐작한 값이에요. 실제 근무시간과 다르면 본인 근무시간을 직접 선택해 주세요." | 최근 출근 기록 | census 원문 (라이브 0회) |
| ㄴ | 값 없음 처리 | Output | 미선택 시 "— 근무시간 선택 —" 유지. 출근 기록 0회 → 추천값 부재 | ||
| 30 | 휴대폰 인증 로그인 허용 | Toggle | • SMS 인증번호 로그인 허용 on/off. 설명 "직원이 SMS 인증번호로 로그인할 수 있도록 허용해요". 라이브 기본 "OFF" • 토글 → 허용 상태 전환 | 본인 로그인 옵션 | census 원문 |
| 40 | 알림 설정 | Toggle | • 푸시/전체 알림 on/off. 항목 "푸시 알림" / "전체 알림 받기", 설명 "끄면 모든 유형의 알림이 일시중지돼요." • 토글 → 알림 설정 전환 | ${notification_settings} | census 원문 |
| 45 | 본인 서명 이미지 | Upload | • MyInfoForm에 본인 서명 이미지 업로드 + 미리보기 추가. 서명 이미지 업로드 후 미리보기 표시 • 업로드 → data URI로 저장( Employee.signatureImage). 서버: 직원 서명 업로드/조회 엔드포인트• 문서 결재 양식(승인 폼)에 서명 자동 삽입 연동 - CASE01 [미등록]: 미리보기 미표시 | sdk.employee.updateSelf() (추정) · Employee.signatureImage · [[HBAD270_설정 (조직 설정·내 정보)]] | 신설 · migration 컬럼 추가 · 결재 양식 서명 삽입(코드 반영: d7bd3f4) |
| 50 | 비밀번호 재설정 | Button | • 본인 계정 비밀번호 재설정 진입 • 클릭 → 재설정 플로우 진입 | 본인 계정 | TBU: 재설정 동선 |
| 60 | 저장 | Button | • 허용 필드 변경 확정 • 클릭 → 즉시 실행(컨펌 없음), 성공: 허용 필드 patch 반영 | sdk.employee.updateSelf() (추정) | TBU: 저장 실패 UI(토스트/무반응, 버그 후보 판단 보류) |
(b) 근무 설정 독립 모달 사양표
| 번호 | 항목/기능명 | 타입 | 사양 및 기능 설명 | 연관/영향 범위 | 비고 |
|---|---|---|---|---|---|
| 00 | 화면 진입 조건 | - | 조건1 [EMPLOYEE] 인증 · 더보기 "근무 설정" 선택 시 독립 모달 노출 | 인증 세션 (self) | |
| 01 | 초기 상태 | Output | 내 정보의 근무시간 섹션만 독립적으로 연 모달. 제목 "근무 설정" + "근무시간" 라벨 | self | census 원문 |
| 10 | 근무시간 선택 | Select | • 본인 근무시간 지정(내 정보 모달 20과 동일 섹션). placeholder "— 근무시간 선택 —" • 선택 → 근무 유형 반영 | 근무 유형([[HBAD261_유형 설정 (연장근무·외근·휴가)]]) | census 원문 |
| ㄴ | 옵션 (라이브) | ListItem | 내 정보 모달과 동일 근무 유형 목록 | census 원문 | |
| ㄴ | 추천 안내 | Info | "'추천'은 최근 출근 기록(0회)으로 짐작한 값이에요. 실제 근무시간과 다르면 본인 근무시간을 직접 선택해 주세요." | 최근 출근 기록 | census 원문 |
| ㄴ | 값 없음 처리 | Output | 미선택 시 "— 근무시간 선택 —" 유지 | ||
| 20 | 근무시간 저장 | Button | • 선택한 근무시간 확정 저장 • 클릭 → 본인 근무시간 저장. 근무시간 미선택 시 disabled | 본인 근무시간 저장 | census 관찰. TBU: 저장 실패 UI |
| 30 | 정책(예정) | - | FIG 정책 more.md: "근무 설정 빼기" — 더보기 메뉴에서 근무 설정 항목 제거 방향. 라이브(7/10)는 근무 설정 독립 모달 + 근무시간 선택 여전히 노출 | [[POL_더보기개편]] | 정책 vs 라이브 차이 (출처: FIG 정책 more.md) |
연동·플로우
- 내 정보 수정은 Admin이 허용한 필드([[HBAD270_설정 (조직 설정·내 정보)]] "직원 본인 수정 허용 항목")에 한해 self scope로 "저장" 반영. self < team < full 권한 트리([[POL_RBAC권한모델]]) 계승.
- 근무시간은 근무 유형 목록에서 본인이 직접 선택("추천"은 최근 출근 기록 짐작값). 내 정보 모달 근무시간 섹션 또는 "근무 설정" 독립 모달 어느 쪽에서든 저장 가능.
권한·상태 분기 요약
| 시나리오 | 트리거 | 결과 | 비고 |
|---|---|---|---|
CASE01 [수정 허용 필드] | ${editable_fields} 포함 필드 | 편집 가능 → 저장 시 patch | Admin 종속 |
CASE02 [읽기 전용 필드] | ${editable_fields} 미포함 | 읽기 전용 (정책상 자물쇠 안내 예정) | 정책 vs 라이브 |
CASE03 [근무시간 미선택] | 근무 설정 모달 | "근무시간 저장" disabled | |
조건1 [EMPLOYEE] | self scope | 본인 정보만 조회/수정 |
Open Question
| # | 항목 | 상태 |
|---|---|---|
| 1 | "직원 본인 수정 허용 항목" 기본 집합(연락처만 vs 전체) 및 항목별 잠금 UI | TBU — 정책은 수정 불가/가능 구분·자물쇠 안내 정의(출처: FIG 정책 more.md), 라이브 미적용 |
| 2 | "추천" 근무시간 산정 기준(최근 출근 기록 n회) 구체 알고리즘 | TBU |
| 3 | 프로필 필드 개편(생년월일·계좌·주소 제거, 순서 재배치, 이름 아래 사번·이메일) 적용 시점 | TBU / 정책(예정) — 정의는 [[POL_더보기개편]] 참조 |
| 4 | 근무 설정 모달 제거 방향 적용 시점 | TBU / 정책(예정) |
| 5 | 내 정보·근무 설정 저장 실패 시 UI 동작(토스트/무반응) | TBU |