프로젝트

일반

사용자정보

Actions

새기능 #5818

완료됨

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

[ITN-HUB] 기관 명부 시드 및 채널 자동 생성

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

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

100%

추정시간:
난이도:

설명

개요

신청기관 명부 엑셀을 올려 기관을 등록하고, 기관마다 Mattermost 채널을 자동으로 만든다. 엑셀 매크로의 M01·M07에 해당하는 부분이다.

명부 시드

신유형 신청목록 시트를 읽어 기관을 upsert한다. 재실행해도 안전하다 — 이미 있는 기관은 갱신, 없는 기관만 생성. 명부가 바뀔 때마다 다시 올리는 운영이라 이 성질이 필요했다.

채널 2종 구조

기관마다 비공개 채널을 둘씩 만든다.

채널 들어가는 사람 쓰임새
NNN_기관명 (문정원) 기관담당자 + 문정원 업무협의
NNN_기관명 (법률검토) 변호사 + 문정원 법률검토

이 구조 덕에 기관담당자와 변호사가 서로의 대화를 보지 못한다. 나중에 요구사항으로 올라온 격리 조건이 이미 충족된 상태였다.

재실행 안전성

  1. DB에 채널 ID가 있으면 그대로 쓴다 (CACHED)
  2. 없으면 Mattermost에서 이름으로 찾아 ID를 복구한다 (RECOVERED)
  3. 그래도 없으면 새로 만든다 (CREATED)

버튼을 여러 번 눌러도 채널이 중복 생성되지 않는다.

특이사항

  • 엑셀 숫자 셀이 1.0 식으로 읽혀 연번이 깨졌다. 반올림 문자열로 바꾸고, 수식 셀은 캐시된 결과를 읽도록 처리.
  • 시드 서비스의 중복 집계가 틀리고 트랜잭션 범위가 좁았다. 파일 안에 같은 연번이 중복된 경우도 두 번째는 갱신으로 세도록 고쳤다.
  • 채널 프로비저닝에서 DB 저장이 실패해도 예외가 안 넘어오는 구간이 있었다. Mattermost에는 채널이 만들어졌는데 DB에는 ID가 안 남는 상태가 될 수 있어 예외 범위를 넓혔다.
Actions #1

이호영이(가) 약 한달 전에 변경

Actions

내보내기 Atom PDF