VS Code Task 완료 알림이 뜨는 실행 시간 정하기
Workspace의 task.notifyWindowOnTaskCompletion을 0으로 설정하고, VS Code 창이 포커스를 잃은 상태에서 짧은 Task 완료 알림을 확인합니다.
이번 편의 핵심
Task Terminal의 NOTIFY_TEST_DONE과 Windows 알림 토스트 또는 VS Code 창 배지를 확인한 뒤, 설정을 기본값 60000 또는 Key 제거 상태로 복원합니다.
0은 실행 시간과 관계없이 알림 대상, -1은 비활성화, 양의 정수는 최소 실행 시간입니다. 완료 순간 VS Code 창에 포커스가 있으면 알림이 만들어지지 않습니다.
1. 시작하기 전에
VS Code에서 폴더를 열고 Tasks: Run Task를 한 번 이상 사용해 본 초보자용 실습입니다. 기존 설정과 알림을 보호하기 위해 새 빈 폴더만 사용합니다.
준비할 것
- 빈 연습 폴더
C:\Users\<USER>\Documents\vscode-task-notify-lab—<USER>를 자신의 Windows 사용자 폴더명으로 바꾸고 File > Open Folder...로 엽니다. - Windows 11 설정 > 시스템 > 알림 — Visual Studio Code 알림 허용과 방해 금지 상태를 확인합니다.
- Windows PowerShell 5.1 — Start 메뉴 또는 VS Code Terminal 프로필에서 확인합니다.
적용 환경 한국어 초보자 · Windows 11 · VS Code Stable 1.134.0 · Windows PowerShell 5.1
.vscode\settings.json 또는 tasks.json이 있으면 .bak 복사본을 먼저 만들고 덮어쓰지 마십시오. 이 실습은 로컬 2.5초 대기와 문자열 출력만 수행하며 설치·삭제·외부 전송·게시·배포를 하지 않습니다. 중단 조건: 업무 프로젝트, dirty editor, 백업 불가, JSON 오류 또는 알림 권한 변경 권한이 없으면 실행하지 않습니다.2. 알아둘 핵심 개념
task.notifyWindowOnTaskCompletion
Task 완료 알림의 최소 실행 시간을 밀리초로 정하는 설정입니다. 자료형은 Integer, 최솟값은 -1, 일반 VS Code 창의 기본값은 60000입니다. 명시적 Scope가 없는 Window 설정이라 User와 Workspace에서 구성할 수 있고, 이 글은 연습 폴더에만 적용되는 Workspace 범위를 사용합니다.
-1은 완료 알림 비활성화, 0은 최소 시간 없이 항상 알림 대상, 양의 정수는 Task 실행 시간이 그 값 이상일 때만 알림 대상입니다.포커스 조건
Stable 1.134.0 구현은 Task가 끝났을 때 해당 VS Code 창에 포커스가 있으면 알림을 만들지 않습니다. Task 실행 직후 메모장이나 파일 탐색기처럼 다른 창으로 전환해야 합니다.
OS 토스트·창 배지·Terminal Evidence
공식 설정 설명에는 OS 알림 토스트와 창 배지가 포함됩니다. Windows 알림 권한·방해 금지·집중 세션은 토스트 노출에 영향을 줄 수 있습니다. Terminal 출력은 Task 자체 완료의 독립 Evidence이고, 토스트 또는 배지는 포커스 밖 알림 동작의 Evidence입니다.
3. 순서대로 진행하기
각 단계의 정상 결과를 확인한 뒤 다음 단계로 이동합니다.
1. 빈 연습 폴더와 알림 권한 확인하기
목적 기존 프로젝트와 설정을 보호하고 OS가 알림을 표시할 수 있게 합니다.
C:\Users\<USER>\Documents\vscode-task-notify-lab를 새로 만들어 VS Code로 열고, Windows 알림 설정에서 Visual Studio Code 알림 허용과 방해 금지 상태를 확인합니다.
입력 위치 파일 탐색기, VS Code Explorer, Windows 설정
C:\Users\<USER>\Documents\vscode-task-notify-lab
# <USER>를 실제 Windows 사용자 폴더명으로 치환
정상 결과 Explorer 최상단에 연습 폴더가 보이고 Visual Studio Code 알림이 허용되어 있습니다.
확인 기존 .vscode 파일과 dirty editor가 없는지 봅니다.
실패 신호 업무 프로젝트, 기존 설정 파일, 알림 차단 또는 방해 금지가 보입니다.
2. 완료 시간을 관찰할 Task 만들기
목적 짧고 안전한 Task의 시작·완료·실행 시간을 Terminal에서 확인합니다.
.vscode\tasks.json을 만들고 아래 JSON을 저장합니다.
입력 위치 Workspace 루트의 .vscode\tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "Task notification test",
"type": "process",
"command": "powershell.exe",
"args": [
"-NoProfile",
"-Command",
"$started = Get-Date; Start-Sleep -Milliseconds 2500; $elapsed = [math]::Round(((Get-Date) - $started).TotalMilliseconds); Write-Output ('NOTIFY_TEST_DONE elapsed_ms=' + $elapsed)"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": []
}
]
}
정상 결과 빨간 밑줄 없이 configured Task가 1개 저장됩니다.
확인 label, powershell.exe, args, options.cwd=${workspaceFolder}, 빈 problemMatcher를 확인합니다.
실패 신호 Incorrect type, 괄호·쉼표 오류 또는 Task가 목록에 보이지 않습니다.
tasks.json을 덮어쓰지 마십시오. 되돌리기: 오류 원문을 보존하고 백업 또는 예제 구조를 복원해 2단계에 재합류합니다.3. 변경 전 기준값과 자료형 확인하기
목적 현재 적용 값과 공식 계약을 기록해 되돌릴 기준을 만듭니다.
- Settings를 열어
@modified task.notifyWindowOnTaskCompletion을 검색하고 User·Workspace 값을 확인합니다.
입력 위치 Settings UI의 User 및 Workspace 탭
task.notifyWindowOnTaskCompletion
자료형: Integer
기본값: 60000
최솟값: -1
정상 결과 현재 값이 정수인지, 또는 미설정이라 기본값을 상속하는지 구분할 수 있습니다.
확인 원래 값과 적용 범위를 메모합니다.
실패 신호 true, "always", -2 또는 Unknown Configuration이 보입니다.
4. Workspace에서 짧은 Task 알림 켜기
목적 2.5초 Task도 완료 알림 대상이 되게 합니다.
.vscode\settings.json에 아래 JSON을 저장합니다.
입력 위치 Workspace 루트의 .vscode\settings.json
{
"task.notifyWindowOnTaskCompletion": 0
}
정상 결과 Settings의 Workspace 탭에 0이 보이고 JSON 오류가 없습니다.
확인 값이 따옴표 없는 Integer이고 User가 아닌 Workspace 범위인지 확인합니다.
실패 신호 "0", false, 빨간 밑줄 또는 User Settings 변경이 보입니다.
5. VS Code 포커스를 빼고 Task 실행하기
목적 완료 알림이 필요한 포커스 밖 조건을 만듭니다.
Ctrl+Shift+P→ Tasks: Run Task → Task notification test를 실행하고 즉시Alt+Tab으로 메모장 또는 파일 탐색기로 전환합니다.
입력 위치 Command Palette와 다른 Windows 창
Ctrl+Shift+P
Tasks: Run Task
Task notification test
Alt+Tab
정상 결과 약 2.5초 뒤 Windows 알림 토스트 또는 VS Code 창 배지가 표시됩니다.
확인 알림을 선택했을 때 Task가 끝난 VS Code 창으로 돌아오는지 봅니다.
실패 신호 VS Code가 계속 활성 창이거나 5초가 지나도 토스트·배지가 없습니다.
6. Terminal에서 Task 완료를 독립 확인하기
목적 OS 알림 표시와 Task 자체 완료를 분리해 검증합니다.
- VS Code로 돌아와 Task Terminal의 마지막 출력과 종료 상태를 확인합니다.
입력 위치 Task 전용 Integrated Terminal
NOTIFY_TEST_DONE elapsed_ms=<ELAPSED_MS>
# <ELAPSED_MS>는 실행마다 달라지는 실제 정수
정상 결과 elapsed_ms가 약 2500 이상이고 process exit code가 0입니다.
확인 알림의 Task 이름과 Terminal label이 Task notification test로 같은지 비교합니다.
실패 신호 출력 없음, 0이 아닌 종료 코드 또는 Start-Sleep 오류가 보입니다.
7. -1 비활성화와 기본 임계값 비교하기
목적 0, -1, 60000의 역할을 혼동하지 않습니다.
- Workspace 값을
-1로 바꾸고 같은 Task를 포커스 밖에서 한 번 실행해 알림이 없음을 확인합니다.
입력 위치 Workspace .vscode\settings.json과 Command Palette
{
"task.notifyWindowOnTaskCompletion": -1
}
정상 결과 Task는 완료되어 NOTIFY_TEST_DONE을 출력하지만 토스트·창 배지는 생성되지 않습니다.
확인 기본값 60000은 비활성화가 아니라 60초 이상 실행된 Task만 대상으로 삼는 값임을 구분합니다.
실패 신호 -1인데 새 알림이 표시되거나 Task 자체가 실행되지 않습니다.
8. 실습 설정 되돌리고 완료 조건 확인하기
목적 실습용 알림 정책을 기본 상태로 복원합니다.
- Workspace Key를 제거하거나
60000으로 바꾸고, 기존 설정 파일이 있었다면.bak을 복원합니다.
입력 위치 Workspace .vscode\settings.json
{
"task.notifyWindowOnTaskCompletion": 60000
}
정상 결과 Workspace의 실습용0과-1이 남지 않습니다.
확인 @modified task.notifyWindowOnTaskCompletion에서 Workspace 변경이 사라지거나 60000으로 보입니다.
실패 신호 Workspace 값이 계속 0/-1이거나 JSON 오류가 남습니다.
4. 완료 확인하기
설정 화면, OS 알림과 Task Terminal을 교차 확인합니다.
- 설정 계약 — Integer, 최솟값
-1, 일반 창 기본값60000이 Stable 소스와 일치합니다. - 포커스 밖 알림 — Workspace 값
0에서 짧은 Task의 토스트 또는 창 배지를 관찰했습니다. - 독립 검증 — Terminal에서
NOTIFY_TEST_DONE과 약 2500ms 이상의 실행 시간을 확인했습니다. - 비활성화 비교 —
-1에서는 Task가 실행되지만 완료 알림은 만들어지지 않았습니다. - Rollback — Workspace Key를 제거하거나
60000으로 복원했습니다.
완료 기준 Task Terminal의NOTIFY_TEST_DONE과 Windows 알림 토스트 또는 VS Code 창 배지를 확인하고, 마지막에 설정을 기본값60000또는 Key 제거 상태로 복원합니다.
5. 문제가 생겼다면
Task는 끝났지만 알림이 나오지 않는다
먼저 확인 완료 순간 VS Code가 포커스를 가졌는지, Windows 알림 허용·방해 금지·집중 세션, Workspace 값 0을 확인합니다.
복구 알림을 허용하고 다른 창을 활성화한 상태를 유지합니다. 원인을 확인하지 못하면 Windows 알림 기록과 Settings 값을 보존합니다.
재합류 5단계에서 다시 실행합니다.
알림은 떴지만 Terminal 출력이 없다
먼저 확인 알림의 Task 이름·시간, Task Terminal label과 종료 코드를 확인합니다.
복구 다른 Task 알림이면 닫고 Task notification test의 JSON 오류를 고칩니다.
재합류 2단계에서 Task를 검토한 뒤 5단계로 이동합니다.
-1인데 알림이 나온다
먼저 확인 이전 알림인지, Workspace 값이 저장되었는지, 다른 VS Code 창에서 실행한 Task인지 봅니다.
복구 설정을 다시 저장하고 Developer: Reload Window 후 알림 시간과 Task 이름을 기록합니다.
재합류 7단계에서 다시 비교합니다.
설정 값에 빨간 밑줄이 보인다
먼저 확인 값이 따옴표 없는 Integer이고 -1 이상인지 확인합니다.
복구 0, -1, 60000 중 실습 단계에 맞는 정수로 고칩니다.
재합류 4단계에서 다시 저장합니다.
알림 선택 시 다른 VS Code 창이 열린다
먼저 확인 여러 VS Code 창의 Workspace 이름과 Task label을 확인합니다.
복구 다른 창의 Task를 중지할 필요가 있는지 사람이 판단하고, 연습 창 하나만 남겨 다시 실행합니다.
재합류 5단계에서 알림을 다시 관찰합니다.
UNKNOWN으로 중단합니다.6. 핵심 정리와 공식 자료
- FACT
task.notifyWindowOnTaskCompletion은 Integer 밀리초이며 기본값은60000, 최솟값은-1입니다. - FACT
-1은 비활성화,0은 실행 시간과 관계없이 알림 대상, 양수는 최소 실행 시간입니다. - FACT Task 완료 순간 VS Code 창에 포커스가 있으면 알림을 만들지 않습니다.
- PROCEDURE Workspace
0과 2.5초 Task로 포커스 밖 알림을 확인하고-1과 비교했습니다. - RECOMMENDATION 실제 프로젝트에서는 알림 과다를 피하도록 기본
60000에서 시작하고 필요한 Workspace만 조정합니다. - UNCONFIRMED Windows 표시 언어와 알림 정책에 따른 정확한 토스트 문구·배지 위치는 환경마다 다를 수 있습니다.
공식 자료
아래 자료는 2026-08-25 Asia/Seoul에 확인했습니다. Stable 고정 commit 소스는 1.134.0 동작을 설명하며 이후 버전에서는 UI와 구현이 달라질 수 있습니다.
- VS Code Stable Update API · Microsoft
- VS Code 1.134 Release Notes · Microsoft
- Integrate with External Tools via Tasks · Microsoft
- VS Code 1.105 Release Notes — Task completion notification · Microsoft
- Task notification setting schema at Stable commit · Microsoft
- Task completion notification implementation at Stable commit · Microsoft
- Configuration scope registry at Stable commit · Microsoft
task.verboseLogging의 Boolean 기본값 false, Tasks: Show Task Log, 로그 활성화·오류 Evidence 보존·비밀정보 점검과 Rollback을 다룹니다.'개발 > Visual Studio Code' 카테고리의 다른 글
| 커맨드 팔레트 28부: VS Code 창 Reload 뒤 실행 중 Task에 다시 연결하기 (0) | 2026.08.27 |
|---|---|
| 커맨드 팔레트 27부: VS Code 자세한 Task 로그로 실행 문제 진단하기 (0) | 2026.08.26 |
| 커맨드 팔레트 25부: VS Code Task 실행 전에 편집 파일 저장 여부 정하기 (0) | 2026.08.24 |
| 커맨드 팔레트 24부: VS Code Task를 공급자 그룹 없이 한 목록에서 찾기 (0) | 2026.08.23 |
| 커맨드 팔레트 23부: VS Code Task 하나를 선택 목록 없이 바로 실행하기 (0) | 2026.08.23 |