완료진행형·시제 일치
왜 완료진행형과 시제 일치를 알아야 하는가
영어에는 12가지 시제가 있다. 앞선 챕터에서 단순 시제(현재·과거·미래), 진행형, 완료형을 배웠다면, 이번 챕터에서 다루는 완료진행형은 그 마지막 퍼즐 조각이다. 완료진행형은 “과거에 시작한 동작이 지금까지 계속 진행 중”이라는 의미를 정확히 전달할 때 쓰인다.
또한 영어의 시제 일치(Sequence of Tenses) 규칙은 한국어에 없는 개념이라 한국인 학습자가 특히 자주 틀린다. 주절이 과거면 종속절도 과거로 맞춰야 하는 이 규칙을 모르면, 간접화법이나 복문을 쓸 때마다 시제 오류가 발생한다.
이번 챕터를 마치면 영어의 12시제 체계를 완전히 정복하고, 복잡한 문장에서도 시제를 정확히 맞출 수 있게 된다.
1. 완료진행형이란?
완료진행형은 **완료(have + p.p.)**와 **진행(be + V-ing)**을 결합한 시제다. 기본 구조는 다음과 같다.
have + been + V-ing
| 구성 요소 | 역할 | 예 |
|---|---|---|
| have | 완료 시제 표시 (시점 연결) | have / has / had / will have |
| been | be동사의 과거분사 (진행형 연결) | 항상 been |
| V-ing | 현재분사 (동작의 진행) | studying, working, running |
완료진행형의 핵심 의미는 **“어떤 시점 이전부터 시작된 동작이 그 시점까지 계속 진행 중이다”**라는 것이다. 단순 완료형이 결과·완료·경험에 초점을 둔다면, 완료진행형은 동작의 지속·과정 자체에 초점을 둔다.
• I have read this book. → 이 책을 읽었다. (결과: 다 읽었음)
• I have been reading this book. → 이 책을 (계속) 읽고 있다. (과정: 아직 읽는 중)
2. 현재완료진행형: have/has been + V-ing
2-1. 구조와 기본 용법
| 구분 | 구조 | 예문 |
|---|---|---|
| 긍정문 | 주어 + have/has been + V-ing | She has been studying English for 3 years. (그녀는 3년째 영어를 공부하고 있다.) |
| 부정문 | 주어 + have/has not been + V-ing | I have not been sleeping well lately. (최근에 잠을 잘 못 자고 있다.) |
| 의문문 | Have/Has + 주어 + been + V-ing? | Have you been waiting long? (오래 기다렸어?) |
현재완료진행형은 과거의 어느 시점에 시작된 동작이 현재까지 계속 진행 중일 때 사용한다. 핵심 키워드는 “지금도 하고 있다” 또는 **“방금까지 하고 있었다”**이다.
2-2. 주요 용법 3가지
① 과거부터 현재까지 계속 진행 중인 동작
가장 대표적인 용법이다. for(~동안)이나 since(~이래로)와 함께 자주 쓰인다.
| 예문 | 해석 |
|---|---|
| I have been learning Korean since 2020. | 나는 2020년부터 한국어를 배우고 있다. |
| It has been raining for three hours. | 3시간째 비가 오고 있다. |
| They have been building the bridge for two years. | 그들은 2년째 다리를 건설하고 있다. |
② 현재 결과의 원인이 되는 계속된 동작
“왜 이런 상태인지”를 설명할 때 쓴다. 동작 자체는 방금 끝났을 수도 있다.
| 예문 | 해석 |
|---|---|
| Your eyes are red. Have you been crying? | 눈이 빨갛다. 울었니? (울어서 눈이 빨간 것) |
| I’m tired because I have been running. | 뛰고 있었기 때문에 피곤하다. |
| The ground is wet. It has been raining. | 땅이 젖어 있다. 비가 왔었다. (비가 와서 젖은 것) |
③ 최근 반복된 동작
최근 기간 동안 반복적으로 일어나고 있는 일을 강조할 때도 쓴다.
| 예문 | 해석 |
|---|---|
| She has been getting up early these days. | 그녀는 요즘 일찍 일어나고 있다. |
| He has been making a lot of mistakes lately. | 그는 최근 실수를 많이 하고 있다. |
2-3. 현재완료 vs 현재완료진행형 비교
이 구분은 시험에도 자주 나오고, 실제 회화에서도 뉘앙스 차이가 크다.
| 현재완료 (have + p.p.) | 현재완료진행형 (have been + V-ing) |
|---|---|
| I have lived in Seoul for 10 years. | I have been living in Seoul for 10 years. |
| → 서울에 10년째 살고 있다. (상태 강조) | → 서울에 10년째 살고 있다. (지속·과정 강조) |
| She has written three reports. | She has been writing reports all day. |
| → 보고서를 세 개 썼다. (완료된 횟수/양) | → 하루 종일 보고서를 쓰고 있다. (진행 과정) |
| I have painted the room. | I have been painting the room. |
| → 방을 다 칠했다. (완료) | → 방을 칠하고 있는 중이다. (아직 진행 중) |
- 결과·완료·횟수를 말하고 싶다 → 현재완료 (have + p.p.)
- 과정·지속·기간을 말하고 싶다 → 현재완료진행형 (have been + V-ing)
- 상태동사(know, like, believe 등)는 진행형 불가 → 현재완료만 사용
- live, work, study 등은 두 형태 모두 가능 — 의미 차이가 거의 없는 경우도 많음
❌ I have been knowing him for 5 years.
✅ I have known him for 5 years. (나는 그를 5년째 알고 있다.)
❌ She has been believing in him.
✅ She has believed in him. (그녀는 그를 믿어 왔다.)
3. 과거완료진행형: had been + V-ing
3-1. 구조
| 구분 | 구조 | 예문 |
|---|---|---|
| 긍정문 | 주어 + had been + V-ing | He had been waiting for an hour when she arrived. |
| 부정문 | 주어 + had not been + V-ing | They had not been expecting the news. |
| 의문문 | Had + 주어 + been + V-ing? | Had it been snowing before you left? |
3-2. 용법
과거완료진행형은 과거의 특정 시점 이전부터 그 시점까지 계속 진행 중이던 동작을 나타낸다. 현재완료진행형의 기준점이 “현재”라면, 과거완료진행형의 기준점은 “과거의 어떤 시점”이다.
| 예문 | 해석 |
|---|---|
| I had been studying for 3 hours when he called. | 그가 전화했을 때, 나는 3시간째 공부하고 있었다. |
| She was tired because she had been running. | 그녀는 계속 뛰고 있었기 때문에 피곤했다. |
| They had been living in Busan before they moved to Seoul. | 서울로 이사하기 전에 그들은 부산에 살고 있었다. |
| It had been raining for days, so the river flooded. | 며칠째 비가 내리고 있었기 때문에, 강이 범람했다. |
과거완료진행형은 과거의 사건에 대한 배경 설명이나 원인을 제공할 때 특히 유용하다.
- 구조: had been + V-ing
- 의미: 과거의 특정 시점까지 계속 진행 중이던 동작
- 자주 함께 쓰는 표현: when, before, by the time, for, since
- 과거의 결과(피곤했다, 젖어 있었다 등)에 대한 원인을 설명할 때 자주 사용
4. 미래완료진행형: will have been + V-ing
4-1. 구조
| 구분 | 구조 | 예문 |
|---|---|---|
| 긍정문 | 주어 + will have been + V-ing | By next year, I will have been working here for 10 years. |
| 부정문 | 주어 + will not have been + V-ing | She won’t have been waiting that long. |
| 의문문 | Will + 주어 + have been + V-ing? | Will you have been living here for 5 years by then? |
4-2. 용법
미래완료진행형은 미래의 특정 시점까지 계속 진행 중일 동작을 나타낸다. 12시제 중 가장 길고 복잡한 형태이지만, 의미는 단순하다.
| 예문 | 해석 |
|---|---|
| By December, she will have been teaching for 20 years. | 12월이면 그녀는 20년째 가르치고 있는 것이 된다. |
| By 6 PM, I will have been studying for 8 hours. | 오후 6시가 되면 나는 8시간째 공부하고 있는 것이 된다. |
| Next month, they will have been dating for 3 years. | 다음 달이면 그들은 사귄 지 3년이 된다. |
미래완료진행형은 일상 회화에서는 많이 쓰이지 않지만, by + 미래 시점 표현과 함께 시험에 자주 출제된다.
5. 12시제 총정리표
영어의 시제 체계를 한눈에 정리하면 다음과 같다. 단순 / 진행 / 완료 / 완료진행 4가지 형태가 현재 / 과거 / 미래 3가지 시간과 결합하여 총 12시제를 이룬다.
| 현재 | 과거 | 미래 | |
|---|---|---|---|
| 단순 | I study. | I studied. | I will study. |
| 진행 | I am studying. | I was studying. | I will be studying. |
| 완료 | I have studied. | I had studied. | I will have studied. |
| 완료진행 | I have been studying. | I had been studying. | I will have been studying. |
- 단순: 동사원형 / 과거형 / will + 동사원형
- 진행: be + V-ing
- 완료: have + p.p.
- 완료진행: have + been + V-ing
- 과거 → have를 had로 / 미래 → 앞에 will 추가
6. 시제 일치 (Sequence of Tenses)
6-1. 시제 일치란?
영어에서 주절의 시제가 과거이면, 종속절(that절 등)의 시제도 과거 방향으로 한 단계 이동시켜야 한다. 이것을 시제 일치 또는 **시제의 일치(Sequence of Tenses)**라고 한다.
한국어에는 이런 규칙이 없기 때문에, 한국인 학습자가 매우 자주 실수하는 영역이다.
| 주절 시제 | 종속절 변화 | 예문 |
|---|---|---|
| 현재 → 과거 | 현재 → 과거 | I think he is busy. → I thought he was busy. (그가 바쁘다고 생각했다.) |
| 현재 → 과거 | 과거 → 과거완료 | I know he went there. → I knew he had gone there. (그가 거기 갔었다는 걸 알았다.) |
| 현재 → 과거 | 현재완료 → 과거완료 | She says she has finished. → She said she had finished. (그녀는 끝냈다고 말했다.) |
| 현재 → 과거 | will → would | He says he will come. → He said he would come. (그는 오겠다고 말했다.) |
| 현재 → 과거 | can → could | She thinks she can do it. → She thought she could do it. (그녀는 할 수 있다고 생각했다.) |
6-2. 시제 일치의 원칙
시제 일치를 한 단계씩 정리하면 다음과 같다.
| 종속절 원래 시제 | 주절이 과거일 때 변화 | 예 |
|---|---|---|
| 현재 (is/am/are) | → 과거 (was/were) | is tired → was tired |
| 현재진행 (is + V-ing) | → 과거진행 (was + V-ing) | is working → was working |
| 과거 (V-ed) | → 과거완료 (had + p.p.) | went → had gone |
| 현재완료 (have + p.p.) | → 과거완료 (had + p.p.) | has finished → had finished |
| will | → would | will come → would come |
| can | → could | can swim → could swim |
| may | → might | may leave → might leave |
6-3. 시제 일치의 예외 — 과거로 바꾸지 않는 경우
다음 세 가지 경우에는 주절이 과거여도 종속절의 시제를 바꾸지 않는다.
① 불변의 진리·과학적 사실
| 예문 | 해석 |
|---|---|
| The teacher said (that) the earth goes around the sun. | 선생님은 지구가 태양 주위를 돈다고 말했다. |
| He learned that water boils at 100°C. | 그는 물이 100°C에서 끓는다는 것을 배웠다. |
② 역사적 사실
| 예문 | 해석 |
|---|---|
| She said (that) the Korean War broke out in 1950. | 그녀는 한국전쟁이 1950년에 발발했다고 말했다. |
| He told me Columbus discovered America in 1492. | 그는 콜럼버스가 1492년에 아메리카를 발견했다고 말했다. |
③ 현재도 유효한 사실·습관
| 예문 | 해석 |
|---|---|
| He said (that) he lives in Seoul. | 그는 서울에 산다고 말했다. (지금도 서울에 살고 있음) |
| She told me she gets up at 6 every day. | 그녀는 매일 6시에 일어난다고 말했다. (지금도 그러함) |
• He said he lives in Seoul. → 지금도 서울에 산다는 뉘앙스
• He said he lived in Seoul. → 그때 서울에 살았다는 뉘앙스 (지금은 모름)
- 주절이 과거이면, 종속절 시제를 한 단계 과거 방향으로 이동
- 현재 → 과거 / 과거 → 과거완료 / will → would / can → could
- 예외 3가지: 불변의 진리, 역사적 사실, 현재도 유효한 사실
- 주절이 현재이면 시제 일치를 신경 쓸 필요 없음
7. 흔한 실수 모음
실수 ① 상태동사를 완료진행형으로 쓰는 경우
| ❌ 틀린 문장 | ✅ 올바른 문장 | 설명 |
|---|---|---|
| I have been knowing her for years. | I have known her for years. | know는 상태동사 — 진행형 불가 |
| She has been wanting a new car. | She has wanted a new car. | want는 상태동사 |
| He has been owning this house since 2010. | He has owned this house since 2010. | own은 상태동사 |
실수 ② for와 since 혼동
| ❌ 틀린 문장 | ✅ 올바른 문장 | 설명 |
|---|---|---|
| I have been studying since 3 hours. | I have been studying for 3 hours. | 기간(~동안) → for |
| She has been working here for 2020. | She has been working here since 2020. | 시점(~이래로) → since |
실수 ③ 시제 일치를 무시하는 경우
| ❌ 틀린 문장 | ✅ 올바른 문장 | 설명 |
|---|---|---|
| He said he is tired. | He said he was tired. | 주절 과거 → 종속절도 과거 |
| She told me she will come. | She told me she would come. | will → would |
| I knew he has gone there. | I knew he had gone there. | 현재완료 → 과거완료 |
실수 ④ 불변의 진리에 시제 일치를 적용하는 경우
| △ 어색한 문장 | ✅ 자연스러운 문장 | 설명 |
|---|---|---|
| He said the sun rose in the east. | He said the sun rises in the east. | 불변의 진리 → 시제 일치 예외 |
실수 ⑤ 현재완료진행형과 과거진행형 혼동
| ❌ 틀린 문장 | ✅ 올바른 문장 | 설명 |
|---|---|---|
| I was waiting for 2 hours. (지금도 기다리는 중인데) | I have been waiting for 2 hours. | 지금까지 계속 → 현재완료진행형 |
- 진행형을 쓰기 전에 상태동사인지 확인하기
- for + 기간(3 hours, 2 years) / since + 시점(2020, Monday) 구분하기
- 주절이 과거일 때, 종속절 시제를 한 단계 과거로 이동했는지 확인
- 불변의 진리·역사적 사실은 시제 일치 예외로 현재형 유지
- "지금까지 계속"이면 현재완료진행형, "과거 한 시점의 진행"이면 과거진행형
다음 챕터 **조동사 ① 기본**에서는 can, may, must, should 등 조동사의 기본 의미와 용법을 배운다. 시제 체계를 완성한 지금, 조동사까지 익히면 영어 동사의 핵심 뼈대가 완성된다.