프로젝트

일반

사용자정보

Actions

새기능 #5817

완료됨

새기능 #5814: ITN-HUB 공공저작물 신유형개방 사업관리 시스템 구축

[ITN-HUB] Mattermost 연동 클라이언트

이호영이(가) 약 한달 전에 추가함.

상태:
완료
우선순위:
보통
담당자:
시작시간:
2026/07/22
완료기한:
진척도:

100%

추정시간:
난이도:

설명

개요

기관별 채널 생성·게시글·파일 업로드를 위해 Mattermost REST API(v4) 클라이언트를 만든다. 이후 모든 Mattermost 호출은 이 클래스 한 곳을 지난다.

제공 기능

기능 쓰이는 곳
채널 조회·생성(비공개) 채널 자동 생성
사용자 조회·생성, 팀/채널 초대 담당자 계정 자동 생성
게시글 작성·핀 고정·해제 최초 안내글, 공지
파일 업로드·다운로드·정보 조회 채팅 첨부, 자료 탭
채널 헤더 갱신 공지 요약 표시
채널 아카이브 시스템관리 초기화

분석

파일 업로드에서 막혔다. Spring RestClient의 multipart 기록 경로가 파트마다 org.reactivestreams.Publisher인지 검사하는데, 이 프로젝트 클래스패스에는 그 클래스가 없어 NoClassDefFoundError가 났다.

의존성을 새로 추가하는 대신 multipart 본문 바이트를 직접 조립했다. 덤으로 한글 파일명이 헤더 인코딩 제약(ISO-8859-1) 없이 UTF-8 바이트로 그대로 실린다.

특이사항

  • 테스트에서만 HTTP/1.1을 고정하도록 분리했다. 운영에서까지 고정할 이유가 없다.
  • 생성자가 두 개라 Spring이 어느 것을 쓸지 몰라 빈 생성이 실패했다. 하나로 정리.
  • 채널 표시명으로 채널을 찾을 때 첫 페이지만 보고 있었다. 팀 전체를 페이지네이션으로 훑도록 바꿨다. 기관이 늘면 뒤쪽 채널을 못 찾는 문제였다.
  • 채널 삭제는 쓰지 않는다. 아카이브만 한다 — 지우면 자료까지 사라진다.

표시할 데이터가 없습니다.

Actions

내보내기 Atom PDF