블로그로 돌아가기
Guide

Discord AFK 타임아웃: 비활성 채널이 작동하는 방식과 끄는 법

Discord의 AFK 타임아웃은 서버 설정입니다. 서버에 AFK용 비활성 채널이 있으면, 음성에서 1분, 5분, 15분, 30분, 1시간 동안 아무것도 하지 않은 멤버는 그곳으로 옮겨지고 음소거됩니다. 타임아웃을 바꾸거나 끌 수 있는 것은 서버 관리자뿐이고, 멤버는 못 합니다.

Slack Green Team
November 5, 2026
November 5, 2026
6 분 읽기
Share:
discord
afk
voice channels
idle status

Discord의 AFK 타임아웃은 서버마다 정하는 설정입니다. 서버 소유자가 Inactive Channel(AFK용 비활성 채널)을 골라 두었다면, 음성 채널에서 Inactive Timeout(비활성 시간 제한) 동안 아무것도 하지 않은 사람을 Discord가 그 채널로 옮기고, 거기서는 음소거됩니다. 시간 제한은 1분, 5분, 15분, 30분, 1시간 중 하나이고 그보다 길게는 안 됩니다. 바꾸거나 끌 수 있는 사람은 서버 관리 권한이 있는 사람뿐이고, Inactive Channel을 "No Inactive Channel"로 두면 꺼집니다. 멤버는 끌 수 없습니다. 활동 상태를 유지하거나, AFK 채널이 없는 서버를 쓰는 수밖에 없습니다.

타이머는 설정보다 늦게 움직입니다. 2026년 10월 22일에 Discord 자체 앱의 코드를 읽었습니다. 옮기는 일은 데스크톱 앱이 직접 하고, 그것도 내가 자리 비움(Idle)이 된 뒤에만 합니다. 자리 비움은 컴퓨터 입력이 10분 없거나 화면을 잠갔을 때 됩니다. 그런 다음 마지막 입력으로부터 Inactive Timeout이 지나면 옮깁니다. 그래서 1분이나 5분 타임아웃은 화면을 잠그지 않는 한 10분처럼 작동합니다.

AFK 타임아웃은 노란 달 모양의 자리 비움 상태와는 별개입니다. 그쪽은 개인 상태이고 키보드와 마우스 입력을 따릅니다. Discord 자리 비움의 뜻에 정리했습니다.

Discord AFK 채널이 작동하는 방식

  • Inactive Channel이 설정된 서버의 음성 채널에 있습니다.
  • Discord가 Inactive Timeout 동안 내 활동을 보지 못합니다.
  • Discord가 나를 Inactive Channel로 옮깁니다. 음성 연결은 유지되지만 그곳에서는 말할 수 없습니다.
  • 돌아오면 아무 음성 채널이나 눌러 다시 들어가면 됩니다.
  • 무엇이 활동으로 치는지는 아래 코드에 있습니다. 컴퓨터 어디에서든 키보드와 마우스 입력은 활동으로 치고, 말하는 것도 칩니다. 마이크가 음성을 보내면 앱이 나를 활동 중으로 표시합니다. 내 마이크를 음소거하면 그것은 멈춥니다. 그래서 컴퓨터를 계속 쓰거나 계속 말하는 사람은 그대로 있고, 자리를 뜬 사람은 옮겨집니다.

    AFK 채널에는 비용 이유도 있습니다. Discord 피드백 포럼의 답변에 따르면, 음성에서 가만히 있는 사람도 스트림을 계속 받고, 그 대역폭은 Discord가 돈을 냅니다. 가만히 있는 멤버를 음소거 채널로 옮기면 그 비용이 줄어듭니다.

    Discord 코드가 하는 일(2026년 10월 22일 확인)

    위의 규칙은 Discord가 discord.com/app에서 내려주는 JavaScript에서 읽은 것입니다. 이 파일에는 데스크톱 앱의 자리 비움과 AFK 로직이 들어 있습니다. 다음 스크립트는 그것을 내려받아, 언제 자리 비움이 되고 언제 옮겨지는지를 정하는 줄을 출력합니다.

    import re, urllib.request
    
    UA = {"User-Agent": "Mozilla/5.0 (Macintosh) Chrome/141"}
    get = lambda u: urllib.request.urlopen(urllib.request.Request(u, headers=UA), timeout=60).read().decode("utf-8", "ignore")
    html = get("https://discord.com/app")
    print("build", re.search(r"BUILD_NUMBER\W+(\d+)", html).group(1))
    web = [s for s in re.findall(r'src="(/assets/[^"]+\.js)"', html) if "/web." in s][0]
    js = get("https://discord.com" + web)
    
    def show(label, pattern):
        m = re.search(pattern, js)
        print(f"{label}: {m.group(0) if m else 'not found'}")
    
    show("idle after (ms)", r"\b\w{1,3}=6e5(?=,)")
    show("idle rule", r'Date\.now\(\)-\w+>\w+\.\w+\|\|\w+\(\)\?\w+\|\|\w+\.\w+\.dispatch\(\{type:"IDLE",idle:!0')
    show("idle at once when", r"function \w+\(\)\{return \w+\|\|\w+\|\|\(0,\w+\.isAndroid\)\(\)&&\w+\}")
    show("Android background flag", r"APP_STATE_UPDATE:function\(e\)\{let\{state:t\}=e;return \w+=t===\w+\.\w+\.BACKGROUND")
    show("desktop app reads system idle every", r"setTimeout\(e,10\*\w+\.\w+\.Millis\.SECOND\)")
    show("desktop screen lock", r'powerMonitor\.on\("lock-screen",\(\)=>\{\w+=!0')
    show("browser checks every", r"setInterval\(\w+,30\*\w+\.\w+\.Millis\.SECOND\)")
    show("browser input", r'addEventListener\("mouseup",\w+\),window\.addEventListener\("wheel",\w+\),window\.addEventListener\("keypress",\w+\)')
    show("AFK move runs only in", r"handleIdleUpdate\(\)\{let \w+=\w+\.\w+\.getIdleSince\(\);if\(!\w+\.isPlatformEmbedded\)return")
    show("AFK move timer", r"\w+\.start\(\w+\+\w+\.afkTimeout\*\w+\.\w+\.Millis\.SECOND-Date\.now\(\)")
    show("leave voice after idle (ms)", r"\w+\.start\(18e6,\(\)=>\{\w+\.default\.selectVoiceChannel\(null\)\}\)")
    show("speaking counts as input", r'SPEAKING:function\(e\)\{let\{userId:t,speakingFlags:n\}=e;return n!==\w+\.\w+\.NONE&&t===\w+\.default\.getId\(\)&&\w+\(\{\}\)')
    show("no AFK move while streaming", r'for\(let e of\(\w+\.stop\(\),\w+\.stop\(\),\w+\.\w+\.getAllActiveStreams\(\)\)\)if\(e\.state!==\w+\.\w+\.ENDED\)return')

    2026년 10월 22일의 출력:

    build 643186
    idle after (ms): n3=6e5
    idle rule: Date.now()-f>A.sdF||S()?I||l.h.dispatch({type:"IDLE",idle:!0
    idle at once when: function S(){return T||m||(0,_.isAndroid)()&&g}
    Android background flag: APP_STATE_UPDATE:function(e){let{state:t}=e;return g=t===A.g6G.BACKGROUND
    desktop app reads system idle every: setTimeout(e,10*u.A.Millis.SECOND)
    desktop screen lock: powerMonitor.on("lock-screen",()=>{m=!0
    browser checks every: setInterval(N,30*u.A.Millis.SECOND)
    browser input: addEventListener("mouseup",e),window.addEventListener("wheel",e),window.addEventListener("keypress",e)
    AFK move runs only in: handleIdleUpdate(){let e=Vz.A.getIdleSince();if(!eV.isPlatformEmbedded)return
    AFK move timer: VX.start(e+n.afkTimeout*iI.A.Millis.SECOND-Date.now()
    leave voice after idle (ms): Vq.start(18e6,()=>{t5.default.selectVoiceChannel(null)})
    speaking counts as input: SPEAKING:function(e){let{userId:t,speakingFlags:n}=e;return n!==h.ME.NONE&&t===E.default.getId()&&O({})
    no AFK move while streaming: for(let e of(VX.stop(),Vq.stop(),d5.A.getAllActiveStreams()))if(e.state!==W.XYD.ENDED)return

    각 줄의 뜻을 차례로 적습니다.

  • • 마지막 입력 후 600,000ms(10분)가 지나면, 또는 컴퓨터가 절전 모드에 들어가거나 화면이 잠기면 바로 자리 비움이 됩니다.
  • • 데스크톱 앱은 10초마다 컴퓨터의 유휴 시간을 읽기 때문에 어느 앱에서의 입력이든 칩니다. 브라우저 탭에서는 Discord가 자기 탭 안의 클릭, 스크롤, 키 입력만 세고, 30초마다 확인합니다.
  • • 자리 비움이 되면 AFK 이동은 데스크톱 앱(isPlatformEmbedded)에서만 돌아갑니다. 마지막 입력 시각에 서버의 Inactive Timeout을 더한 타이머를 걸고, 시간이 되면 Inactive Channel로 옮깁니다. 이미 지난 타이머는 바로 실행됩니다.
  • • 앱에서 Go Live 방송 중일 때는 두 타이머 모두 시작하지 않고, AFK 이동은 스테이지 채널을 건너뜁니다.
  • • 따로, 자리 비움이 된 지 18,000,000ms(5시간)가 지나면 데스크톱 앱은 AFK 채널이 없는 서버에서도 음성 채널에서 완전히 나갑니다.
  • • 내가 말하는 것은 활동으로 칩니다.
  • 저희는 코드를 읽었고, 실제 서버에서 이동 시간을 재지는 않았습니다. 브라우저 탭에서는 이 코드의 이동이 돌아가지 않으며, 브라우저 사용자가 다른 방식으로 옮겨지는지는 시험하지 않았습니다.

    Discord AFK 타임아웃 선택지

    앱의 설정API 값(afk_timeout, 초)어울리는 곳
    1분60음성 채널을 비워 두고 싶은 붐비는 서버
    5분300Discord 자체 API 예시에 나오는 값
    15분900대부분의 커뮤니티 서버
    30분1800공부나 함께 작업하는 서버
    1시간3600최대값, "없음"은 없음

    Discord 개발자 문서는 이 다섯 값만 허용된다고 적고 있습니다. 아무도 옮기지 않으려면 더 긴 타임아웃을 찾지 말고 Inactive Channel을 없애세요.

    Discord AFK 끄기와 바꾸기(서버 관리자용)

    서버 관리 권한이 필요합니다.

  • 서버 메뉴(왼쪽 위의 서버 이름)를 열고 서버 설정을 고릅니다.
  • 서버 개요 설정에서 Inactive Channel과 Inactive Timeout을 찾습니다.
  • AFK를 끄려면 Inactive Channel을 No Inactive Channel로 둡니다.
  • AFK는 두되 시간을 늘리려면 Inactive Timeout을 30분이나 1시간으로 둡니다.
  • 변경 사항을 저장합니다.
  • 봇도 API로 같은 일을 할 수 있습니다. 서버 관리 권한이 있는 봇이라면 discord.py로 이렇게 합니다.

    # set the AFK channel and a 30-minute timeout
    await guild.edit(afk_channel=afk_voice_channel, afk_timeout=1800)
    
    # turn AFK off
    await guild.edit(afk_channel=None)

    타임아웃은 60, 300, 900, 1800, 3600 중 하나여야 하고, 다른 값은 거부됩니다.

    옮겨지지 않고 Discord에서 AFK로 있는 방법

    멤버인데 서버에 AFK 채널이 있다면, 정직한 방법은 세 가지입니다.

  • • 활동 상태를 유지합니다. Discord나 컴퓨터를 쓰고 있으면 비활성으로 치지 않습니다.
  • • 서버 관리자에게 더 긴 타임아웃이나, 조용히 앉아 있는 것이 당연한 작업용 음성 채널을 부탁합니다.
  • • 친구들과 쓰는 개인 서버처럼 Inactive Channel이 없는 서버를 씁니다. 거기서는 타임아웃이 없습니다.

마이크를 음소거하거나 소리를 끄는 것은 활동으로 치지 않습니다. 다른 사람이 듣는 것이 바뀔 뿐, Discord가 나를 활동 중으로 보는지는 바뀌지 않습니다. 옮겨진 뒤 음성 채널로 돌아가는 것은 언제든 됩니다. AFK 채널은 벌이 아닙니다.

키보드에서 떨어져 있어도 사라진 것처럼 보이고 싶지 않다면 상태를 직접 정하세요. 자리 비움, 방해 금지, 오프라인 표시는 Discord 상태 아이콘의 뜻에 있습니다.

Discord의 AFK, 자리 비움, 오프라인 표시

AFK 채널자리 비움(노란 달)오프라인 표시
정하는 쪽서버 규칙입력이 없으면 Discord가, 또는 내가나
적용 범위그 서버의 음성 채널모든 곳의 내 상태모든 곳의 내 상태
효과옮겨지고 음소거됨달 아이콘, 메시지는 계속 옴오프라인처럼 보임
끄는 법관리자가 Inactive Channel을 없앰Discord를 쓰거나 다른 상태로 바꿈다른 상태를 고름

자리 비움은 컴퓨터에서 키보드나 마우스 입력이 10분 없으면 켜집니다(Discord 코드로는 600,000ms). 전체 규칙과 Discord가 자리 비움이 되지 않게 하는 법은 Discord 자리 비움의 뜻에 있습니다. Discord에서 오프라인으로 보이는 방법의 차이는 Discord 오프라인 표시와 오프라인의 차이에 있습니다.

Discord AFK에 관한 질문

Discord의 AFK 타임아웃이란? 멤버가 음성에서 아무것도 하지 않은 채 서버의 Inactive Channel로 옮겨지기까지의 시간으로, 1분, 5분, 15분, 30분, 1시간 중 하나입니다. 데스크톱 앱에서는 이동이 내가 자리 비움이 되기를 기다리므로, 화면을 잠그지 않는 한 실제로는 10분보다 빨라지지 않습니다.

Discord는 가만히 있으면 음성에서 내보내나요? 데스크톱 앱에서는 그렇습니다. 자리 비움이 된 지 5시간이 지나면 AFK 채널이 없는 서버에서도 음성 채널에서 나갑니다.

Discord AFK는 어떻게 끄나요? 서버를 운영한다면 서버 설정에서 Inactive Channel을 No Inactive Channel로 두세요. 멤버는 끌 수 없습니다.

Discord AFK 타임아웃을 1시간보다 길게 할 수 있나요? 없습니다. 1시간이 최대입니다. 사람을 아예 옮기지 않으려면 Inactive Channel을 없애세요.

AFK 채널에서 왜 말을 못 하나요? Discord는 Inactive Channel에 있는 모든 사람을 음소거합니다. 다시 말하려면 다른 음성 채널에 들어가세요.

관련 기사

Guide

Discord 자리 비움(Idle)이란? 노란 달의 의미

Discord 자리 비움(Idle)은 노란 초승달로, 로그인했지만 컴퓨터를 10분쯤 쓰지 않았거나, 안드로이드 휴대폰에서 Discord 앱을 벗어났거나, 직접 자리 비움을 골랐다는 뜻입니다. 온라인과의 차이, 색과 아이콘, 몇 분 만에 바뀌는지, 서버 AFK 시간 제한이 하는 일.

Slack Green Team
Guide

Discord에서 상태를 바꾸면 알림이 갈까?

온라인, 자리 비움, 방해 금지를 오가도 알림은 가지 않습니다. 하지만 Discord 모바일 앱을 쓰는 친구에게는 내가 온라인이 될 때, 새 사용자 지정 상태를 정할 때, 게임을 시작할 때 푸시 알림이 갈 수 있고, 보내는 쪽에서는 막을 수 없습니다. 받는 쪽은 끌 수 있고, 보내는 쪽은 오프라인 표시를 쓸 수 있습니다.

Slack Green Team
Troubleshooting

Discord에서 오프라인인 사람이 온라인으로 보이는 이유

Discord는 그 사람이 로그인한 모든 기기 중 가장 활발한 상태를 보여 줍니다. PC 트레이에서 Discord가 돌거나 브라우저 탭이 열려 있으면 휴대폰을 닫아도 초록색입니다. 원인, 내 기기 확인법, 반대로 내가 오프라인으로 보이는 버그를 정리했습니다.

Slack Green Team