들어가며
XE 그룹 블로그는 그룹원들이 격월로 기술 중심의 글을 발행하며 지식을 나누는 공간입니다. 연간 총 6회의 포스팅을 진행하지만, 작성 달에 포스팅을 건너뛸 수 있는 ‘블로그 패스권’ 또한 함께 운영하고 있습니다.
모두에게 유용한 패스권이지만, 수기 기록과 확인의 불편함은 있었습니다. 담당자로서 관리하기 편하고, 사용하는 분들은 번거롭지 않을 방법이 없을까 고민했습니다. 그 결과로 슬랙 XE 봇을 활용해 패스권을 자동으로 관리하는 시스템을 만들게 되었습니다.
고민했던 작업 회고부터, 그룹원분들이 다음 달부터 활용하실 수 있는 사용 가이드까지 담았으니 편안하게 확인해 주시기 바랍니다.
[작업 회고] 주요 고민과 설계 방향
① 기존 리소스 활용 및 데이터 분리 운영
-
고민: 기존 인사 정보(
members.json)에 블로그 데이터를 합칠지, 새로 만들지 고민이었습니다. 한 파일에 모으면 관리는 편하겠지만, 자칫 잘 운영되고 있는 인사 정보 시스템에 예상치 못한 영향을 주거나 리소스가 너무 무거워질까 봐 걱정되었습니다. -
설계 방향:
-
기본 정보 활용:
members.json에는 봇이 활동 여부를 판단할 수 있도록 '상태(재직/퇴사/휴직 등)' 정보만 최신화하여 참조했습니다. -
전용 DB 신설: 패스권 사용 이력이나 남은 개수 같은 블로그 전용 데이터는
blog_pass.json을 새로 만들어 완전히 분리했습니다.
-
-
결과: 원래 있던 데이터 구조는 그대로 지키면서 블로그 운영에 꼭 필요한 상태 값만 담아, 인사 정보는 깨끗하게 유지, 향후 블로그 기능이 추가되거나 변경되어도 기존 시스템에 영향이 가지 않는 독립적이고 안정적인 구조로 만들었습니다.
② 규칙 기반의 자동 권한 부여 및 차감하여 수기 관리 최소화
-
고민: 누구는 몇 개인지 확인하고 사용량을 일일이 기록하는 번거로움 없이, 패스권 부여부터 차감까지 알아서 돌아갈 수 있도록 만들고 싶었습니다.
-
설계 방향 (자동화 로직): 봇이 실행될 때마다 인사 정보의 입사일과 상태를 분석해 패스권의 부여와 사용 개수를 실시간으로 계산하도록 설계했습니다.
-
권한 부여: 작년 이전 입사자(2개), 올해 1~4월 입사자(1개), 담당자(3개) 기준에 맞춰 자동 할당
-
자동 차감: 사용자가 슬랙 스레드에 답변을 남기면 봇이 남은 횟수를 확인해 즉시 차감
-
-
결과: 신규 입사자나 복직자가 생겨도 담당자가 따로 설정할 필요가 없고, 사용 기록 역시 봇이 알아서 관리하기 때문에 수기 관리 리소스를 최소화했습니다.
③ 데이터 무결성 보장: "기록(History) 중심의 자동 동기화"
-
고민: 패스권 취소는 빈도가 낮아 수동으로 수정하게끔 설계했는데요. 막상 테스트를 해보니 '사용 횟수'(
used_count) 와 '실제 날짜 기록'(history) 두 곳을 모두 고쳐야 해서, 한 곳을 누락하거나 숫자를 잘못 입력하는 등 데이터가 꼬이는 실수가 발생하고 있습니다. -
설계 방향: 적혀 있는 숫자를 그대로 믿지 않고, 봇이 실행될 때마다 실제 기록된 날짜 이력의 개수를 직접 세어서 숫자를 강제로 다시 맞추는(Auto-Sync) 로직을 구현했습니다.
-
결과: '실제 사용 기록'을 데이터의 절대적인 기준으로 삼아, 수기 수정 시 발생할 수 있는 계산 착오나 숫자 불일치 문제를 시스템이 스스로 완벽하게 보완하도록 했습니다.
[사용 가이드] XE봇에 패스권 신청하기
① 패스권 사용하기 (스레드 답변)
매월 초 생성되는 [블로그 패스권 등록] 공지 메시지의 스레드에 답변을 남겨주세요.
-
방법: "패스", "이번 달 패스요!", "패스권 쓸게요" 등 '패스'라는 단어가 포함된 문장을 자유롭게 입력하세요.
-
결과: 봇이 실시간으로 사용자의 남은 횟수를 계산하여 ✅ 차감 완료 메시지를 회신합니다.
② 패스권 사용 취소하기
실수로 "패스"를 입력했거나 계획이 변경되어 취소해야 할 경우입니다.
-
방법: 해당 스레드에서 관리자(@강은영)를 멘션하여 취소 요청 메시지를 남겨주세요. (예: @강은영 패스 취소할게요.)
-
결과: 담당자가 데이터를 수정하면, 봇의 자동 동기화 로직에 의해 사용 횟수가 즉시 복구됩니다.
③ 패스권 현황 조회 (명령어)
내 패스가 몇 개 남았는지, 사용 내역 등을 확인할 수 있습니다.
-
명령어: 채널에
!!패스권현황입력 -
현황판: 🔴(사용 완료) / ⚪(잔여) 아이콘과 함께 실제 사용 날짜(MM/DD)가 상세히 표시됩니다. 이번 달 대상 그룹 옆에는 ✅ 체크 이모지가 표시됩니다.
마치며
이번 자동화는 패스권 관리를 데이터화해서, 담당자인 제가 매번 수기로 확인하던 번거로움을 줄이는 데 집중했습니다.
기존 리소스를 활용하면서 관리 포인트는 최소화했으니, 앞으로는 시스템이 안정적으로 돌아가도록 잘 모니터링하며 보완해 나갈 예정입니다.
다음 패스권 사용은 봇과 함께 시작해 보세요! 🚀
