파이썬 .env 환경변수로 디스코드 토큰 숨기기, 하드코딩 없이 안전하게 관리하는 법
·
봇 개발 팁/Discord.py
디스코드 봇을 처음 만들 때 토큰을 코드에 그대로 적는 경우가 많습니다.혼자 테스트할 때는 당장 편해 보이지만, 깃허브 업로드나 화면 공유 한 번으로 바로 사고가 날 수 있습니다.토큰은 봇의 통제권을 가진 비밀번호라서 처음부터 분리해야 맞습니다.파이썬에서는 .env 파일과 python-dotenv 조합이 가장 단순합니다.초반 세팅도 빠르고, 이후 배포 단계까지 그대로 가져가기 좋습니다.1. 왜 .env를 쓰는가코드에 토큰을 직접 적는 방식은 아래 문제가 있습니다.깃허브에 실수로 업로드될 수 있음여러 환경에서 토큰을 바꾸기 번거로움화면 공유나 스크린샷에서 노출될 수 있음반대로 .env 파일로 분리하면 코드와 비밀값을 따로 관리할 수 있습니다.입문 단계에서 가장 먼저 익혀 두면 좋은 습관입니다.2. 패키지 ..
디스코드 봇 초대 링크 생성법, 권한이 꼬이지 않게 링크 만드는 방법
·
봇 개발 팁/Discord.py
디스코드 봇을 만들고도 서버에 못 넣는 경우가 자주 나옵니다.봇 코드보다 초대 링크 생성 과정에서 막히는 쪽이 더 흔할 때도 있습니다.특히 권한을 너무 적게 고르거나, 아예 잘못된 스코프를 선택해서 다시 초대하는 경우가 많습니다.초대 링크는 한 번만 대충 만들고 끝내는 작업이 아닙니다.기능이 늘어날수록 필요한 권한도 달라지기 때문에 구조를 이해해 둬야 합니다.1. 초대 링크를 만드는 위치브라우저에서 Discord Developer Portal에 접속합니다.봇 애플리케이션을 선택한 뒤 왼쪽 메뉴에서 OAuth2 -> URL Generator로 이동합니다.여기서 두 가지를 고릅니다.어떤 스코프를 쓸지어떤 권한을 봇에 줄지2. 스코프는 보통 두 개를 본다기본적으로 많이 쓰는 것은 아래 두 개입니다.bot: 일..
디스코드 역할 설정 완벽 가이드, 관리자 운영진 멤버 봇 역할을 처음부터 정리하는 법
·
디스코드 서버 운영
디스코드 서버에서 권한 문제는 결국 역할 구조로 돌아옵니다.역할 이름만 그럴듯하게 만들고 순서와 권한을 대충 두면 나중에 봇도 막히고 운영진도 헷갈립니다.초반 역할 설계는 적게, 명확하게, 위계가 보이게 잡아야 합니다.초반 서버는 화려한 역할보다 설명 가능한 역할 구조가 먼저입니다.서버 규모가 커져도 기본 뼈대는 거의 그대로 가져갈 수 있습니다.1. 역할은 많을수록 좋은 게 아니다처음부터 역할을 열 개 넘게 만드는 경우가 많습니다.대부분은 멋있어 보이기만 하고 실제 운영에서는 오히려 혼란만 커집니다.초기 역할은 아래 정도면 충분합니다.관리자운영진봇인증됨멤버이 다섯 개만으로도 대부분의 입문 서버는 충분히 굴러갑니다.중요한 건 숫자가 아니라 역할별 책임이 겹치지 않는 구조입니다.2. 관리자와 운영진은 나눠야..
디스코드 채널 권한 설정법, 공지 채널과 관리자 채널이 꼬이지 않게 만드는 법
·
디스코드 서버 운영
디스코드 서버를 만들고 나면 채널은 금방 늘어납니다.문제는 채널 수보다 권한입니다.공지 채널에 일반 유저가 글을 쓰거나, 관리자 채널이 보이면 서버 구조가 바로 흐트러집니다.채널 권한은 한 번에 복잡하게 잡기보다 기준 패턴 몇 개를 정하면 훨씬 쉽습니다.공지 채널, 관리자 채널, 문의 채널, 봇 명령어 채널을 기준으로 가장 덜 꼬이는 배치를 먼저 잡아 봅니다.1. 채널 권한은 서버 권한 위에 덮어쓴다서버 역할에서 권한을 켜 두어도 채널에서 막으면 접근이 제한됩니다.반대로 서버 역할에서 아예 없는 권한은 채널에서 살릴 수 없습니다.정리하면 아래 순서로 보면 됩니다.서버 역할 권한 설정-> 채널별 권한 덮어쓰기-> 역할 순서와 실제 노출 결과 확인채널 권한이 꼬일 때는 채널 설정만 보지 말고 서버 역할 권한..
Message Content Intent 설정법, 디스코드 봇이 명령어를 읽지 못할 때 먼저 볼 것
·
봇 개발 팁/Discord.py
봇이 온라인으로 보이는데 !핑에 아무 반응도 없으면 코드부터 의심하게 됩니다.그런데 초반에는 코드보다 Message Content Intent 설정이 빠진 경우가 훨씬 많습니다.이 옵션 하나 때문에 명령어가 통째로 먹히지 않는 경우가 자주 나옵니다.접두사 명령어 기반 봇이라면 거의 반드시 확인해야 하는 설정입니다.한 번만 구조를 이해해 두면 같은 문제로 다시 멈출 일이 크게 줄어듭니다.1. Message Content Intent가 하는 일봇이 일반 메시지 내용을 읽을 수 있게 허용하는 옵션입니다.예를 들어 !핑, !청소, !도움처럼 채팅창에 직접 입력하는 메시지 명령어는 이 권한이 있어야 읽을 수 있습니다.반대로 슬래시 명령어는 디스코드가 별도 인터랙션 형태로 전달하므로 항상 이 설정이 필요한 것은 아..
디스코드 봇 권한 설정법, Missing Permissions/Missing Access 피하기
·
디스코드 봇 오류 해결
디스코드 봇이 온라인인데 명령어가 안 되거나, 메시지를 못 보내거나, 역할을 못 주는 경우가 많습니다.원인은 대개 코드보다 권한 구조입니다.특히 Missing Permissions(50013)과 Missing Access(50001)는 봇을 처음 만들 때 거의 한 번씩 보게 됩니다.권한 설정은 감으로 맞추면 계속 꼬입니다.역할 순서, 채널 권한, 봇 초대 권한, 관리자 권한의 차이를 한 번에 이해해야 훨씬 빠릅니다.1. 먼저 알아둘 것디스코드 권한은 크게 세 층으로 움직입니다.서버 역할 권한채널별 덮어쓰기 권한역할 순서에 따른 우선순위봇이 어떤 작업을 하려면 코드만 맞는다고 끝나지 않습니다.서버에서 해당 권한을 실제로 받아야 하고, 채널에서도 막히지 않아야 하며, 역할 순서도 대상보다 위에 있어야 합니다..