Plan 9에서 디스코드(Discord)를? Go 기반 봇(Bot)으로 해결!

by DD
1개월 전
조회수 10

Plan 9 환경에서 디스코드(Discord)를 사용하기 위한 Go 기반 봇(Bot) 개발

acme 및 터미널(Terminal) 환경에서 모두 작동하며, rimport를 활용한 원격 사용 지원

디스코드 봇(Discord Bot) 생성토큰(Token) 발급 과정이 복잡하다는 의견

Plan 9 환경에서의 디스코드(Discord) 통합

본 프로젝트는 Plan 9 시스템에서 디스코드(Discord)를 사용할 수 있도록 Go 언어(Go Language)로 작성된 봇(Bot)을 제공한다. 디스코드 API(Discord API)를 직접 호출하여 메시지를 송수신하며, acme 편집기 및 터미널 환경에서 모두 작동한다. 특히, Plan 9의 파일 시스템(File System) 개념을 활용하여 채널 로그를 관리하고, rimport를 통해 원격 서버에서 실행되는 봇에 접근할 수 있도록 설계되었다.

아키텍처 및 구현 상세

구현은 discordsrv라는 Go 프로그램과 여러 쉘 스크립트로 구성된다. discordsrv는 디스코드 API와 통신하며, /srv/discordfront 파이프(Pipe)를 통해 메시지를 주고받는다. discordacme 스크립트는 acme 편집기에서 채널을 열어 채팅을 가능하게 하며, discord 스크립트는 특정 채널의 로그 파일을 감시하고 메시지를 전송하는 역할을 한다. 데이터 격리 아키텍처(Data Isolation Architecture)를 위해 별도의 데이터베이스(DB)를 사용하지 않고, 파일 시스템을 활용하여 로그를 저장한다.

원격 사용 및 Plan 9의 특징 활용

rimport를 사용하여 원격 서버에서 실행되는 봇을 로컬 환경에서 마치 네이티브(Native)처럼 사용할 수 있다. 이는 Plan 9의 분산 파일 시스템(Distributed File System) 특징을 활용한 것으로, 사용자는 원격 서버의 파일 트리를 로컬 시스템에 마운트(Mount)하여 접근할 수 있다. 데이터 미저장 정책(Zero-Retention Policy)을 위해 봇은 이전 메시지를 가져오지 않으며, 항상 온라인 상태인 서버에서 실행하는 것이 권장된다.

Using Discord on Plan 9