함께 배우는 수업 · 영어
현재완료 시제 (have + p.p.)
단순 과거와 달리 과거에 시작된 동작이나 사건이 현재까지 영향을 미칠 때 쓰는 have/has + p.p.의 4대 용법과 과거 시점 부사 결합 불가 원칙을 완벽 정리합니다.
이 수업에서 해 볼 일
- 현재완료와 끝난 과거 시점 표현을 구별한다
먼저 알면 좋은 것: 불규칙 동사의 3단 변화(과거형 vs 과거분사 p.p.) · 단순 과거 시제와 현재 시제의 차이 · 시간을 나타내는 전치사 for와 since의 구분
오늘의 목표
가입 없이 시작할 수 있어요. 설명을 읽고, 함께 연습한 뒤, 처음 보는 문제에서 직접 확인합니다.
1. 단순 과거(점, Point) vs 현재완료(선, Line)의 시간 개념 차이
한국어에는 '과거'와 '현재완료'의 형태적 구별이 없어 둘 다 '~했다'로 번역되곤 합니다. 하지만 영미권 화자의 머릿속에서 단순 과거 시제(Past Simple:V-ed)와 현재완료 시제(Present Perfect: have/has + p.p.)는 완전히 다른 차원의 시간 개념입니다.
- 단순 과거 (V-ed — 끊어진 점, Point): 과거의 특정 시점에 일어나서 과거에 이미 완전히 끝난 사건입니다. 현재와는 아무런 연결 고리가 없으므로 현재 상태를 알 수 없습니다.
- I lost my smartphone yesterday. (나는 어제 스마트폰을 잃어버렸다. 지금 찾았는지 여전히 없는지는 알 수 없음!)
- 현재완료 (have/has + p.p. — 이어진 선, Line): 과거의 어느 시점에 일어난 일이 지금 현재까지 계속 이어지거나 현재 상태에 직접적인 영향을 미치고 있음을 나타냅니다.
- I have lost my smartphone. (과거에 스마트폰을 잃어버려서 지금 현재도 스마트폰이 내 손에 없다!)
현재완료의 기본 문장 변환 규칙 (여기서 have/has는 '가지다'라는 뜻이 없는 시제 조동사입니다!):
- 긍정문: 주어 + have / has (3인칭 단수) + 과거분사(p.p.)
- 부정문: 주어 + have not (haven't) / has not (hasn't) + p.p. (don't have p.p. (X) 절대 금지!)
- 의문문: Have / Has + 주어 + p.p. ~ ? ( Yes, 주어 have/has. / No, 주어 haven't/hasn't.)현재완료(have/has + p.p.)는 이름 그대로 '과거의 일을 끌어안은 현재 시제'입니다. 따라서 시선의 종착점은 언제나 '지금 현재(Now)'에 있습니다!2. 현재완료의 4대 용법(완료·경험·계속·결과)과 짝꿍 부사 비교표
똑같은 have/has + p.p. 형태라도 함께 쓰이는 짝꿍 부사(신호어)에 따라 완료, 경험, 계속, 결과의 4가지 의미로 해석이 나뉩니다.| 4대 용법 | 핵심 해석 공식 | 단골 짝꿍 부사 (신호어) | 대표 예문 및 상세 해설 |
|---|---|---|---|
| 1. 완료 (Completion) | (방금/이미) 막 ~을 끝냈다, 아직 ~못했다 | just (방금), already (이미), yet (아직/벌써 — 부정·의문문) | *I have just finished writing the report.* *Has the train arrived yet?* |
| 2. 경험 (Experience) | (지금까지 살면서) ~해 본 적이 있다/없다 | ever (한 번이라도), never (결코 ~없다), before (전에), once (한 번), twice, ~ times, how often | *Have you ever ridden a camel?* *I have been to Jeju Island three times.* (제주도에 가 본 적이 있다) |
| 3. 계속 (Continuity) | (과거부터 지금까지 줄곧) ~해 오고 있다 | for + 숫자가 있는 기간 (~동안) since + 과거 시작 시점 (~이래로 줄곧) how long (얼마나 오랫동안) | *We have known each other for ten years.* *She has lived in Seoul since 2018 (since she was ten).* |
| 4. 결과 (Result) | (과거에 ~해 버려서) 그 결과 지금 ...한 상태다 | 주로 동사 자체가 힌트: go (have gone to), lose, leave, buy, break | *He has gone to London.* (런던에 가 버려서 지금 여기 없다.) |
3. 시험 출제 1순위: 명백한 과거 시점 부사와의 결합 금지 원칙
내신과 수능 어법에서 현재완료가 출제될 때 90% 이상은 '명백한 과거 시점을 나타내는 부사어(구/절)와 현재완료(have p.p.)를 함께 쓸 수 없다'는 규칙을 묻습니다. 현재완료('have/has p.p.')와 절대 함께 쓸 수 없는 과거 시점 표현 (무조건 단순 과거 시제만 사용!): - yesterday (어제), the day before yesterday (그저께) - ~ ago (two days ago, three years ago — ~전에) (주의: 'before'는 단독으로 '이전에'라는 뜻이어서 현재완료 경험 용법과 함께 쓸 수 있지만, '~ ago'는 현재완료와 절대 불가!) - last ~ (last night, last week, last year — 지난 ~) - in + 과거 연도 (in 1998, in the 19th century) - then / at that time (그때, 그 당시에), just now (방금 전에 — 'just'는 현재완료 가능하지만 'just now'는 과거 시제만!) - when ~ (언제 ~했니? / ~했을 때): 'When'은 특정 과거의 '점(Point)'을 묻거나 가리키므로 현재완료와 함께 쓸 수 없습니다! - When have you met him? (X) When did you meet him? (O) - (단, 'since + 과거 시점(since yesterday, since 2015, since I met him)'처럼 앞에 'since(~이래로 지금까지)'가 붙으면 과거 시점이 '선(Line)의 출발점'으로 바뀌므로 주절에 반드시 현재완료를 써야 합니다!)함정 주의: 'since' 뒤에 오는 절(부사절)에는 '단순 과거 시제(since he moved here)'를 쓰고, 문장의 주절에는 '현재완료 시제(we have been friends)'를 씁니다! 시제 짝꿍을 거꾸로 바꾸지 마세요.예제로 살펴보기
다음 중 어법상 올바른 문장을 고르시오. ① My older brother has graduated from college three years ago. ② When have you bought this wireless keyboard? ③ You have gone to New York twice this year. ④ Mr. Kim has taught science at our school since last March.- ① 'three years ago(3년 전에)'는 명백한 과거 시점 부사구이므로 현재완료(has graduated)와 함께 쓸 수 없으며 단순 과거 'graduated'로 고쳐야 합니다. ② 의문사 'When'은 특정 시점을 묻기 때문에 현재완료와 함께 쓸 수 없습니다('When did you buy ~?'). ③ 2인칭 주어 You에는 '가 버려서 지금 여기 없다'는 뜻의 'have gone to'를 쓸 수 없으며 경험을 나타내는 'have been to'를 써야 합니다. ④ 'since last March(지난 3월 이래로 줄곧)'는 과거 출발점부터 현재까지의 계속을 나타내므로 현재완료 'has taught'와 완벽히 호응합니다. 정답은 ④입니다.
참고 근거와 확인 범위
- British Council · Present perfect ↗
과거 경험·계속과 현재의 관련성
설명·예제·문제 구성 및 오류 수정 책임: 프리런. 위 자료는 표시한 주제를 확인하거나 더 읽기 위한 근거이며, 외부 기관의 공식 수업이나 감수본을 뜻하지 않습니다.
참고 자료 연결 점검: 2026-11-02. 제작 방식·검수 범위와 수정 기록에서 확인 범위를 볼 수 있습니다. 오류는 상단의 의견 보내기 또는 contact@freelearn.io로 알려 주세요.