현재완료와 과거시제가 갈리는 지점
현재완료의 형태는 have 또는 has에 과거분사(p.p.)를 붙인 것입니다. 주어가 3인칭 단수면 has, 나머지는 have를 쓰고, 부정은 haven’t/hasn’t, 의문은 Have you…?처럼 have를 앞으로 보냅니다. 과거분사는 규칙동사면 -ed 형태가 그대로 오지만 go-went-gone, see-saw-seen처럼 불규칙한 동사는 세 번째 형태를 따로 기억해야 합니다.
두 시제를 가르는 기준은 시간의 멀고 가까움이 아닙니다. 말하는 시점과 사건이 연결되어 있다고 보느냐가 판단의 축입니다. 과거시제는 사건을 이미 닫힌 상자에 넣고 그 안을 설명하는 방식이라, 언제 있었던 일인지 밝혀도 문장이 어색해지지 않습니다.
반대로 현재완료는 상자를 아직 닫지 않은 상태입니다. 그 일이 지금의 경험치, 지금의 상황, 지금까지의 기간에 영향을 주고 있다는 뜻이 문장 안에 들어 있습니다. 한국어에는 이 구분이 따로 없어서 둘 다 "했다"로 번역되는 경우가 많고, 그 때문에 선택이 어려워집니다.
같은 상황을 두 시제로 말해 보면

지갑을 잃어버린 상황을 두 시제로 바꿔 보면 차이가 분명해집니다. I lost my wallet.은 "지갑을 잃어버렸다"는 과거의 사건만 전합니다. 지금 찾았는지 못 찾았는지는 이 문장만으로 알 수 없습니다.
I’ve lost my wallet.은 잃어버린 결과가 지금도 유지된다는 뜻입니다. 즉 지금 지갑이 없는 상태라는 정보가 함께 전달됩니다. 그래서 상대방은 "그럼 지금 어떻게 해?"라는 반응을 자연스럽게 이어 갈 수 있습니다.
같은 방식으로 She went to Busan.은 부산에 갔다는 과거 사실이고, She has gone to Busan.은 가서 지금 여기 없다는 뜻입니다. 동사도 같고 상황도 같지만, 현재의 상태를 포함하느냐에 따라 듣는 사람이 얻는 정보가 달라집니다.
경험·완료·계속, 현재완료가 맡는 의미
현재완료가 나타내는 의미는 크게 경험, 완료·결과, 계속으로 나뉩니다. 문장 형태는 같고 함께 쓰인 부사와 문맥이 어느 쪽인지 알려 줍니다. 세 가지를 별개의 문법으로 외우기보다 "지금과 이어진다"는 하나의 성질이 상황에 따라 다르게 드러난다고 보는 편이 정확합니다.
경험을 말할 때 쓰는 ever, never, before
지금까지 살면서 그 일을 해 봤는지 묻고 답할 때 현재완료를 씁니다. Have you ever eaten Vietnamese food?는 "베트남 음식 먹어 본 적 있어?"이고, I’ve never been to Europe.은 지금까지 유럽에 가 본 적이 없다는 뜻입니다. I’ve read this book before.처럼 before를 붙이면 이전에 한 번 겪었다는 경험이 강조됩니다.
여기서 횟수를 덧붙일 수도 있습니다. I’ve watched this movie three times.는 지금까지 누적된 횟수를 말하므로 현재완료가 맞습니다. 반면 어제 세 번 봤다는 식으로 시점을 지정하면 과거시제로 바뀝니다.
변화와 지속을 말할 때 쓰는 since, for
시작점을 말할 때는 since, 기간의 길이를 말할 때는 for를 씁니다. I’ve lived here since 2019.는 2019년부터 지금까지 살고 있다는 뜻이고, I’ve known her for ten years.는 알고 지낸 기간이 10년째라는 의미입니다. 두 문장 모두 지금도 그 상태가 이어진다는 점이 중심입니다.
과거시제로 바꾸면 의미가 달라집니다. I lived here for ten years.는 10년간 살았지만 지금은 아니라는 뉘앙스가 되므로, 지속 여부를 잘못 전달하지 않으려면 시제 선택에 주의해야 합니다.
시간 표현이 시제를 결정하는 방식

문장 안의 시간 표현이 시제를 상당 부분 정해 줍니다. yesterday, two days ago, last week, in 2015, when I was ten처럼 과거의 한 시점을 콕 집는 표현은 과거시제와 결합합니다. I saw him yesterday.는 자연스럽지만 I have seen him yesterday.는 성립하지 않습니다.
반대로 just, already, yet, recently, so far, lately는 현재완료와 잘 어울립니다. I’ve just finished my homework.는 방금 끝나서 지금 끝난 상태라는 뜻이고, Have you eaten yet?은 지금 시점까지의 완료 여부를 묻습니다. never와 ever도 지금까지의 경험을 묻는 표현이라 같은 계열에 속합니다.
today, this week, this month처럼 아직 끝나지 않은 기간은 양쪽에 다 쓰입니다. I’ve had three coffees today.는 오늘이 아직 진행 중이라 지금까지의 누적을 말하고, 하루가 다 지난 뒤 돌아보며 말한다면 과거시제도 가능합니다.
한국어 화자가 자주 틀리는 지점
첫째는 과거 시점 부사와 현재완료를 섞는 경우입니다. 특히 ago가 붙은 문장에서 실수가 잦은데, three days ago처럼 시점이 확정되면 현재완료를 쓸 수 없습니다.
둘째는 have gone to와 have been to의 구분입니다. He has gone to Canada.는 캐나다에 가서 지금 여기 없다는 뜻이고, He has been to Canada.는 다녀온 경험이 있다는 뜻입니다. 경험을 말하려다 gone을 쓰면 화자가 전혀 다른 상황을 전하게 됩니다.
셋째로 알아 둘 것은 이 규칙이 모든 상황에서 똑같이 지켜지지는 않는다는 점입니다. 미국식 구어에서는 Did you eat yet?처럼 현재완료 자리에 과거시제를 쓰는 문장도 쓰이고, 원어민 사이에서도 자연스럽게 통합니다. 다만 시험이나 격식을 갖춘 글에서는 현재완료를 쓰는 쪽이 안전합니다.
시제를 고를 때는 다음을 확인해 보세요.
- 문장에 yesterday, ago, last 같은 확정 과거 시점이 있는가 → 있으면 과거시제
- 그 일의 결과나 상태가 지금도 유지되는가 → 유지되면 현재완료
- 지금까지의 경험이나 기간을 말하는가 → 그렇다면 현재완료
- 동사의 과거분사 형태가 맞는지, have와 has를 주어에 맞게 골랐는지
함께 읽으면 좋은 글
- 영어교육과 진학 전 알아야 할 교육과정과 진로
- 국어 문법과 영어 문법, 공부 방법이 달라야 하는 이유
- 영어 문장 해석이 안 될 때 점검하는 세 가지
- 영문법에서 가장 많이 틀리는 전치사 in on at 차이
- 초등·중학 영문법에서 자주 틀리는 전치사 GRAMMAR 정리
