오늘의 영어 표현 2/30 · 단계: 이슈 열기. 예문은 모두 이 글을 위해 지어낸 것입니다. 실제 저장소의 댓글을 옮긴 것이 아니며, 버전과 명령은 예시입니다.
목차
한눈에 보기
| 표현 | Expected behavior / Actual behavior, What did you expect to happen? |
| 뜻 | 기대한 동작 / 실제 동작, 원래 어떻게 되어야 했나요? |
| 쓰는 자리 | 버그 이슈 본문, 이슈 양식, 재현 요청 댓글 |
| 공손함 | 중립. 사실을 나누어 적는 형식이라 감정이 들어가지 않습니다 |
1. 뜻과 뉘앙스
버그 보고에서 메인테이너가 가장 먼저 알고 싶은 것은 두 가지입니다. 실제로 무엇이 일어났는지(actual behavior), 그리고 보고한 사람은 무엇이 일어나야 한다고 생각했는지(expected behavior)입니다. 둘 사이의 차이가 곧 버그의 정의입니다. 기대가 문서와 다르면 버그가 아니라 오해일 수도 있으므로, 기대를 따로 적어 두면 메인테이너가 「이것은 의도된 동작입니다」라고 빨리 답할 수도 있습니다.
Kubernetes 의 버그 보고 양식은 맨 앞 세 칸을 What happened?, What did you expect to happen?, How can we reproduce it (as minimally and precisely as possible)? 으로 둡니다. 많은 저장소가 같은 구조를 씁니다. 양식이 없는 저장소라도 이 세 제목을 그대로 쓰면 읽기 좋은 이슈가 됩니다.
시제에 주의합니다. 실제 동작은 이미 일어난 일이므로 과거형(The pod was evicted)이나 현재형(The controller logs an error)을 씁니다. 기대한 동작은 should 나 expected ... to 를 씁니다(The VM should stay running, I expected the backup to complete).
2. 예문
상황 1: 이슈 본문의 두 칸
What happened: After upgrading to v1.3.0,
virtctl restartreturns immediately, but the VM stays inStopped.What did you expect to happen: The VM should be restarted and reach
Running, as it did on v1.2.x.
이전 버전에서는 어땠는지(as it did on v1.2.x)를 덧붙이면 회귀(regression)라는 사실이 바로 드러납니다.
상황 2: Expected 와 Actual 을 소제목으로 나눌 때
Expected behavior
The scheduled backup completes and a new object appears in the bucket.
Actual behavior
The backup stays in
runningfor more than an hour, and no object is written.
상황 3: 다른 사람의 이슈에 질문할 때
Thanks for the report. Could you clarify what you expected to happen here? The current behavior matches the docs, so I want to make sure I understand the use case.
질문하는 쪽에서도 이 표현을 씁니다. 공격하지 않고 기대를 확인하는 정중한 방법입니다.
3. 비슷한 표현과 차이
- Steps to reproduce. 재현 절차입니다. 기대와 실제 사이에 놓이는 칸이며, 명령을 번호 목록으로 적습니다.
- Observed behavior. actual behavior 와 같은 뜻입니다. 조금 더 격식 있고 관찰한 사실이라는 느낌이 강합니다.
- Desired behavior. 기능 요청(feature request)에서 씁니다. 버그 보고의 expected 는 「원래 그래야 하는 것」이고, desired 는 「앞으로 그랬으면 하는 것」입니다.
4. 한국인이 자주 하는 실수
- It doesn't work. 한 줄 보고는 메인테이너가 같은 질문을 두세 번 되묻게 만듭니다. 무엇이 어떻게 작동하지 않는지 적어야 합니다.
- 고친 문장: The webhook rejects valid manifests with
field is immutable. I expected the update to be accepted because only the label changed.
- 고친 문장: The webhook rejects valid manifests with
- I expected that it will be restarted. 시제가 맞지 않습니다. 과거의 기대이므로 would 를 쓰거나 to 부정사를 씁니다.
- 고친 문장: I expected it to be restarted.
- Expected result is VM is running. 관사와 연결이 빠져 문장이 끊깁니다.
- 고친 문장: The expected result is that the VM is running.
- Please kindly check this bug ASAP. 재촉과 과잉 공손이 섞여 있습니다. 영향이 크다면 영향을 사실로 적습니다.
- 고친 문장: This blocks upgrades for clusters using the default storage class.
5. 한 줄 연습
다음 내용을 이슈의 두 칸으로 나누어 영어로 쓰십시오.
백업 정책을 지웠는데 예약된 백업이 계속 만들어집니다. 정책을 지우면 예약 백업도 멈춰야 한다고 생각했습니다.
모범 답안
What happened: After deleting the backup policy, scheduled backups are still being created.
What did you expect to happen: Deleting the policy should stop the scheduled backups.
are still being created 는 「지금도 계속 만들어지고 있다」는 진행형 수동태입니다. 뒤 문장은 「~해야 한다」는 기대이므로 should 를 씁니다.
티티 한마디. 기대한 것과 실제 일어난 것을 두 줄로 나누기만 해도 버그 보고의 절반은 끝납니다.
참고
- Kubernetes 버그 보고 양식(bug-report.yaml): https://github.com/kubernetes/kubernetes/blob/master/.github/ISSUE_TEMPLATE/bug-report.yaml
- GitHub Docs, 이슈 양식 구성하기: https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository