Files
baron_qa_write/docs/관리페이지 md 파일/integrated-management-feedback-tasks.md
T
root 3c10478482
Deploy EG-BIM QA Gateway / deploy (push) Successful in 2m4s
관리페이지 데이터 전송 구현
2026-09-21 14:46:36 +09:00

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 연동이 삭제 상태와 상세 표시 변경 후에도 동일하게 동작하는지 검증한다.

확인이 필요한 사항

  1. 상단 대시보드에서 실제로 제거할 카드가 무엇인지 확정이 필요하다.
  2. 작성자 UUID는 SSO의 sub(SSO subject)를 표시하면 되는지, 아니면 ABC users.id를 뜻하는지 확인이 필요하다.
  3. 작성자 직책 데이터의 원본 필드·API 제공 여부를 확인해야 한다. 현재 확인된 SSO profile에는 이름·이메일·전화번호·소속 등이 있었지만 직책은 별도 항목일 수 있다.
  4. 삭제된 내부 메모/댓글을 시스템 관리자에게라도 이력으로 보여줄지, DB에만 남기고 UI에서는 숨길지 결정이 필요하다.

이번 반영의 저장 방식

  • 피드백은 ABC feedbacks.deleted_at의 TypeORM soft delete를 사용한다. 삭제 이벤트는 historiesSoftDelete 액션, 삭제 시각, 요청 사용자 ID를 남긴다.
  • 내부 메모와 관리자/사용자 댓글은 ticket_comments.deleted_at을 유지하고, 신규 migration 0019_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