Discord에서 멤버 자격증과 서버 자체 업적 기록하는 법
Discord에서 자격증과 서버 자체 업적을 기록하려면 수여 테이블 하나를 만들어요. 멤버, 직접 정한 목록에서 고르는 자격증, 날짜, 수여한 사람을 담고, 쓰기는 교관만 할 수 있게 해요. 저희가 만드는 CordBase가 이 테이블을 슬래시 명령어로 바꿔 주기 때문에 누구든 누가 무엇을 가졌는지 확인할 수 있어요. CordBase는 수여를 기록할 뿐, 역할을 주지는 않아요.
자격증은 관리자가 직접 정하기 때문에 자체 계급이 있는 클랜, 자격 단계가 있는 비행 시뮬레이션이나 밀심 부대, 통과한 모듈을 기록하는 스터디 그룹 등 자체 배지를 주는 커뮤니티라면 어디든 쓸 수 있어요. 미리 정해진 건 없어요.
완성하면 이렇게 돼요
add,query,view,update,delete작업이 있는/certifications명령어.- 수여 하나당 한 행. 자격증이 세 개인 멤버는 행도 세 개예요.
- 새 자격증을 만들 때마다 웹에서 수정하는 자격증 목록.
- 교관은 수여를 기록하고, 관리자는 삭제할 수 있고, 멤버는 보기만 하는 권한.
1단계: 수여 테이블 만들기
- cordbase.gg에서 Discord로 로그인하고 서버를 고른 뒤, 안내가 나오면 봇을 추가해요.
- "Certifications"라는 테이블을 만들고(명령어는
/certifications가 돼요) 아래 열을 이 순서대로 넣어요.
- Member(멤버, 필수): 받은 사람.
- Certification(선택지, 필수): 자격증을 옵션으로 입력해요. 예: Basic Rescue, Instrument Rating, Squad Leader, Founding Member.
- Awarded on(날짜, 필수): YYYY-MM-DD 형식으로 입력해요.
- Awarded by(멤버, 필수): 교관.
- Record(텍스트, 필수): "Thrain, Basic Rescue" 같은 짧은 이름표.
- Notes(텍스트, 선택): 시험 점수, 응시 횟수, 근거 링크.
- Expires on(날짜, 선택): 만료되는 자격증에만 써요.
이 순서에는 이유가 있어요. query 결과에는 앞의 네 열만 나오기 때문에 쓸모 있는 열을 앞에 둬요. Record 열이 있는 이유는 view, update, delete의 행 선택 목록이 테이블의 첫 번째 텍스트 열로 행을 보여 주기 때문이에요. 텍스트 열이 없으면 목록에 멤버 ID가 그대로 나와요. Discord 옵션 이름은 표시 이름을 소문자로 바꾸고 공백을 밑줄로 바꿔 만들어요. 예를 들면 awarded_on이에요.
CordBase에는 업적 관리 템플릿도 있지만, 행마다 "달성한 사람" 멤버 하나와 업적 점수를 담는 구조예요. 여러 사람이 같은 것을 받는다면 수여 테이블이 더 간단해요.
2단계: 쓰기는 교관만 하게 하기
새 테이블은 삭제를 포함해 모두에게 열려 있으니 먼저 역할을 지정하세요. 웹에서 테이블 권한을 이렇게 설정해요.
- 교관 역할: 쓰기(
add와update를 할 수 있어요). - 교관장이나 관리자 역할: 관리(
delete도 할 수 있어요). - 모든 멤버가 가진 역할: 읽기. 멤버가 찾아볼 수 있어요.
역할을 하나라도 지정하면, 지정된 역할이 없는 멤버는 테이블을 아예 쓸 수 없어요. 쓰기 권한은 교관 자신의 행뿐 아니라 모든 행에 적용되고, Discord의 ‘관리자’ 권한이 있는 사람은 항상 모든 권한을 가져요. 자세한 내용은 테이블과 권한을 참고하세요.
3단계: 수여 기록하기
/certifications add member:@Thrain certification:Basic Rescue awarded_on:2026-10-10 awarded_by:@Priya record:Thrain, Basic Rescue notes:Passed practical, second attempt expires_on:2027-10-10
자격증은 직접 정한 옵션의 드롭다운이라서 철자가 일정하게 유지돼요. view는 누가 언제 명령어를 실행했는지 보여 주기 때문에, 직접 입력하는 "awarded by" 필드를 검증하는 데 쓸모 있어요. 실수를 고치거나 나중에 만료일을 넣으려면 /certifications update를 실행하고 목록에서 행을 골라요. 새 자격증은 웹에서 테이블을 수정해 옵션을 추가하면 되고, 저장하면 명령어가 갱신돼요.
4단계: 찾아보기
- 자격증을 가진 사람:
/certifications query certification:Basic Rescue - 멤버 한 명의 모든 기록:
/certifications query member:@Thrain - 이 멤버가 이 자격증을 가졌는지:
/certifications query member:@Thrain certification:Basic Rescue - 메모와 만료일까지 모든 내용:
/certifications view를 실행하고 행을 골라요.
필터는 함께 쓸 수 있어요. 결과는 최신순으로 기본 10개, limit으로 최대 25개까지 나오고, 페이지 넘김은 없어요. 답장은 명령어를 실행한 채널에 올라가니, 기록이 비공개라면 교관 명령어는 교관 채널에서 실행하세요. 전체 목록은 서버 소유자가 웹 테이블에서 볼 수 있어요.
다른 도구가 더 잘 맞는 경우
- Discord 역할과 권한. CordBase는 Discord 역할을 주거나 빼지 않아요. 자격증으로 채널을 열어 주거나 멤버 목록에 표시하려면 Discord에서 직접 역할을 주거나 Carl-bot 같은 역할 봇을 쓰고, CordBase는 누가 언제 무엇을 수여했는지 남기는 기록으로 쓰세요.
- 자동 수여. 여기에는 활동이나 레벨에 따라 자동으로 수여하는 기능이 없어요. "레벨 10이 되면 역할 받기"라면 역할 보상이 있는 레벨 봇이 맞아요.
- 실제 강의와 시험. 멤버에게 강의, 퀴즈, 채점되는 평가가 필요하다면 Moodle 같은 학습 관리 도구를 쓰고, Discord에서 보이게 하고 싶다면 합격 기록만 여기에 남기세요.
알아 두면 좋은 한도
- 만료일은 날짜일 뿐이에요. CordBase는 누구에게도 알리지 않고 만료된 자격증을 표시하지도 않으며, 날짜는 확인 없이 입력한 그대로 저장돼요. 날짜 필터는 정확히 하루만 찾기 때문에 이번 달에 만료되는 것을 모두 찾을 수는 없어요. 예약 게시물(유료 플랜)은 행별 알림이 아니라 테이블 요약을 올려요.
- 목록당 자격증 25개. Discord는 선택지 목록을 25개로 제한해요. 그보다 많으면 수여 테이블을 둘로 나누세요.
- 플랜 한도. Free는 테이블 2개, 테이블당 행 100개이고, 수여 하나가 행 하나예요. Pro($8/월)는 테이블 무제한, 테이블당 행 10,000개예요. Max($15/월)는 행 50,000개예요. CSV·JSON 내보내기는 모든 플랜에서 쓸 수 있어요. 요금제를 참고하세요.
- 시간이나 포인트 같은 숫자 열을 추가하지 않으면 리더보드는 없어요.
- 테이블은 웹에서 설계해요. 멤버가 Discord에서 만들 수는 없어요. 삭제한 행은 30일 후 완전히 삭제돼요.
자주 묻는 질문
자격증을 수여하면 CordBase가 멤버에게 Discord 역할을 줄 수 있나요?
아니요. 수여 기록만 남기고 Discord 역할 시스템에는 아무것도 하지 않아요. 역할은 직접 주거나 역할 봇과 함께 쓰고, CordBase는 누가 무엇을 수여했는지 남기는 기록으로 쓰세요.
자격증이 만료되면 알려 줄 수 있나요?
아니요. 만료일은 view나 웹 테이블에서 볼 수 있는 일반 날짜 열이에요. CordBase는 알림을 보내지 않고, 날짜 필터는 정확히 하루만 찾아요. 정해 둔 주기로 테이블을 확인하세요.
멤버가 자기 자격증을 볼 수 있나요?
네. 읽기 권한이 있으면 member 옵션에 자기 이름을 넣고 query를 실행할 수 있어요. 읽기 권한으로는 다른 멤버도 찾아볼 수 있으니, 기록이 비공개여야 한다면 교관에게만 권한을 주세요.