# 멈춘 업무를 되살려보기

> **이 장에서 배우는 것**
> 읽는 장이 아니라 **하는 장**입니다. 업무를 **일부러 멈추고** 복구 순서를 한 번
> 밟습니다. 진짜로 급할 때 처음 해보지 않기 위해서입니다.

## 준비물

```
□ 30분
□ 작업 폴더가 하나 등록된 상태
□ 되돌리기 쉬운 폴더 — git 을 쓰고 있다면 커밋해두세요
□ 로그를 여는 법
```

로그를 어디서 여는지 모르겠다면 [문제 해결](/guide/ht-troubleshooting)에
적혀 있습니다.

**세 번째 줄을 지키세요.** 이 실습은 일부러 중간에 끊습니다.

---

## 1단계 — 오래 걸릴 업무 하나 (5분)

금방 끝나면 끊을 틈이 없습니다. **조금 오래 걸릴 것**을 시키세요.

```
이 폴더의 모든 파일을 훑어 무엇을 하는 파일인지 한 줄씩 정리해주세요.
파일은 수정하지 마세요.
```

```
□ 진행 중 표시가 보이나
□ 어떤 파일을 읽고 있는지 보이나
```

---

## 2단계 — 중간에 끊기 (5분)

돌고 있는 동안 **중지**를 누르세요.

### 무엇을 보나

| 확인 | |
|---|---|
| 상태가 중지로 바뀌나 | □ |
| 어디까지 했는지 남아 있나 | □ |
| 부분 결과를 볼 수 있나 | □ |

**두 번째가 중요합니다.** 어디까지 했는지 안 남으면 복구가 아니라 처음부터
다시입니다.

---

## 3단계 — 더 험하게 끊기 (10분)

이번엔 **프로그램 자체를 끕니다.** 업무를 다시 시작하고 도는 도중에 끄세요.

```
□ 업무 시작
□ 몇 초 뒤 프로그램 종료 (창을 닫거나 중지)
□ 다시 켜기
```

### 켠 뒤에 확인할 것

```
□ 그 업무가 목록에 남아 있나
□ 상태가 무엇으로 표시되나 (실패? 중단? 진행 중 그대로?)
□ "진행 중"으로 남아 있다면 — 그게 거짓말입니다. 실제로는 아무도 안 돌고 있습니다
```

**세 번째 줄을 꼭 확인하세요.** 프로그램이 죽으면 그 업무를 붙잡고 있던 것도 함께
사라지는데, 화면의 상태는 마지막에 저장된 값 그대로일 수 있습니다. **화면의
'진행 중'을 믿지 말고 로그를 보세요.**

---

## 4단계 — 복구 순서 만들기 (10분)

지금 해본 것을 **다음 사람이 따라 할 수 있는 순서**로 적으세요.

```
1. 상태 확인    — 어디를 보나:
2. 로그 확인    — 어느 파일의 마지막 몇 줄:
3. 판단         — 다시 돌릴 것인가, 부분 결과를 쓸 것인가:
4. 다시 시작    — 어떻게:
5. 안 되면      — 누구에게, 무엇을 들고:
```

**5번의 "무엇을 들고"에** [첫 접속 점검](/guide/ht-try-first-run)에서 적어둔
버전 세 줄을 넣으세요.

### 되돌릴 것이 있었다면

```
□ 파일이 바뀐 상태로 끊겼나
□ 바뀐 것을 되돌렸나
□ git 을 쓰고 있다면 — 되돌리기가 실제로 되는지 확인했나
```

**마지막 줄을 지금 확인해두세요.** 안전망은 급할 때 처음 써보면 안 됩니다.

---

## 자기 점검

```
□ 중지로 한 번, 프로그램 종료로 한 번 끊어봤다
□ 화면 상태와 실제 상태가 다를 수 있다는 것을 봤다
□ 복구 순서 다섯 줄을 적었다
□ 되돌리기가 실제로 되는지 확인했다
```

---

## 확인

**1. 프로그램이 죽은 뒤 화면의 "진행 중"을 믿으면 안 되는 이유는?**

<details>
<summary>답</summary>

**업무를 붙잡고 있던 것이 프로그램과 함께 사라졌기 때문**입니다. 화면은 마지막에
저장된 상태를 보여줄 뿐이고, 실제로는 아무도 그 일을 하고 있지 않습니다. 로그를
봐야 합니다.
</details>

**2. 중지했을 때 "어디까지 했는지"가 왜 중요합니까?**

<details>
<summary>답</summary>

**안 남으면 복구가 아니라 처음부터 다시가 되기 때문**입니다. 부분 결과가 남아
있으면 거기서 이어가거나 그 부분만 쓸 수 있습니다.
</details>

**3. 되돌리기를 미리 시험해보라는 이유는?**

<details>
<summary>답</summary>

**안전망을 급할 때 처음 써보면 안 되기 때문**입니다. 되돌리기가 실제로 되는지
확인해두지 않으면, 정작 필요한 순간에 그것마저 문제 해결 대상이 됩니다.
</details>

---

화면 사용을 넘어 다른 프로그램과 잇고 싶다면 →
[두 개의 API 표면](/guide/ht-api-surfaces)
