7.1 KiB
7.1 KiB
통합관리 피드백 반영 작업 목록
- 정리일: 2026-09-08
- 대상: 통합관리 페이지(피드백/이슈), 피드백 상세 페이지
- 상태 표기:
[ ]미착수,[?]정책 또는 화면 기준 확인 필요
1. 통합관리 페이지
1.1 상단 구조 및 대시보드
피드백 처리/이슈 처리탭과 일자 선택 영역을 페이지 최상단으로 유지한다.- 상단 대시보드 데이터 박스의 크기를 축소한다.
- 대시보드에서
담당자 미지정,피드백 상태 처리 필요카드를 제외한다. - 필터 영역의
필터텍스트 라벨을 제거한다. - 검색창을 우측 정렬하고, 크기·강조 스타일을 조정해 주요 조작 요소로 보이게 한다.
업데이트일 기준드롭다운과 별도 일자 선택 UI를 제거한다.
1.2 피드백 목록·필터·열
- 피드백 상태를
전체기본값을 포함한 다중 선택 필터로 제공한다. - 목록의
처리항목열을 제거한다. - 목록에
중요도열을 추가한다. - 목록 우측의 건수 표시를 제거한다.
2. 피드백 상세 페이지
2.1 상단 정보와 레이아웃
- 작성자 정보를 상세 상단으로 이동한다.
Feedback 상세제목 옆에 작성자 정보를 한 줄로 배치한다.- 피드백 제목과 내용을 시각적으로 더 강조한다.
- [?] 작성자 정보에 UUID, 소속, 직책을 표시한다.
내부 메모를 좌측으로 이동해 첨부파일 아래에 배치한다.- 이슈 상태, 피드백 상태, 담당자 영역을 한 줄로 배치한다.
- 중요도를 상세 화면에 표시한다.
2.2 상태·첨부파일 표시
- 피드백 상태 값에 상태별 색상을 적용한다.
- 이슈 상태의
연결된 이슈 없음텍스트를 제거한다. - 첨부파일이 이미지이면 썸네일 미리보기를 표시한다.
- [?] “피드백 내부 상태”의 상태값·전환 규칙·화면 노출 범위는 후속 정책으로 정한다.
3. 삭제 권한 및 이력 보존
3.1 피드백 전체 삭제
- 피드백 전체 삭제 권한을 시스템 관리자에게만 부여한다.
- 물리 삭제 대신 삭제 상태를 기록한다.
- 삭제자 식별자와 삭제 시각을 DB 이력에 저장한다. 삭제 사유는 입력 정책 확정 후 추가한다.
- 일반 목록·상세에서는 삭제된 피드백을 기본적으로 제외한다.
3.2 내부 메모·댓글 삭제
- 내부 메모 삭제 시 물리 삭제 대신 삭제 상태를 기록한다.
- 관리자 댓글 삭제 시 물리 삭제 대신 삭제 상태를 기록한다.
- 사용자 댓글 삭제 시 물리 삭제 대신 삭제 상태를 기록한다.
- 각 삭제 기록에 삭제자 식별자와 삭제 시각을 저장한다.
- [?] 삭제된 메모·댓글을 관리자에게 표시할지, 완전히 숨길지와 복구 기능 제공 여부를 정한다.
3.3 이슈 상세·삭제 정책
- 이슈 상태를 별도 편집 모드 없이 상세 화면에서 직접 변경한다.
- 이슈 내부 메모를 작성자·작성일별 목록, 개별 수정·삭제 방식으로 전환한다.
- 기존 단일 이슈 내부 메모 값은 신규 이력 테이블로 이전한다.
- 이슈 내부 메모 삭제 시 소프트 삭제, 삭제자·삭제 시각 기록을 적용한다.
- 이슈 전체 삭제를 시스템 관리자 전용 소프트 삭제로 전환한다.
4. 데이터·API 점검 항목
- [?] UUID·소속·직책이 현재 SSO/ABC 사용자 원본에서 제공되는지 확인한다.
- 중요도의 저장 위치와 기존 피드백 데이터의 기본값을 확인한다.
- 상태 다중 선택을 통합관리 화면의 로컬 목록 필터에 반영한다.
- 소프트 삭제 필드와 이력 조회 권한을 API·DB migration에 반영한다.
- 외부 작성페이지 및 통합관리의 API 연동이 삭제 상태와 상세 표시 변경 후에도 동일하게 동작하는지 검증한다.
확인이 필요한 사항
- 상단 대시보드에서 실제로 제거할 카드가 무엇인지 확정이 필요하다.
- 작성자
UUID는 SSO의sub(SSO subject)를 표시하면 되는지, 아니면 ABCusers.id를 뜻하는지 확인이 필요하다. - 작성자
직책데이터의 원본 필드·API 제공 여부를 확인해야 한다. 현재 확인된 SSO profile에는 이름·이메일·전화번호·소속 등이 있었지만 직책은 별도 항목일 수 있다. - 삭제된 내부 메모/댓글을 시스템 관리자에게라도 이력으로 보여줄지, DB에만 남기고 UI에서는 숨길지 결정이 필요하다.
이번 반영의 저장 방식
- 피드백은 ABC
feedbacks.deleted_at의 TypeORM soft delete를 사용한다. 삭제 이벤트는histories에SoftDelete액션, 삭제 시각, 요청 사용자 ID를 남긴다. - 내부 메모와 관리자/사용자 댓글은
ticket_comments.deleted_at을 유지하고, 신규 migration0019_comment_deletion_audit에서deleted_by_id,deleted_by_tenant_id를 추가한다. - 삭제된 메모·댓글을 화면에 보여줄지 여부는 보류되어 있으므로 기존처럼 일반 조회에서는 제외한다.
- 이슈 내부 메모는
issue_internal_memos에 별도 이력으로 저장하며,deleted_at,deleted_by_user_id,deleted_by_name을 유지한다. 이슈 자체도 피드백과 동일하게 시스템 관리자만 소프트 삭제할 수 있다.
SSO 작성자 정보 전달 계약
작성 페이지는 SSO ID 토큰을 그대로 전송하지 않는다. 다만 8864의 실제 로그인 세션은 버전에 따라 ID 토큰을 sessionStorage 또는 jwt 쿠키에 보관하므로, 두 위치에서 토큰을 읽어 작성자 표시용 claims만 평탄화해 전송한다.
로그인 API도 같은 최소 조직 정보를 자체 서명 access token에 넣고, Secretary가 티켓 생성 시 이를 extra_fields와 ABC 메타데이터에 평탄화해 저장한다. 이 서버 경로는 브라우저 정보가 누락된 세션의 보완 수단이다. 원문 토큰·세션 digest·토큰 만료값은 어느 요청이나 피드백 데이터에 저장하지 않는다.
| 저장 필드 | SSO ID 토큰 기준 값 |
|---|---|
requester_id |
sub (SSO UUID) |
requester_uuid |
sub (호환용 중복 보관) |
requester_tenant_id |
tenant_id |
requester_name |
profile.name 또는 name |
requester_email |
profile.email 또는 email |
requester_phone_number |
profile.phones[0] |
requester_department |
기본 테넌트(tenants[tenant_id])의 name |
requester_affiliation |
상위 COMPANY 테넌트의 name |
requester_position |
기본 테넌트의 position 또는 grade |
requester_grade |
기본 테넌트의 grade |