현재완료진행형은 현재완료와 뭐가 다른가요
빈칸 문제에서 (A) has studied (B) has been studying 중 하나를 고르라고 하면서 문장 끝에 for three hours가 붙어 있다면 답은 has been studying입니다. 현재완료진행형은 have/has been + 동사원형-ing 형태로, 과거에 시작된 동작이 지금 이 순간까지 계속 진행 중임을 강조합니다. 반면 현재완료(have/has + p.p.)는 동작이 끝났는지 아닌지가 중요한 완료, 경험, 결과를 나타냅니다. 지금도 계속되고 있다는 느낌을 살리고 싶으면 진행형을, 그 동작이 남긴 결과나 완료 여부가 중요하면 단순 현재완료를 씁니다.
이 문법의 형태
현재완료진행형은 have/has + been + 동사원형-ing 로 만듭니다. 주어가 3인칭 단수면 has been, 그 외에는 have been을 씁니다. 부정문은 haven't been / hasn't been + -ing, 의문문은 Have/Has + 주어 + been + -ing 순서입니다. 예를 들어 I have been waiting, She has been waiting, Has she been waiting? 처럼 형태가 규칙적으로 움직입니다.
왜 been 뒤에 또 -ing가 붙나요
현재완료는 have + p.p.로 이미 한 덩어리인 사건을 다룹니다. 여기에 진행의 느낌, 즉 그 동작이 흐르는 중이라는 느낌을 더하려면 완료형의 뼈대(have + p.p.)에 진행형의 뼈대(be + -ing)를 겹쳐야 합니다. p.p. 자리에 진행형의 be동사를 넣으면 been이 되고, 그 뒤에 본동사가 -ing로 붙습니다. 결국 have been -ing는 완료와 진행을 한 문장 안에 포개놓은 형태입니다.
예문으로 확인하기
I have been learning English for two years.
저는 2년째 영어를 배워오고 있습니다.
It has been raining since this morning.
오늘 아침부터 계속 비가 내리고 있습니다.
They have been waiting for the bus for twenty minutes.
그들은 20분째 버스를 기다리고 있습니다.
I have read this book.
저는 이 책을 읽었습니다(다 읽었다는 완료의 느낌).
I have been reading this book.
저는 이 책을 계속 읽어오고 있습니다(아직 다 안 읽었고 지금도 읽는 중).
She ______ (study) Chinese since last March, and she can already have simple conversations.
그녀는 지난 3월부터 중국어를 공부해오고 있고, 벌써 간단한 대화가 가능합니다. (빈칸: has been studying)
현재완료 vs 현재완료진행형
| 상황 | 현재완료 (have/has + p.p.) | 현재완료진행형 (have/has been + -ing) |
|---|---|---|
| 동작이 끝났는가가 중요할 때 | I have finished my homework. (숙제를 다 끝냈습니다) | 해당 없음 (진행형은 어울리지 않음) |
| 동작이 지금도 이어지고 있음을 강조할 때 | I have lived here for 5 years. (5년째 여기 살고 있습니다, 사실 위주) | I have been living here for 5 years. (5년째 여기서 살아오고 있습니다, 지속감 강조) |
| 결과가 남아 있음을 보여줄 때 | She has cleaned the room. (방을 청소해서 지금 깨끗합니다) | She has been cleaning the room. (청소를 계속하는 중이었고 아직 진행 흔적이 있음) |
단, 상태동사는 진행형으로 잘 안 씁니다
know, like, believe, own처럼 감정이나 상태를 나타내는 동사는 원래 진행형과 잘 어울리지 않습니다. 그래서 '오랫동안 알아왔다'는 뜻은 I have been knowing him이 아니라 I have known him for ten years로 씁니다. 또 문장에 정확한 완료 시점이나 횟수(three times, already)가 강조될 때도 진행형보다 단순 현재완료가 자연스럽습니다. He has visited Japan three times는 되지만, 횟수를 강조하는 문장을 진행형으로 바꾸면 어색해집니다.
자주 보이는 오답 패턴
since와 for가 나오면 무조건 진행형을 써야 한다고 외워서, I have been knowing her since 2020처럼 상태동사에도 진행형을 붙이는 오답이 자주 나옵니다. know는 상태동사라 진행형과 어울리지 않으므로 I have known her since 2020으로 고쳐야 합니다.
또 하나 흔한 오류는 완료형의 have를 빼먹고 been만 살리는 경우입니다. She been studying English 처럼 has가 빠지면 문장 자체가 성립하지 않습니다. have/has는 진행형의 뼈대가 아니라 완료형의 뼈대이므로 절대 생략할 수 없습니다.
마지막으로 for와 since를 뒤바꿔 쓰는 실수도 흔합니다. for 뒤에는 기간(three hours, two years)이, since 뒤에는 특정 시점(2020, last week, this morning)이 와야 합니다.
빈칸 문제에서 판단하는 순서
먼저 동사가 know, like, believe 같은 상태동사인지 확인합니다. 상태동사면 무조건 단순 현재완료입니다. 상태동사가 아니라면 문장에 지금도 계속되고 있다는 신호, 즉 문맥이나 still, right now 같은 단서가 있는지 봅니다. 신호가 있으면 진행형, 완료된 결과나 횟수(already, twice, three times)가 강조되면 단순 현재완료를 고릅니다. for나 since가 있다고 무조건 진행형을 고르지 말고 동사의 성질부터 확인하는 습관을 들이는 것이 중요합니다.
자주 받는 질문
현재완료진행형과 현재진행형은 어떻게 다른가요
현재진행형(am/is/are + -ing)은 지금 이 순간 하고 있는 동작만 보여줍니다. 현재완료진행형(have/has been + -ing)은 그 동작이 언제 시작되어서 지금까지 이어져 왔는지, 즉 과거부터 현재까지의 흐름까지 함께 보여줍니다. I am studying은 '지금 공부하는 중'이고, I have been studying for two hours는 '두 시간째 계속 공부해오고 있다'는 뜻입니다.
현재완료진행형 뒤에 목적어를 써도 되나요
됩니다. have been -ing 뒤에도 일반 동사처럼 목적어를 자연스럽게 쓸 수 있습니다. 예를 들어 I have been reading a novel(저는 소설을 한 권 계속 읽어오고 있습니다)처럼 진행 중인 동작의 대상을 그대로 이어 쓰면 됩니다.

