현재완료시제 have + 과거분사: 도대체 어떤 시간을 말하는 걸까? 한 문장으로 확실하게 구분하기
많은 사람들이 I have lived here for three years.(여기에 산 지 3년 되었습니다.)를 처음 보면 말문이 막힙니다. have는 '가지다' 아닌가? 왜 뒤에 동사가 또 나오지? 그리고 도대체 과거를 말하는 걸까, 현재를 말하는 걸까?
막히는 것은 당연합니다. 우리말에는 **현재완료시제(present perfect)**와 완전히 일대일로 대응하는 표현이 없기 때문에 헷갈리는 것이 당연합니다. 그 구조는 **have / has + 과거분사(past participle)**이며, 실제로 표현하고자 하는 것은 매우 특별한 개념입니다: 과거에 일어난 동작이 현재와 관련이 있다는 것입니다. 이번 글에서는 간단한 질문 하나로 단순과거시제와 완전히 구분하는 방법을 소개해 드립니다.
핵심 개념: 한 발은 과거에, 한 발은 현재에
현재완료시제에서 가장 특별한 점은 두 가지 시간을 동시에 연결한다는 것입니다. 동작은 분명 과거에 일어났지만, 말하는 사람이 초점을 맞추는 것은 그것이 현재에 미치는 결과나 영향입니다.
시간선을 상상해 보세요. 왼쪽은 과거이고, 가장 오른쪽은 '현재'라는 시점입니다. 단순과거시제로 말하는 일은 완전히 왼쪽에만 머물러 있어, 말하는 순간 현재와 단절됩니다. 반면 현재완료시제로 말하는 일은 과거에서부터 현재라는 시점까지 쭉 이어져 여전히 영향을 미치고 있습니다.
- I have lived here for three years.(여기에 산 지 3년 되었습니다.)→ 과거에 이사 와서 현재까지 살고 있음
- She has finished her homework.(그녀는 숙제를 끝냈습니다.)→ 과거에 숙제를 끝마쳤고, 그 결과 현재 숙제가 완료된 상태임
이 이미지를 머릿속에 기억해 두면, 앞으로 나올 용법들도 쉽게 이해할 수 있습니다.
용법 1: 인생 경험, "~해 본 적이 있다"
현재완료시제는 지금까지의 인생 전체에 걸친 경험을 말할 때 자주 쓰입니다. 핵심은 '언제 했는지'가 아니라 '그런 경험이 있는지 없는지'입니다.
- I have been to Japan.(일본에 가 본 적이 있습니다.)
- Have you ever eaten durian?(두리안을 먹어 본 적이 있나요?)
- He has never seen snow.(그는 눈을 한 번도 본 적이 없습니다.)
여기서는 ever(~해 본 적이 있는)와 never(결코 ~해 본 적이 없는)가 자주 쓰입니다. have been to는 '어딘가에 가 본 적이 있다(그리고 이미 돌아왔다)'라는 뜻의 관용 표현으로 아주 유용하게 쓰이니 기억해 두세요.
용법 2: 과거의 동작이 현재에 미치는 영향
두 번째 용법은 과거에 일어난 어떤 일이 현재까지 그 결과를 남기고 있는 상태를 말합니다.
- I've lost my keys.(열쇠를 잃어버렸습니다.)→ 속뜻: 지금도 찾지 못한 상태임
- She has broken her arm.(그녀는 팔이 부러졌습니다.)→ 속뜻: 현재 팔에 깁스를 하고 있는 상태임
- They have moved to a new house.(그들은 새 집으로 이사했습니다.)→ 속뜻: 지금 새 집에 살고 있음
이 '속뜻'이 얼마나 중요한지 비교해 보면 쉽게 이해할 수 있습니다. *I've lost my keys.*라고 말하면 "그래서 지금 집에 들어가지 못하고 있다"라는 뜻이 내포되어 있습니다. 하지만 과거시제로 바꾸어 I lost my keys yesterday, but I found them.(어제 열쇠를 잃어버렸지만 다시 찾았습니다.)라고 말한다면, 그것은 단지 과거의 일화일 뿐 현재와는 무관한 일입니다.
신호어: 문장 속 시간의 단서
문장 속에는 종종 신호어들이 숨어 있어서, 이를 보면 현재완료시제를 떠올릴 수 있습니다.
for와 since: "얼마나 지속되었는지"와 "언제부터 시작되었는지"
- for + 기간:I have studied English for five years.(영어를 공부한 지 5년 되었습니다。)
- since + 시작 시점:I have studied English since 2020.(2020년부터 영어를 공부해 오고 있습니다。)
꿀팁:for 뒤에는 '얼마나 긴 시간'(two days, a week)이 오고, since 뒤에는 '어느 시점부터 시작되었는지'(Monday, last year, 2020)가 옵니다.
already / yet / just: 일의 진행 상황
- already(이미/벌써):I have already eaten.(이미 먹었습니다。)
- yet(아직, 부정문과 의문문에 사용):Have you finished yet?(벌써 끝내셨나요?)/ I haven't finished yet.(아직 끝내지 못했습니다。)
- just(방금/막):She has just arrived.(그녀는 방금 도착했습니다。)
핵심 비교: 단순과거시제와 무엇이 다를까?
이번 글에서 가장 중요한 부분입니다. 현재완료시제와 **단순과거시제(past simple)**의 가장 큰 차이점은 다음과 같습니다.
- 단순과거시제:명확한 과거의 특정 시점을 말하며, 이 일은 현재와 관련이 없는 과거의 기록일 뿐입니다.
- 현재완료시제:명확한 시간 시점을 말하지 않으며,핵심은 그것이 현재에 영향을 미친다는 것입니다.
동일한 동작이 시제에 따라 어떻게 바뀌는지 확인해 보세요.
- I lost my keys yesterday.(어제 열쇠를 잃어버렸습니다。)→ yesterday가 있으므로 과거의 그 순간을 말하며, 과거시제를 사용합니다.
- I have lost my keys.(열쇠를 잃어버렸습니다。)→ 시간은 말하지 않고, 핵심은 현재 아직 찾지 못했다는 점이므로 완료시제를 사용합니다.
판단 꿀팁: 먼저 자신에게 물어보세요. 문장 속에 yesterday, last week, in 2020, two days ago처럼 명확한 과거 시간이 들어 있나요?
- 있다 → 단순과거시제 사용
- 없고, 이 일이 현재까지 영향을 미친다 → 현재완료시제 사용
현재완료시제는 한 발을 '현재'에 담그고 있기 때문에, 완전히 과거에 묶여 있는 시간 시점과는 함께 쓸 수 없습니다. 그렇기 때문에 I have seen him yesterday ✗는 성립하지 않습니다. yesterday가 시간을 과거에 고정해 버리기 때문에, '현재와 연결된다'는 완료시제 개념과 서로 충돌하기 때문입니다.
흔히 하는 실수
- 완료시제에 명확한 과거 시간 적용:
I have seen him yesterday✗는 I saw him yesterday. ✓(어제 그를 보았습니다。)로 고쳐야 합니다. yesterday가 있다면 과거시제를 써야 합니다. - 과거분사를 과거시제로 잘못 혼동하는 경우:
I have went to Japan✗는 I have been to Japan. ✓(일본에 가 본 적이 있습니다。)로 고쳐야 합니다. go의 3단 변화는 go-went-gone이고 과거분사는 gone입니다. 과거형인 went와 혼동하지 마세요. '어딘가에 가 보았고 다시 돌아왔다'라고 할 때는 관용적으로 been을 쓰며, '가 버리고 아직 안 돌아왔다'고 할 때 gone을 씁니다. - for와 since를 반대로 쓰는 경우:
I have lived here since three years✗는 I have lived here for three years. ✓(특정 기간에는 for를 씁니다。)로 고쳐야 합니다. - 3인칭 단수일 때 has를 잊어버리는 경우:
She have finished.✗는 She has finished. ✓(he/she/it에는 has를 씁니다。)로 고쳐야 합니다.
한 문장으로 확실하게 구분하기
다음번에 과거시제를 써야 할지 완료시제를 써야 할지 망설여진다면, 마음속으로 이 질문을 던져 보세요.
"문장 속에 명확한 과거 시점이 있는가? 이 일이 현재와 아직 관련이 있는가?"
- 명확한 과거 시간(yesterday, last year 등)이 있고, 단지 과거의 기록일 뿐이다 → 단순과거시제
- 명확한 시간을 말하지 않고, 그 결과나 경험이 현재와 연결된다 → 현재완료시제(have / has + 과거분사)
아직 '현재'에 관한 여러 시제의 차이가 익숙하지 않다면, 〈현재단순시제 vs 현재진행시제〉 글을 먼저 읽어보시길 권해 드립니다. '현재'를 확실히 잡고 난 뒤, '현재로 이어지는' 완료시제로 나아가면 훨씬 수월해질 것입니다.
Loopy에서 연습하는 방법
시제라는 것은 규칙만 외우면 시험이 끝난 뒤 금방 잊어버리기 쉽습니다. 진짜로 기억하는 방법은 실제 문장 속에서 반복해서 마주하는 것입니다. Loopy의 레벨별 코스는 현재완료시제를 A2–B1 수준에 맞춘 실제 대화 상황 속에 녹여내어, 듣기, 말하기, 섀도잉(shadowing)을 통해 원어민이 언제 *I've been to…*를 쓰고 언제 *I went…*를 쓰는지 직접 귀로 듣고 익힐 수 있게 해 줍니다. 또한 for/since, already/yet 같은 신호어들도 예문 속에서 자연스럽게 반복 학습하며 기억 곡선 알고리즘에 따른 복습을 통해, 규칙이 아닌 '직관'으로 체득할 수 있도록 돕습니다.
헷갈리는 과거분사(been, gone, seen, broken…)가 나오면 사전으로 바로 3단 변화를 찾아보고, 발음도 들으며 직접 따라 읽어 보세요. 이렇게 몇 번 연습하다 보면, 굳이 머리로 생각하지 않아도 자연스럽게 어느 시점을 말하는지 알게 될 것입니다.