Terminal 탭에서 같은 Task 바로 다시 실행하기
완료된 Task Terminal을 그대로 선택해 Rerun Task를 실행하고, 같은 전용 Terminal에서 새 실행 결과를 확인합니다.
이번 편의 핵심
JCOS Task Terminal 재실행을 한 번 실행한 뒤 그 Task Terminal의 Rerun Task 액션 또는 Ctrl+Shift+R을 사용합니다.
같은 전용 Terminal 탭에서 새 RUN_ID가 출력되고 이전 값과 달라지면 완료입니다.
1. 시작하기 전에
난이도는 초급입니다. .vscode/tasks.json 한 파일을 편집하고 안전한 로컬 PowerShell 프로세스를 두 번 실행합니다. 확장 설치, 관리자 권한, 외부 전송은 없습니다.
준비할 것
- 자신이 만든 연습 폴더 — Explorer의 최상위 폴더명과 일반 Terminal의
Get-Location이 일치하는지 확인합니다. - Windows PowerShell — 일반 Terminal에서
$PSVersionTable.PSVersion을 실행해 버전이 보이는지 확인합니다. - 복원 수단 — 기존
.vscode/tasks.json이 있으면 백업하거나 소스 제어 상태를 확인합니다.
적용 환경 Windows 11 · VS Code Stable 1.136.1 · 영어 명령명 기준 · PowerShell 5.1 이상
command가 powershell.exe이고 마지막 args가 Write-Output뿐인지 사람이 확인한 뒤 실행하세요. 중단 조건: 실제 프로젝트이거나 기존 Task의 소유·복원 방법을 모르면 파일을 바꾸지 않습니다.2. 알아둘 핵심 개념
Task Terminal
FACT VS Code Task가 만든 Terminal입니다. VS Code는 이 Terminal에 마지막으로 연결된 Task를 추적하며 Task 전용 액션을 제공할 수 있습니다.
Rerun Task와 Rerun Last Task
FACT Rerun Task의 command ID는 workbench.action.tasks.rerunForActiveTerminal입니다. Task Terminal이 활성일 때 그 Terminal과 연결된 Task를 다시 시작합니다. 전역 Rerun Last Task(workbench.action.tasks.reRunTask)와 대상 범위가 다릅니다.
전용 Terminal
FACT presentation.panel의 String 값 "dedicated"는 같은 Task가 자기 전용 Terminal을 선호하게 합니다. 다른 Task의 출력과 섞이지 않아 재실행 전후를 비교하기 쉽습니다.
3. 순서대로 진행하기
각 단계의 정상 결과를 확인한 뒤 다음 단계로 이동합니다.
1. 연습 폴더와 백업 확인
목적 기존 작업을 보호합니다.
- Explorer에서 현재 폴더명과
.vscode/tasks.json존재 여부만 확인합니다. 일반 Terminal의Get-Location도 확인합니다.
입력 위치 VS Code Explorer와 일반 PowerShell Terminal
Get-Location
정상 결과 연습 폴더가 맞고 기존 Task를 복원할 방법이 있습니다.
확인 Explorer와 Get-Location의 폴더가 같습니다.
실패 신호 실제 프로젝트이거나 기존 파일의 소유·내용을 모릅니다.
2. Task 실행 영향 확인
목적 실행 전 Human Gate를 통과합니다.
- 아래 예제의
command와 마지막args가Write-Output만 수행하는지 읽습니다.
입력 위치 Step 3의 JSON 예제
Write-Output ('RERUN_TASK_LAB RUN_ID=' + [guid]::NewGuid().ToString('N').Substring(0,8))
정상 결과 삭제, 덮어쓰기, 설치, 권한 상승, 네트워크 전송 명령이 없습니다.
확인 Remove-Item, Set-Content, Invoke-WebRequest가 없습니다.
실패 신호 예제가 아닌 명령이 섞였거나 내용을 설명할 수 없습니다.
3. 전용 Terminal Task 만들기
목적 Terminal별 재실행 대상을 분명히 합니다.
- 연습 폴더의
.vscode/tasks.json에 아래 Task를 추가하고 저장합니다. 기존tasksArray가 있으면 전체 파일을 덮어쓰지 말고 객체 하나만 추가하세요.
입력 위치 Workspace 루트의 .vscode/tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "JCOS Task Terminal 재실행",
"type": "process",
"command": "powershell.exe",
"args": [
"-NoLogo",
"-NoProfile",
"-Command",
"Write-Output ('RERUN_TASK_LAB RUN_ID=' + [guid]::NewGuid().ToString('N').Substring(0,8))"
],
"problemMatcher": [],
"presentation": {
"reveal": "always",
"panel": "dedicated",
"clear": false,
"focus": false,
"showReuseMessage": false
}
}
]
}
정상 결과 Problems에 JSON 오류가 없고 Task 목록에 label이 보입니다.
확인 파일 우측 아래 언어 모드와 빨간 밑줄 유무를 확인합니다. Placeholder는 없습니다.
실패 신호 Expected comma, Property expected 또는 label 누락입니다.
4. 첫 실행으로 Task Terminal 만들기
목적 재실행 액션이 연결될 Task Terminal을 만듭니다.
- Command Palette에서 Tasks: Run Task를 열고 JCOS Task Terminal 재실행을 한 번 선택합니다.
입력 위치 Command Palette
RERUN_TASK_LAB RUN_ID=<8자리 값>
정상 결과 Task Terminal이 열리고 종료 코드 0으로 끝납니다.
확인 첫 RUN_ID 8자리를 복사하거나 눈으로 기억합니다.
실패 신호 label을 찾을 수 없거나 PowerShell 오류가 납니다.
5. Task Terminal 액션 확인
목적 전역 마지막 Task가 아니라 현재 Terminal의 Task를 대상으로 합니다.
- Terminal 탭 목록에서 JCOS Task Terminal 재실행을 선택하고 순환 화살표 버튼을 찾습니다. 보이지 않으면 탭을 오른쪽 클릭해 Rerun Task를 찾습니다.
입력 위치 Terminal 탭의 인라인 도구 모음 또는 컨텍스트 메뉴
Command ID: workbench.action.tasks.rerunForActiveTerminal
정상 결과 Task Terminal에서 Rerun Task 액션이 보입니다.
확인 일반 PowerShell Terminal 탭과 Task Terminal 탭을 번갈아 선택해 차이를 봅니다.
실패 신호 Task Terminal이 선택되지 않았거나 액션이 어느 Terminal에도 없습니다.
6. 같은 Terminal에서 Task 재실행
목적 선택한 Terminal에 연결된 Task를 즉시 다시 실행합니다.
- Rerun Task를 한 번 누릅니다. 키보드 경로는 Terminal에 포커스를 두고 Ctrl+Shift+R을 한 번 누릅니다.
입력 위치 활성 Task Terminal
첫 실행: RERUN_TASK_LAB RUN_ID=3a91c7e2
재실행: RERUN_TASK_LAB RUN_ID=b84d205f
정상 결과 같은 전용 Terminal 탭에서 새 프로세스가 실행되고 새로운 RUN_ID가 보입니다.
확인 두 값이 다르고 Terminal 탭이 별도 일반 Terminal로 바뀌지 않았는지 확인합니다. 예시 ID는 실행마다 달라지는 Placeholder입니다.
실패 신호 아무 반응이 없거나 다른 Task가 실행되거나 Terminal 탭이 사라집니다.
7. 액션이 없을 때 안전한 fallback
목적 대상이 불분명한 상태에서 잘못된 Task를 실행하지 않습니다.
- 같은 Task가 확실히 마지막 실행이었다면 Command Palette의 Tasks: Rerun Last Task를 한 번 사용합니다. 확실하지 않으면 Tasks: Run Task에서 정확한 label을 다시 선택합니다.
입력 위치 Command Palette
대상 확인: JCOS Task Terminal 재실행
출력 확인: RERUN_TASK_LAB RUN_ID=<새 값>
정상 결과 정확한 label의 출력만 새로 생깁니다.
확인 실행 label과 출력 접두사 RERUN_TASK_LAB을 함께 확인합니다.
실패 신호 다른 Task 출력이 보이거나 Quick Pick이 예상과 다릅니다.
8. 완료 확인과 롤백
목적 완료 조건을 독립 확인하고 연습 변경을 되돌립니다.
- Terminal 탭 이름, 서로 다른 두
RUN_ID,panel: "dedicated"를 교차 확인한 뒤 추가한 Task 객체만 제거하거나 백업을 복원합니다.
입력 위치 Terminal 탭과 .vscode/tasks.json
완료: 같은 Task Terminal + 서로 다른 RUN_ID 2개 + panel="dedicated"
정상 결과 재실행 성공이 확인되고 기존 Task 구성은 보존됩니다.
확인 저장 후 Tasks: Run Task에서 연습 label이 사라지고 기존 Task는 남아 있습니다.
실패 신호 기존 Task까지 사라지거나 JSON 오류가 생깁니다.
4. 완료 확인하기
입력 화면과 독립된 방법을 포함해 결과를 교차 확인합니다.
- 실제 Task 파일을 JSON으로 파싱했을 때
presentation.panel이 String"dedicated"입니다. - 같은 명령을 새 프로세스로 두 번 실행하면 두 결과 모두
RERUN_TASK_LAB RUN_ID=로 시작하고 ID가 다릅니다. - UI Human Gate에서 Task Terminal의 Rerun Task를 사용한 뒤 같은 탭에 새 ID가 보입니다.
완료 기준 대상 Task Terminal을 선택하고 Rerun Task를 한 번 실행해 같은 전용 Terminal에서 서로 다른 두 RUN_ID를 확인하며, Rerun Last Task와 대상 차이를 설명할 수 있습니다.
5. 문제가 생겼다면
Rerun Task가 보이지 않습니다
먼저 확인 일반 Terminal이 아니라 Task가 만든 Terminal인지, Task 실행이 한 번 완료됐는지 확인합니다.
복구 Tasks: Run Task에서 정확한 label을 다시 실행하고 그 Task Terminal 탭을 선택합니다.
재합류 Step 5.
Ctrl+Shift+R이 다른 동작을 합니다
먼저 확인 Terminal 포커스와 사용자 키 바인딩 충돌을 확인합니다.
복구 단축키 대신 탭 오른쪽 클릭의 Rerun Task를 사용합니다. 단축키를 임의로 재지정하지 않습니다.
재합류 Step 6.
다른 Task가 실행됩니다
먼저 확인 사용한 명령이 Rerun Task인지 Rerun Last Task인지 확인합니다.
복구 잘못 실행된 작업의 영향과 출력을 보존하고 필요할 때만 Tasks: Terminate Task를 사용합니다.
재합류 Step 5.
새 Terminal 탭이 생깁니다
먼저 확인 presentation.panel이 String "dedicated"인지, 다른 label의 Task를 실행한 것은 아닌지 확인합니다.
복구 값을 수정하고 기존 실습 Terminal을 닫은 뒤 정확한 Task를 다시 실행합니다.
재합류 Step 4.
재실행 여부를 모르겠습니다
먼저 확인 두 RUN_ID를 비교합니다. 동일하거나 한 줄뿐이면 완료로 판정하지 않습니다.
복구 컨텍스트 메뉴의 Rerun Task를 한 번만 누르고 새 8자리 값을 확인합니다.
재합류 Step 6.
6. 핵심 정리와 공식 자료
- FACT Rerun Task는 Task Terminal 컨텍스트의 명령이며 command ID는
workbench.action.tasks.rerunForActiveTerminal입니다. - FACT Stable 소스는 Terminal 인스턴스와 연결된 Task를 찾아 다시 시작합니다.
- FACT
panel: "dedicated"는 같은 Task의 전용 Terminal 재사용을 선호합니다. - PROCEDURE 첫 실행으로 Task Terminal을 만든 뒤 그 탭의 액션 또는 Ctrl+Shift+R을 사용합니다.
- RECOMMENDATION 대상 Terminal이 불분명하면 전역 재실행 대신 Tasks: Run Task에서 정확한 label을 다시 고릅니다.
공식 자료
아래 자료는 2026-09-04 Asia/Seoul에 확인했습니다. Stable API와 고정 commit 소스는 Windows x64 User Stable 1.136.1에 적용되며, UI 배치와 번역 명칭은 이후 버전·언어 팩에서 달라질 수 있습니다.
- VS Code Stable Update API · Microsoft
- Integrate with External Tools via Tasks · Microsoft
- Visual Studio Code February 2025: Task rerun action · Microsoft
- Stable task.contribution.ts · Microsoft
- Stable abstractTaskService.ts · Microsoft
- Stable terminalTaskSystem.ts · Microsoft
'개발 > Visual Studio Code' 카테고리의 다른 글
| 커맨드 팔레트 38부: VS Code 실행 중 Task 하나만 새 정의로 재시작하기 (0) | 2026.09.07 |
|---|---|
| 커맨드 팔레트 37부: VS Code 실행 중인 여러 Task 한 번에 재시작하기 (1) | 2026.09.06 |
| 커맨드 팔레트 35부: VS Code Task Terminal을 아이콘과 색으로 빠르게 구분하기 (1) | 2026.09.04 |
| 커맨드 팔레트 34부: VS Code 재사용 Terminal 안내만 숨기고 Task 출력 유지하기 (0) | 2026.09.02 |
| 커맨드 팔레트 33부: VS Code Task 실행 명령만 숨기고 출력은 그대로 보기 (0) | 2026.09.01 |