Skip to content

HBEA300_메신저

(Hereby) 직원 앱 > 메신저

직원 앱 Hereby Works (포트 4002)
대상 사용자조건1 [EMPLOYEE] (직원 인증 후 전원)
프로토타입TBU
관련 정책[[HBAD280_공지]] 게시 소비
Statusreview
Owner카나

개요

직원 앱 메신저 탭. 서브탭 3종: "대화" / "연락처" / "그룹 대화". 공지는 별도 서브탭이 아니라 "대화" 리스트 상단 "공지 n" 접이식 섹션으로 노출된다(구 "공지" 서브탭 대체). 대화 원천은 conversations / messages / conversation_members. "대화" 상단 "대화 검색..." 입력으로 대화를 검색한다. 공지는 조직 게시([[HBAD280_공지]] 게시 소비)를 수신 표시하며, 공지 상세에서 "확인했어요" 실행 시 "확인 완료 {상대시간}"으로 전환되고 GA/Admin 공지 "확인 내역"에 write-back된다. 메신저 탭에 AI 표면 없음 = greenfield — ESS AI는 신규 설계 영역이며 현재 챗봇/어시스턴트 핀 미존재.

문서 히스토리

날짜작성자변경 내용
2026-07-06카나PM최초 작성
2026-07-10카나PM라이브 기능 검토 반영 (서브탭 개편·공지 섹션 이동)
2026-07-13카나PM버튼 행동 명세 보강
2026-07-21카나PMGC700 깊이 재작성 (공지 확인 cross-app write-back 반영)
2026-07-21카나PM셀 스타일 확정판 적용 (콸 승인)

Data I/O

Server → Client

변수엔티티.컬럼값 없을 때비고
$conversations.lastMessageAt / lastMessageContentEmpty ("아직 대화가 없어요...")"대화" 서브탭 대화 목록
$employees (조직원)리스트 렌더 (조직원 상시 존재)"연락처" 서브탭. "미배정 n명" 그룹 헤더 + 전 직원 리스트(이니셜 아바타)
$employees (팀 미배정 필터) count"0명" (추정)"미배정 270명" 그룹 헤더 관찰값
$조직 게시 수신 ([[HBAD280]])섹션 헤더 카운트 0 → 섹션 hide (추정)"대화" 상단 "공지 n" 접이식 섹션. 항목 = 제목 + 날짜
$게시.category / date / title / body / 본인 확인상태공지 상세(서브화면). 미확인 시 "확인했어요" 버튼, 확인 후 "확인 완료 {상대시간}"
$conversation_members.unreadCount"0"하단 탭바 "메신저 0" 배지

Client → Server

액션전달값tRPC procedure권한 토큰
대화 검색클라이언트 필터 or sdk.conversation.search() (추정)conversation:read.self (추정)
대화 시작sdk.conversation.create() (추정)conversation:write.self (추정)
그룹 만들기{ memberEmployeeIds[] } ("n명 선택")sdk.conversation.createGroup() (추정)conversation:write.self (추정)
메시지 전송sdk.message.send() (추정)message:write.self (추정)
공지 확인sdk.announcement.confirm() (추정)announcement:confirm.self (추정)

외부 통합

외부 시스템데이터동기/비동기polling 주기
GA/Admin 공지 "확인 내역"공지 확인 이벤트 write-back (announcementId + employeeId + 확인시각)cross-app write (즉시 반영)[[HBAD280_공지]] "확인 내역" 소비
[[HBAD280_공지]] 게시조직 게시 → 메신저 공지 섹션 수신 표시소비 (read)TBU

화면 플로우

메신저 탭에 AI 어시스턴트/챗봇 핀 미존재 = greenfield. ESS AI 진입 표면은 신규 설계 영역이며 self scope RBAC 자동 반영 컨셉(OQ).


메신저 메인 사양표

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00화면 진입 조건-조건1 [EMPLOYEE] 인증 후 하단 탭바 "메신저" 선택 시 진입[[HBEA110]] Shell
01초기 상태Output"대화" 서브탭 활성 상태로 대화 목록 렌더conversations
ㄴ01-Eㄴ 대화 없음Outputconversations 0건 시 Empty 노출 (문구는 -E 행)conversations
10서브탭Tab• "대화" / "연락처" / "그룹 대화" 3서브탭 간 전환 기능. 구 "공지" 서브탭 제거 → "대화" 상단 섹션으로 이동
• 클릭 → 해당 서브 리스트 전환
구 공지 → 대화 섹션
20대화 (서브탭)List• 대화 목록을 보여주는 서브탭. "대화 검색..." 입력 + "공지 n" 접이식 섹션 + 대화 리스트(예: "test 6월 30일") 구성
• 클릭 → "대화" 리스트 전환
conversations / messages
ㄴ21ㄴ 대화 검색Input• 대화 리스트를 텍스트로 거르는 입력 필드. "대화 검색..." placeholder
• 입력 → 대화 리스트 필터. 빈 입력 시 전체 표시
conversationsTBU: 결과 0건 문구
ㄴ22ㄴ 공지 섹션Section• 전 직원 수신 공지를 접이식으로 노출하는 섹션. "공지 n"(관찰값 "공지 1"), 구 "공지" 서브탭 대체
• 헤더 클릭 → 섹션 접기/펼치기 토글
[[HBAD280_공지]] 게시 소비TBU: 공지 0건 시 섹션 hide (추정)
ㄴㄴ22-1ㄴㄴ 공지 항목ListItem• 개별 공지 1건. 항목 = 제목 + 날짜
• 클릭 → 공지 상세(50) 전환
게시
30연락처 (서브탭)List• 조직원을 열람하고 대화를 시작하는 서브탭. "미배정 n명" 그룹 헤더 + 전 직원 리스트(이니셜 아바타)
• 클릭 → "연락처" 리스트 전환
employees"미배정 270명" 관찰
ㄴ31ㄴ 미배정 그룹 헤더Text팀 미배정 직원을 묶는 그룹 헤더. "미배정 270명" 표기(count = 미배정 필터)employees
ㄴ32ㄴ 직원 항목ListItem• 연락처 리스트의 개별 직원 행
• 클릭 → 해당 직원과 대화 시작("대화" 서브탭 전환)
conversationsTBU: self scope 열람 범위
40그룹 대화 (서브탭)Flow• 다중 멤버 그룹 대화를 생성하는 서브탭. 상세 흐름은 서브화면 표 참조
• 클릭 → 멤버 다중 선택 모드 전환
[[HBEA310_그룹 만들기]] (분리 권고)신규 서브탭
50공지 상세 진입Detail• 공지 항목을 상세 서브화면으로 여는 진입점(아래 H3)
• 클릭 → 공지 상세 서브화면 전환
[[HBAD280_공지]]서브화면 표 분리
60하단 탭바Tab• 앱 최상위 탭 전환 바. "근무" / "메신저" / "결재" / "더보기" + "메신저 0" 배지
• 클릭 → 해당 탭 전환
[[HBEA110]]Shell 공통
-E대화 EmptyText대화 0건 시 "아직 대화가 없어요 연락처에서 대화를 시작해보세요" 노출, 연락처로 유도conversationsEmpty 원문

공지 상세 사양표 (서브화면)

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00진입 조건-"대화" 서브탭 "공지 n" 섹션 항목 클릭 시 진입메신저(50)
10헤더Text"공지사항" 표기
20카테고리 배지Badge게시 category 값 배지[[HBAD280]]TBU: 카테고리 문구(데이터 의존)
30날짜Text게시 날짜 표기게시.date
40제목/본문Text공지 제목 + 본문 표기게시TBU: 본문 미존재 공지 처리 미관찰
50확인 버튼Button• 본인 공지 확인 상태를 기록하는 버튼. 조건1 [EMPLOYEE] 본인 확인
• 클릭 → 즉시 실행(컨펌 없음), 성공: "확인 완료 {상대시간}"(예: "확인 완료 방금") 전환 + GA/Admin 공지 "확인 내역" write-back
 - CASE01 [미확인]: "확인했어요" 노출
 - CASE02 [확인 완료]: "확인 완료 {상대시간}" 노출(상대시간 원천 = 확인시각)
[[HBAD280]] "확인 내역" cross-app검증 완료. TBU: confirm 실패 UX(무반응이면 버그 후보)

그룹 만들기 플로우 사양표 (서브화면)

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00진입 조건-메신저 "그룹 대화" 서브탭 진입 시 멤버 다중 선택 모드메신저(40)
10멤버 선택List• 그룹에 넣을 조직원을 고르는 리스트. 원천 = employees
• 항목 클릭 → 멤버 선택 토글
employeesTBU: 선택 가능 범위(전 직원 vs 팀)
20선택 카운트Text선택 인원 실시간 "n명 선택" 표기
30그룹 만들기Button• 선택한 멤버로 그룹 대화를 생성하는 버튼
• 클릭 → 그룹 conversations 생성 후 대화로 전환
그룹 conversationsTBU: 0명 시 비활성 여부·생성 실패 UX·멤버 상한
40취소Button• 선택 모드를 종료하는 버튼
• 클릭 → 선택 모드 종료(대화 서브탭 복귀)

AI 표면 보조표

항목현황비고
AI 챗봇/어시스턴트 핀미존재 (0)greenfield — 신규 설계 영역
ESS AI 진입 후보메신저 탭 단체방 영구 핀 / 별도 AI 탭 (OQ)self scope RBAC 자동 반영 컨셉

권한·상태 분기 요약

시나리오트리거결과 화면비고
CASE01 [대화 없음]"대화" 서브탭 진입, conversations 0건Empty "아직 대화가 없어요..."연락처 유도
CASE02 [대화 있음]대화 존재대화 리스트 + "공지 n" 섹션
CASE03 [공지 미확인]공지 상세 진입"확인했어요" 버튼
CASE04 [공지 확인 완료]"확인했어요" 클릭"확인 완료 {상대시간}" + GA/Admin "확인 내역" write-backcross-app
조건1 [EMPLOYEE]전 직원 인증메신저 전 기능 (연락처 열람 범위·그룹 생성 권한은 OQ)역할 세분 미관찰

Open Question

  • 대화 검색 결과 0건 Empty 문구 = TBU (별도 카피 미관찰)
  • 그룹 대화 생성 권한 범위 및 멤버 상한 = TBU/OQ
  • 연락처 열람 범위(전 직원 vs 본인 팀만 — self scope 반영 여부) = TBU/OQ
  • 공지 상세 카테고리 배지 문구·본문 Empty 처리 = TBU (데이터 의존)
  • 공지 "확인했어요" confirm 실패 시 UX(토스트·롤백) = TBU (무반응이면 버그 후보)
  • ESS AI 핀 배치 (메신저 단체방 영구 핀 / 별도 AI 탭) = TBU/OQ — 메신저 탭 AI 표면 greenfield 유지
  • "미배정 n명" 외 팀별 그룹 헤더 존재 여부 = TBU (캡처에 미배정 그룹만 관찰)