Actions
새기능 #5818
완료됨새기능 #5814: ITN-HUB 공공저작물 신유형개방 사업관리 시스템 구축
[ITN-HUB] 기관 명부 시드 및 채널 자동 생성
시작시간:
2026/07/22
완료기한:
진척도:
100%
추정시간:
난이도:
상
설명
개요¶
신청기관 명부 엑셀을 올려 기관을 등록하고, 기관마다 Mattermost 채널을 자동으로 만든다. 엑셀 매크로의 M01·M07에 해당하는 부분이다.
명부 시드¶
신유형 신청목록 시트를 읽어 기관을 upsert한다. 재실행해도 안전하다 — 이미 있는 기관은 갱신, 없는 기관만 생성. 명부가 바뀔 때마다 다시 올리는 운영이라 이 성질이 필요했다.
채널 2종 구조¶
기관마다 비공개 채널을 둘씩 만든다.
| 채널 | 들어가는 사람 | 쓰임새 |
|---|---|---|
NNN_기관명 (문정원) |
기관담당자 + 문정원 | 업무협의 |
NNN_기관명 (법률검토) |
변호사 + 문정원 | 법률검토 |
이 구조 덕에 기관담당자와 변호사가 서로의 대화를 보지 못한다. 나중에 요구사항으로 올라온 격리 조건이 이미 충족된 상태였다.
재실행 안전성¶
- DB에 채널 ID가 있으면 그대로 쓴다 (CACHED)
- 없으면 Mattermost에서 이름으로 찾아 ID를 복구한다 (RECOVERED)
- 그래도 없으면 새로 만든다 (CREATED)
버튼을 여러 번 눌러도 채널이 중복 생성되지 않는다.
특이사항¶
- 엑셀 숫자 셀이
1.0식으로 읽혀 연번이 깨졌다. 반올림 문자열로 바꾸고, 수식 셀은 캐시된 결과를 읽도록 처리. - 시드 서비스의 중복 집계가 틀리고 트랜잭션 범위가 좁았다. 파일 안에 같은 연번이 중복된 경우도 두 번째는 갱신으로 세도록 고쳤다.
- 채널 프로비저닝에서 DB 저장이 실패해도 예외가 안 넘어오는 구간이 있었다. Mattermost에는 채널이 만들어졌는데 DB에는 ID가 안 남는 상태가 될 수 있어 예외 범위를 넓혔다.
Actions