완료 시제 — 함께 나오는 말이 정해져 있다
for·since·over the past 는 현재완료를, by the time 은 완료를 부른다.
완료 시제는 '언제부터 지금까지'를 말한다. 그래서 기간을 나타내는 말과 짝을 이룬다. for + 기간, since + 시점, over/in the past + 기간, so far, recently 가 보이면 현재완료다. 반대로 yesterday·last week·in 2019 처럼 끝난 시점이 있으면 단순 과거를 쓴다. 미래완료(will have p.p.)는 'By the time + 현재시제' 와 짝이다.
시험지에서는 이렇게 나온다
문장 안의 시간 표시를 찾아 시제를 고르게 한다.
빠르게 푸는 법
시간 표시부터 찾는다. since·for → 현재완료 / yesterday·ago → 과거 / by the time ~ → 미래완료.
이렇게 틀린다
since 가 있는데 과거를 쓰는 것
since 는 그 시점부터 지금까지 이어진다는 뜻이라 현재완료를 부른다. 단, since 가 '~때문에' 라는 접속사로 쓰이면 이 규칙은 해당 없다.
예문
Delmar has supplied fabric to retailers for twenty years.
Delmar supplied fabric to retailers for twenty years.
for + 기간은 지금까지 이어진다는 뜻이라 현재완료다.
By the time the auditors arrive, we will have compiled the files.
By the time + 현재시제(미래 의미) → 주절은 미래완료.
확인 문제
넣어 두면 오늘 · 1일 · 3일 · 7일 · 14일 · 30일 간격으로 다시 물어봅니다