개발 영어 문법

대본집: 장면별 말하기 연습

스탠드업, 장애 채널, 리뷰, 포스트모템에서 내 차례에 할 말

13장 · 부록 · 읽는 시간 약 15분

목차 · 진행 0%

    열두 유닛의 예문을 말하는 장면별 대화로 다시 짰다. 유닛에서는 문법 순서로 읽었지만, 영어를 실제로 꺼내는 순간은 스탠드업에서 내 차례가 왔을 때, 장애 채널에 알릴 때, 리뷰에 답할 때다. 그래서 상대의 말과 내 말이 오가는 2~4턴 대화로 묶었다. 상대 말은 읽기만 하고, 내 말을 연습한다.

    쓰는 법은 이렇다. 대화 블록의 '내 말 가리기'를 켜면 상대 말은 그대로 보이고 내 차례만 가려진다. 상대 말을 읽고 상황 줄을 본 뒤 소리 내어 영어로 말해 보고, 줄을 눌러 확인한다. 줄 옆의 ▶를 누르면 그 문장을 읽어 준다. 줄 끝의 유닛 표시를 누르면 그 문장을 다룬 유닛의 문법으로 돌아간다. 마지막 절의 읽어 두기는 말로 하지 않는 글이라 대화 없이 눈으로만 훑는다.

    스탠드업·팀 채널: 하는 일, 막힌 것, 일정

    끝난 일은 현재완료, 하는 중인 일과 팀과 맞춰 둔 일정은 진행형이다(Unit 2, Unit 3). 브랜치 위는 on, 저장소 안은 in, 하루 중 때는 in the morning이다(Unit 12).

    대화스탠드업: 어제 한 일과 오늘 할 일
    1. 리드어제 끝낸 일을 물을 때Morning. What did you get done yesterday?
    2. 나원인을 찾아냈고 지금은 고치는 중이라고 보고할 때Unit 3I've found the cause. I'm working on the fix.끝난 일은 현재완료, 하는 중인 일은 진행형. 한 보고 안에서 섞여도 자연스러움
    3. 리드언제 나가는지 물을 때Nice. When does it go out?
    4. 나팀과 맞춰 둔 오후 3시 배포를 알릴 때Unit 3I'm deploying at 3 p.m.이미 맞춰 둔 가까운 예정은 will 대신 진행형. 시각은 at
    대화스탠드업: 막힌 것
    1. 리드막힌 것이 있는지 물을 때Anything blocking you?
    2. 나다른 PR의 API 변경이 끝나야 진행할 수 있다고 할 때Unit 3I'm waiting on the API change in #123.wait on: 그 일이 끝나기를 기다린다는 뜻
    3. 리드재촉해 주겠다며 더 있는지 물을 때I'll ping them. Anything else?
    4. 나스테이징 DB 접근 권한이 필요하다고 할 때Unit 3I need access to the staging database.need는 상태 동사라 진행형으로 쓰지 않음
    대화팀 채널: 느린 검색 페이지, 누가 보나
    1. 동료누가 보고 있는지 물을 때Is anyone looking at the slow search page?
    2. 나내가 맡아 원인을 보는 중이라고 할 때Unit 3I'm looking into it.look into: 원인을 조사하다. 아직 끝나지 않았으니 진행형
    3. 동료수정이 어느 브랜치에 있는지 물을 때Thanks. Which branch is the fix on?
    4. 나수정이 핫픽스 브랜치에 있다고 알릴 때Unit 12The fix is on the hotfix branch.브랜치는 선이라 on
    대화팀 채널: 스크립트가 어디 있나
    1. 동료시드 스크립트가 안 보인다고 할 때Where's the seed script? I can't find it on GitHub.
    2. 나저장소에는 있지만 아직 올리지 않았다고 할 때Unit 12It's in the repo, but not on GitHub yet.저장소 안은 in, 서비스 위는 on
    3. 동료오늘 올릴 수 있는지 물을 때Can you push it today?
    4. 나내일 아침에 이어서 하겠다고 할 때Unit 12I'll pick it up in the morning.하루 중 때는 in. pick up: 일을 맡아 손대기 시작하다

    장애 채널: 알리기, 맡기, 되돌리기와 배포 보고

    팀이 같이 쓰는 그 페이지는 the, 사용자 일반은 관사 없는 복수다(Unit 7). 맡는 말은 진행형, 지금 상태 보고는 현재완료와 yet이다(Unit 3, Unit 2). 이번 한 번의 계획은 조건 쪽 현재형, 결과 쪽 will이고(Unit 9), 함수 안은 in, 줄 위는 on, 환경 안은 in이다(Unit 12).

    대화장애 채널: 처음 알리기
    1. 온콜로그인 에러를 보는 사람이 있는지 물을 때Anyone seeing errors on login?
    2. 나로그인 페이지가 죽었다고 알릴 때Unit 7The login page is down.팀이 같이 쓰는 그 페이지라 the
    3. 온콜전체인지 일부인지 물을 때Is it everyone, or just some users?
    4. 나사용자들이 로그인을 못 한다고 알릴 때Unit 7Users can't log in.일반적인 복수라 관사 없음. log in: 계정으로 들어가다
    대화장애 채널: 맡고 원인 짚기
    1. 온콜누가 맡을지 물을 때Who's taking this?
    2. 나내가 맡겠다고 하고 진행 상황을 여기 올리겠다고 할 때Unit 3I'm picking this up. I'll post updates here.pick up: 일을 넘겨받아 맡다. 말하는 순간 정한 일은 will
    3. 온콜어디서 실패하는지 아는지 물을 때Any idea where it's failing?
    4. 나에러가 던져지는 함수와 줄을 짚을 때Unit 12The error is thrown in this function, on line 42.함수 안은 in, 줄 위는 on
    대화장애 채널: 되돌릴지 정하기
    1. 온콜핫픽스가 안 되면 어떻게 할지 물을 때What's the plan if the hotfix doesn't work?
    2. 나이번 배포가 실패하면 되돌리겠다고 예고할 때Unit 9If this fails, we'll roll back.조건 쪽은 현재형, 결과 쪽은 will. roll back: 이전 버전으로 되돌리다
    3. 온콜마이그레이션이 길어지면 어떻게 할지 물을 때And if the migration runs long?
    4. 나10분을 넘기면 배포를 멈추겠다고 할 때Unit 9If the migration takes more than ten minutes, I'll pause the deploy.if 절 안에는 will을 넣지 않음
    대화장애 채널: 배포 보고
    1. 리드배포됐는지 물을 때Unit 2Has it been deployed yet?
    2. 나머지는 됐지만 아직 배포는 안 됐다고 알릴 때Unit 2The fix has been merged but hasn't been deployed yet.지금 상태라 현재완료. yet은 부정문·의문문에
    3. 리드올라가면 알려 달라고 할 때Let me know when it's live.
    4. 나지금 운영에 올라가 있다고 알릴 때Unit 12It's in production now.환경 안은 in. 보낼 때는 deploy to production

    PR 올리기와 리뷰 답장: 부탁, 반영 보고, 머지

    어느 PR인지 뒤의 말이 정해 주면 the가 붙는다(Unit 7). 반영했다고 알릴 때는 결과가 지금 남아 있으니 현재완료, 때를 말하면 과거형이다(Unit 2). feedback은 세지 않고, 세고 싶으면 comments로 바꾼다(Unit 8).

    대화리뷰 부탁
    1. 나오늘 아침 올린 PR을 봐 달라고 부탁할 때Unit 7Can you review the PR I opened this morning?뒤의 I opened this morning이 어느 PR인지 정해 주니 the
    2. 리뷰어리뷰할 준비가 됐는지 물을 때Sure. Is it ready for review?
    3. 나아직 에러 케이스 테스트를 쓰는 중인 초안이라고 할 때Unit 3This is a draft. I'm still adding tests for the error cases.남은 일은 still + 진행형
    4. 리뷰어주요 흐름부터 보겠다고 할 때No problem. I'll start with the main flow.
    대화코멘트 받고 답하기
    1. 리뷰어코멘트를 두 개 남겼다고 알릴 때Unit 8I left two comments on the migration.
    2. 나피드백 고맙다고 할 때Unit 8Thanks for the feedback!feedback은 셀 수 없는 명사라 a도 -s도 없음
    3. 리뷰어구성 환경을 더 알려 달라고 할 때Unit 8Could you share more information about the setup?
    4. 나설정 내용을 PR 설명에 적어 두었다고 할 때Sure. I've added it to the PR description.적어 둔 결과가 지금 남아 있으니 현재완료. 글이 담긴 곳은 in
    대화반영 보고
    1. 리뷰어진행 상황을 물을 때Any update on this?
    2. 나한 시간 전에 푸시했다고 때를 말할 때Unit 2I pushed the fix an hour ago.ago처럼 끝난 때가 붙으면 과거형. 때를 빼면 I've pushed the fix
    3. 리뷰어빈 입력 테스트를 더했는지 물을 때Did you add a test for the empty case?
    4. 나빈 입력 테스트를 더해 두었다고 알릴 때Unit 2I've added a test for the empty case.지금 브랜치에 있으니 현재완료. 처음 꺼내는 테스트 하나라 a
    대화머지
    1. 나코멘트를 다 반영했다고 알리며 다시 봐 달라고 할 때Unit 2I've addressed your comments. Could you take another look?반영한 결과가 지금 남아 있으니 현재완료. 셀 때는 comments
    2. 리뷰어승인하며 머지하라고 할 때Approved. Go ahead and merge.
    3. 나방금 머지했다고 알릴 때Unit 2I've just merged it.just는 현재완료와 같이

    리뷰 코멘트 주고받기: 제안과 질문, 그 답

    꼭 고칠 것은 needs to와 must, 제안은 could와 might want to, 함께 정하자는 말과 의도 확인은 질문이다. 사람이 아니라 코드를 주어로 둔다(Unit 4). feedback의 양은 some으로 말한다(Unit 8).

    대화리뷰어로서: 운 떼고 제안하기
    1. 나리뷰를 시작하며 API 설계에 의견이 있다고 운을 뗄 때Unit 8I have some feedback on the API design.셀 수 없는 명사의 양은 some
    2. 작성자말해 달라고 할 때Sure, go ahead.
    3. 나기존 날짜 유틸을 써도 된다고 가볍게 권할 때Unit 4You could use the existing date util here.could는 가벼운 제안. must는 선택지를 없앰
    4. 작성자몰랐다며 바꾸겠다고 할 때Oh, I didn't know we had one. I'll switch to it.
    대화리뷰어로서: 질문으로 제안하기
    1. 나목록을 메모이즈하지 않은 이유가 있는지, 탓하지 않고 물을 때Unit 4Is there a reason this list isn't memoized?Why did you …?는 사람을 따지는 말로 읽힘. 코드를 주어로
    2. 작성자항목이 적어 건너뛰었다고 답할 때It's only ten items, so I skipped it.
    3. 나훅으로 빼면 좋겠다고 판단을 작성자에게 맡기며 제안할 때Unit 4You might want to extract this into a hook.might want to: 판단을 작성자에게 넘기는 부드러운 제안
    4. 작성자후속 PR에서 하겠다고 할 때Makes sense. I'll do that in a follow-up.
    대화리뷰어로서: 꼭 고칠 것
    1. 나빈 배열 처리가 빠져 반드시 고치라고, 이유와 함께 말할 때Unit 4This needs to handle an empty array. It crashes on an empty cart.머지 전 필수는 needs to·must. 이유를 같이
    2. 작성자잘 잡았다며 고쳐 올렸다고 할 때Good catch. I've pushed a fix.
    3. 나이 경우의 테스트를 하나 더해 달라고 할 때Unit 7Can you add a test for this case?처음 꺼내는 테스트 하나라 a
    4. 작성자같은 커밋에 넣었다고 할 때Done. It's in the same commit.
    대화작성자로서: 답하기
    1. 리뷰어PR을 둘로 나누는 것을 어떻게 생각하는지 물을 때Unit 4What do you think about splitting this into two PRs?
    2. 나좋은 생각이라며 마이그레이션을 별도 PR로 옮기겠다고 할 때Good idea. I'll move the migration to a separate PR.말하는 순간 정한 일은 will. 옮겨 가는 곳은 to
    3. 리뷰어사소한 것으로 빈 줄 하나를 짚을 때Unit 4Nit: extra blank line.
    4. 나고쳤다고 짧게 답할 때Done, thanks!

    버그 알리기와 재현 설명: 처음 알림, 단계, 기대와 실제

    처음 꺼내는 버그에는 a, 다시 가리킬 때는 the가 붙는다(Unit 7). 재현 단계는 명령형, 기대 결과와 실제 결과는 현재형, 조건은 if 절 안까지 현재형이다(Unit 9). 환경과 로그 안은 in이다(Unit 12).

    대화처음 알리기
    1. 나날짜 선택기에서 버그를 하나 찾았다고 처음 알릴 때Unit 7I found a bug in the date picker.처음 꺼내는 버그라 a. 컴포넌트 안은 in
    2. 동료데스크톱에서는 안 보인다며 어디서 나는지 물을 때Where does it happen? I can't see it on desktop.
    3. 나그 버그가 모바일에서만 난다고 이어 말할 때Unit 7The bug only happens on mobile.앞에서 꺼낸 버그를 다시 가리키니 the
    4. 동료재현 단계를 알려 달라고 할 때OK. Can you walk me through the steps?
    대화재현 단계 말로 설명
    1. 동료처음부터 알려 달라고 할 때From the top, please.
    2. 나재현 단계를 순서대로 말할 때Unit 9Open the settings page. Clear the name field.재현 단계는 주어 없이 명령형
    3. 동료그다음에 무슨 일이 나는지 물을 때And then what happens?
    4. 나실제 결과를 말할 때Unit 9The form is submitted with an empty name.재현될 때마다 그렇다면 현재형
    대화기대 결과와 엣지 케이스
    1. 동료원래 어떻게 돼야 하는지 물을 때What should happen instead?
    2. 나기대 결과를 말할 때Unit 9The form shows a validation error.기대 결과는 규칙이라 현재형
    3. 동료처음부터 비어 있을 때는 어떤지 물을 때And when the field is empty from the start?
    4. 나입력이 비어 있으면 제출 버튼이 비활성으로 남는다고 말할 때Unit 9If the input is empty, the submit button stays disabled.if 절 안은 미래라도 현재형
    대화환경과 로그
    1. 동료로컬에서 재현이 안 된다고 할 때I can't reproduce it locally.
    2. 나스테이징 환경에서만 실패한다고 할 때Unit 12It only fails in the staging environment.환경 안은 in
    3. 동료스택 트레이스가 있는지 물을 때Any stack trace?
    4. 나로그에서도 같은 에러가 보인다고 할 때Unit 12I see the same error in the logs.로그 안은 in

    환경 세팅 도와주기: README를 말로 안내

    할 일은 명령형으로, 동사 자리의 set up·back up·sign in은 두 단어, 명사 setup·backup은 한 단어다(Unit 11). 필수는 소문자 must다(Unit 5). 늘 그렇게 동작한다는 설명은 현재형이고, 누가 하는지 중요하면 능동태다(Unit 3, Unit 6).

    대화준비물과 세팅
    1. 새 팀원시작 전에 뭐가 필요한지 물을 때What do I need before I start?
    2. 나Node.js 22 이상이 꼭 있어야 한다고 할 때Unit 5You must have Node.js 22 or later installed.README의 필수는 소문자 must. 대문자 MUST는 명세에서만
    3. 새 팀원그다음을 물을 때Got it. Then what?
    4. 나로컬 환경을 준비하라고 하며 걸리는 시간을 말할 때Unit 11Set up the local environment. The setup script takes about five minutes.동사는 set up 두 단어, 명사는 setup 한 단어
    대화로그인과 브랜치
    1. 새 팀원어느 계정을 쓰는지 물을 때Which account do I use?
    2. 나회사 계정으로 로그인하라고 할 때Unit 11Sign in with your work account.동사 자리는 sign in 두 단어. Login to …는 틀림
    3. 새 팀원어느 브랜치에 있어야 하는지 물을 때And which branch should I be on?
    4. 나릴리스 브랜치로 옮겨 가라고 할 때Unit 11Check out the release branch.동사 check out은 두 단어. 결제 단계는 명사 checkout
    대화DB 초기화 전 백업
    1. 새 팀원DB를 초기화해도 되는지 물을 때Can I reset the database?
    2. 나볼륨부터 백업하라고 할 때Unit 11Back up the volume first.동사는 back up 두 단어. 대명사면 Back it up
    3. 새 팀원복원은 어떻게 하는지 물을 때And how do I restore it?
    4. 나어젯밤 백업에서 복원하라고 할 때Unit 11Restore it from last night's backup.명사 backup은 한 단어
    대화동작 설명
    1. 새 팀원설정 파일을 어디서 읽는지 물을 때Where does the CLI get its config?
    2. 나프로젝트 루트에서 설정 파일을 읽는다고 설명할 때Unit 6The CLI reads the config file from the project root.누가 읽는지 중요하니 능동태. 늘 그런 동작은 현재형
    3. 새 팀원로그아웃 상태면 훅이 뭘 돌려주는지 물을 때And what does the hook return when I'm signed out?
    4. 나훅이 현재 사용자를, 없으면 null을 돌려준다고 설명할 때Unit 3This hook returns the current user, or null if no one is signed in.늘 그런 동작은 현재형. is returning이 아님

    포스트모템 회의: 타임라인과 "~했더라면"

    타임라인과 원인은 때가 붙은 사실이라 과거형이다(Unit 2). 일어나지 않은 과거를 가정하면 If … had …, … would have …, 하지 않아 아쉬운 일은 should have, 사람 대신 시스템과 절차를 주어로 쓴다(Unit 10).

    대화타임라인과 원인
    1. 진행자타임라인부터 시작하자고 할 때Let's start with the timeline. What happened first?
    2. 나14:02에 에러율이 치솟았고 14:10에 되돌렸다고 말할 때Unit 2At 14:02, error rates spiked. At 14:10, we rolled back the deploy.때가 붙은 사실은 과거형. 팀의 조치는 we를 주어로
    3. 진행자근본 원인을 물을 때And the root cause?
    4. 나캐시 키에 로케일이 빠져 있었다고 말할 때Unit 2The cache key didn't include the locale.원인 설명도 과거형
    대화잘된 점과 잘못된 점
    1. 진행자잘된 점을 물을 때What went well?
    2. 나롤백이 5분도 안 걸렸다고 말할 때Unit 10The rollback took less than five minutes.명사 rollback은 한 단어
    3. 진행자잘못된 점을 물을 때What went wrong?
    4. 나임계값이 너무 높아 알림이 울리지 않았다고 말할 때Unit 10The alert didn't fire because the threshold was too high.사람 대신 알림(시스템)을 주어로
    대화~했더라면
    1. 동료테스트가 있었으면 잡혔을지 물을 때Would a test have caught this?
    2. 나빈 필터 테스트가 있었다면 잡았을 것이라고 말할 때Unit 10If we had had a test for the empty filter, it would have caught this bug.if 절은 had + 과거분사, 결과는 would have + 과거분사. had had는 맞는 꼴
    3. 동료알림은 어땠을지 물을 때And the alert?
    4. 나알림이 울렸다면 몇 분 안에 되돌렸을 것이라고 말할 때Unit 10If the alert had fired, we would have rolled back within minutes.if 절에는 would have를 넣지 않음
    대화아쉬운 점과 운이 좋았던 점
    1. 진행자무엇을 다르게 했어야 했는지 물을 때What should we have done differently?
    2. 나큐 크기 알림을 넣었어야 했다고 말할 때Unit 10We should have added an alert for queue size.should have + 과거분사: 하지 않아 아쉬운 일. had to는 실제로 했다는 뜻
    3. 동료운이 좋았던 점이 있는지 물을 때Anything we got lucky on?
    4. 나피크 시간이었다면 훨씬 많은 사용자가 영향을 받았을 것이라고 말할 때Unit 10If it had happened at peak time, far more users would have been affected.결과 쪽 수동태는 would have been + 과거분사

    읽어 두기: 커밋 제목, 명세, 메시지

    말로 하지 않고 쓰기만 하는 글이다. 커밋 제목은 동사 원형으로 시작하는 명령형이고 동사 set up·clean up은 두 단어다(Unit 1, Unit 11). 명세의 대문자 MUST·SHOULD·MAY는 정해진 요구 수준이다(Unit 5). 에러·안내 메시지와 콜백 설명은 대상을 주어로 세운 수동태다(Unit 6). 대화 없이 눈으로 훑고, 필요하면 '영어 가리기'로 떠올려 본다.

    대본커밋 제목
    1. 결제 요청에 재시도를 넣은 커밋의 제목을 쓸 때Unit 1Add retry to the payment request주어도 시제도 없이 동사 원형. Added가 아님
    2. 토큰 갱신의 경쟁 조건을 고친 커밋의 제목을 쓸 때Unit 1Fix race condition in token refreshFixed도 Fixes도 아님. 끝에 마침표 없음
    3. 날짜 포맷 코드를 유틸로 옮기기만 한 커밋의 제목을 쓸 때Unit 1Extract date formatting into a utilUpdate보다 무엇을 했는지 드러나는 동사
    4. 문서 사이트에 CI를 새로 구성한 커밋의 제목을 쓸 때Unit 11Set up CI for the docs site동사 자리라 set up 두 단어
    5. 안 쓰는 기능 플래그를 치운 커밋의 제목을 쓸 때Unit 11Clean up unused feature flags동사 clean up은 두 단어. 명사 cleanup은 목적어 자리에
    대본명세
    1. 수신자가 본문을 처리하기 전에 서명을 반드시 검증해야 한다고 명세에 쓸 때Unit 5Receivers MUST verify the signature before processing the payload.절대 요구는 대문자 MUST
    2. 서버가 에러 응답에 액세스 토큰을 절대 넣으면 안 된다고 쓸 때Unit 5Servers MUST NOT include the access token in error responses.절대 금지는 MUST NOT. SHOULD NOT은 이유가 있으면 해도 된다는 뜻
    3. 클라이언트가 지수 백오프로 재시도하기를 강하게 권고할 때Unit 5Clients SHOULD retry with exponential backoff.SHOULD는 기본으로 따르되 이유가 있으면 벗어날 수 있는 권고
    4. 서버가 응답에 재시도 대기 헤더를 넣어도 되고 안 넣어도 된다고 쓸 때Unit 5Servers MAY include a Retry-After header in the response.MAY는 정말로 선택
    대본에러·안내 메시지와 콜백 설명
    1. 설정 파일이 없을 때 보여 줄 에러 메시지를 쓸 때Unit 6The config file was not found.대상을 주어로 세운 수동태. 줄이면 File not found
    2. 토큰 플래그가 빠졌을 때 보여 줄 에러 메시지를 쓸 때Unit 6The --token flag is required.be + 과거분사. 플래그 이름이 flag를 꾸밈
    3. 지원 중단된 옵션 대신 다른 옵션을 쓰라고 경고할 때Unit 6This option is deprecated. Use --output instead.is deprecated 수동태 뒤에 명령형 안내
    4. 변경 사항이 저장됐다고 안내할 때Unit 6Your changes have been saved.처리된 상태는 have been + 과거분사
    5. 요청이 실패할 때 콜백이 불린다고 문서에 쓸 때Unit 6onError is called when the request fails.콜백은 불리는 쪽이라 is called. when 절 안은 현재형

    『개발 영어 문법』 부록. 대본집: 장면별 말하기 연습 · younggeun0. Claude와 함께 썼습니다. 사실 주장은 공식 문서로, 데모 결과는 실제 브라우저로 확인했습니다.

    보기 옵션