NestBook / 영어문법

왜 완료진행형과 시제 일치를 알아야 하는가

영어에는 12가지 시제가 있다. 앞선 챕터에서 단순 시제(현재·과거·미래), 진행형, 완료형을 배웠다면, 이번 챕터에서 다루는 완료진행형은 그 마지막 퍼즐 조각이다. 완료진행형은 “과거에 시작한 동작이 지금까지 계속 진행 중”이라는 의미를 정확히 전달할 때 쓰인다.

또한 영어의 시제 일치(Sequence of Tenses) 규칙은 한국어에 없는 개념이라 한국인 학습자가 특히 자주 틀린다. 주절이 과거면 종속절도 과거로 맞춰야 하는 이 규칙을 모르면, 간접화법이나 복문을 쓸 때마다 시제 오류가 발생한다.

이번 챕터를 마치면 영어의 12시제 체계를 완전히 정복하고, 복잡한 문장에서도 시제를 정확히 맞출 수 있게 된다.


1. 완료진행형이란?

완료진행형은 **완료(have + p.p.)**와 **진행(be + V-ing)**을 결합한 시제다. 기본 구조는 다음과 같다.

have + been + V-ing

구성 요소역할
have완료 시제 표시 (시점 연결)have / has / had / will have
beenbe동사의 과거분사 (진행형 연결)항상 been
V-ing현재분사 (동작의 진행)studying, working, running

완료진행형의 핵심 의미는 **“어떤 시점 이전부터 시작된 동작이 그 시점까지 계속 진행 중이다”**라는 것이다. 단순 완료형이 결과·완료·경험에 초점을 둔다면, 완료진행형은 동작의 지속·과정 자체에 초점을 둔다.

💡 완료형 vs 완료진행형 — 초점의 차이
완료형(have + p.p.)은 "결과"에 초점을 맞추고, 완료진행형(have been + V-ing)은 "과정·지속"에 초점을 맞춘다. 같은 상황이라도 말하고 싶은 핵심이 다르면 시제가 달라진다.

• I have read this book. → 이 책을 읽었다. (결과: 다 읽었음)
• I have been reading this book. → 이 책을 (계속) 읽고 있다. (과정: 아직 읽는 중)

2. 현재완료진행형: have/has been + V-ing

2-1. 구조와 기본 용법

구분구조예문
긍정문주어 + have/has been + V-ingShe has been studying English for 3 years. (그녀는 3년째 영어를 공부하고 있다.)
부정문주어 + have/has not been + V-ingI 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.
→ 방을 다 칠했다. (완료)→ 방을 칠하고 있는 중이다. (아직 진행 중)
📌 현재완료 vs 현재완료진행형 — 선택 기준
  • 결과·완료·횟수를 말하고 싶다 → 현재완료 (have + p.p.)
  • 과정·지속·기간을 말하고 싶다 → 현재완료진행형 (have been + V-ing)
  • 상태동사(know, like, believe 등)는 진행형 불가 → 현재완료만 사용
  • live, work, study 등은 두 형태 모두 가능 — 의미 차이가 거의 없는 경우도 많음
⚠️ 상태동사는 완료진행형으로 쓸 수 없다
know, believe, like, love, belong, own, want, need 같은 상태동사는 진행형 자체가 불가능하므로 완료진행형도 쓸 수 없다.

❌ 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-ingHe had been waiting for an hour when she arrived.
부정문주어 + had not been + V-ingThey 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-ingBy next year, I will have been working here for 10 years.
부정문주어 + will not have been + V-ingShe 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.
📌 12시제 — 형태 공식
  • 단순: 동사원형 / 과거형 / 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 → wouldHe says he will come. → He said he would come. (그는 오겠다고 말했다.)
현재 → 과거can → couldShe 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
willwouldwill come → would come
cancouldcan swim → could swim
maymightmay 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 등 조동사의 기본 의미와 용법을 배운다. 시제 체계를 완성한 지금, 조동사까지 익히면 영어 동사의 핵심 뼈대가 완성된다.