가정법 과거 과거완료 구별, 시제 하나로 바뀌는 문장의 뜻

가정법 과거 과거완료는 가리키는 시간이 다릅니다

두 형태는 if절과 주절에서 한 단계씩 차이가 납니다. 가정법 과거는 if절에 동사의 과거형을, 주절에 would·could·might와 동사원형을 씁니다. 가정법 과거완료는 if절에 had p.p.(과거분사)를, 주절에 would·could·might have p.p.를 씁니다. be동사는 격식 있는 문장에서 주어가 I나 he여도 were를 쓰고, 격식을 덜 따지는 말에서는 If I was처럼 was를 쓰기도 합니다.

이름에 ‘과거’가 붙어 있어도 가정법 과거가 말하는 시간은 현재나 미래입니다. If I were you, I would wait.(내가 너라면 기다릴 텐데)는 지금 상대에게 건네는 조언이고, If I won the lottery, I would travel the world.(복권에 당첨된다면 세계 여행을 할 텐데)는 앞으로 일어날 가능성이 낮다고 보는 일을 가정합니다. 과거형을 쓰는 이유는 시제를 한 단계 뒤로 옮겨 현실과 거리를 두기 위해서라고 이해하면 됩니다. 동사 형태만 보고 ‘~했다’로 옮기면 뜻이 틀어집니다.

가정법 과거완료는 같은 원리를 한 번 더 적용한 형태입니다. 이미 지나간 일과 반대되는 상황을 말하려고 과거보다 한 단계 더 뒤인 had p.p.를 쓰므로, 해석은 ‘그때 ~했다면 ~했을 텐데’가 됩니다.

같은 상황으로 비교한 가정법 과거 해석과 과거완료 해석

가정법 과거 과거완료 같은 상황으로 비교한 가정법 과거 해석과 과거완료 해석

같은 상황을 두 형태로 바꿔 쓰면 시제 하나가 뜻을 어떻게 바꾸는지 보입니다. 아래 표의 두 문장은 모두 시간이 없어 상대를 돕지 못한다는 상황에서 출발하지만, 가정법 과거는 지금의 일을, 가정법 과거완료는 이미 지난 일을 가리킵니다.

비교 기준가정법 과거가정법 과거완료
if절If I had timeIf I had had time
주절I would help youI would have helped you
가리키는 시간현재·미래과거
실제 사실지금 시간이 없다그때 시간이 없었다
해석지금 시간이 있다면 너를 도와줄 텐데그때 시간이 있었다면 너를 도와줬을 텐데

If she knew the answer, she would tell us.(그녀가 답을 안다면 우리에게 말해 줄 텐데)는 지금 그녀가 답을 모른다는 뜻입니다. If she had known the answer, she would have told us.(그녀가 답을 알았다면 우리에게 말해 줬을 텐데)는 그때 몰라서 말해 주지 않았다는 뜻입니다.

해석한 뒤에는 가정을 뒤집어 실제 사실을 한 줄로 적어 보세요. 그 사실이 지금의 일이면 가정법 과거, 이미 지난 일이면 가정법 과거완료로 읽은 것입니다. had had에서 앞의 had는 완료형을 만드는 조동사, 뒤의 had는 have의 과거분사라 오타가 아닙니다.

주절에서 구별하기: would 동사원형과 would have p.p.

if절이 생략되거나 뒤에 놓이면 주절부터 읽게 됩니다. 이때는 조동사 과거형 뒤에 동사원형이 오면 현재·미래 가정, have p.p.가 오면 과거 가정으로 판단합니다.

I would call her, but I don’t have her number.(그녀에게 전화할 텐데 번호가 없어)는 지금의 사정을 말합니다. I would have called you, but my phone died.(너에게 전화했을 텐데 휴대폰이 꺼져 버렸어)는 지난 일을 설명하며, if절 없이도 주절 형태가 시간을 알려 줍니다.

조동사를 바꾸면 의미도 달라집니다. would는 ‘~할 텐데’, could는 ‘~할 수 있을 텐데’, might는 ‘~할지도 모를 텐데’로 옮겨야 원문의 뜻이 그대로 전달됩니다. 뒤에 have p.p.가 오면 각각 ‘~했을 텐데’, ‘~할 수 있었을 텐데’, ‘~했을지도 모를 텐데’가 됩니다.

  • If I lived closer, I could pick you up.(더 가까이 산다면 너를 데리러 갈 수 있을 텐데)
  • If you had asked him, he might have said yes.(그에게 부탁했다면 승낙했을지도 모를 텐데)

다만 would는 Would you open the window?처럼 공손하게 부탁하거나, 과거의 습관이나 과거 시점에서 본 미래를 말할 때도 쓰입니다. 그래서 주절 형태만으로 단정하지 말고, if절이나 but 뒤의 실제 사정처럼 현실과 반대되는 가정이라는 단서가 앞뒤에 있는지 함께 확인하세요.

if절에 had가 보여도 모두 가정법 과거완료는 아닙니다

가정법 과거 과거완료 if절에 had가 보여도 모두 가정법 과거완료는 아닙니다

먼저 had가 ‘가지다’라는 뜻의 본동사 과거형인 경우가 있습니다. If I had a car, I would drive to work.(차가 있다면 차로 출근할 텐데)는 had 뒤에 과거분사가 없고 주절도 would + 동사원형이라 가정법 과거입니다.

주절에 would 같은 조동사가 없다면, 일어났을 수도 있는 일을 조건으로 거는 실제 조건문일 수 있습니다. If he had already left when you called, that explains why he didn’t answer.(네가 전화했을 때 그가 이미 나간 뒤였다면 전화를 안 받은 것도 설명이 되네)는 그가 나갔는지 모르는 상태에서 가능성을 따질 뿐, 사실과 반대되는 상황을 가정하지 않습니다.

if가 없는데 가정법 과거완료인 문장도 있습니다. Had I known, I would have called you.(알았더라면 너에게 전화했을 텐데)는 If I had known에서 if를 빼고 주어와 had의 순서를 바꾼 도치 형태입니다. 부정문은 Hadn’t I known으로 줄이지 않고 Had I not known처럼 not을 주어 뒤에 둡니다. 형태가 헷갈리면 아래 순서로 확인해 보세요.

  1. if절의 had 뒤에 과거분사가 있는지 봅니다. 없으면 had는 본동사입니다.
  2. 주절에 would·could·might가 있는지 봅니다. 없으면 실제 조건문일 수 있습니다.
  3. 주절 조동사 뒤가 동사원형인지 have p.p.인지 확인합니다. if절과 가리키는 시간이 다르면 혼합가정법입니다.
  4. 문장이 Had + 주어로 시작하고 if가 없으면 도치인지 확인합니다.

혼합가정법: if절은 과거, 주절은 지금일 때

혼합가정법은 if절과 주절이 서로 다른 시간을 가리키는 문장입니다. 대표적인 형태는 if절에 had p.p., 주절에 would + 동사원형을 쓰는 구조입니다.

If I had taken the job, I would live in Busan now.(그때 그 일자리를 받아들였다면 지금 부산에 살고 있을 텐데)를 실제 사실로 나누면 ‘그 일자리를 받지 않았다’와 ‘지금 부산에 살지 않는다’가 됩니다. 주절의 now처럼 today, these days 같은 시간 표현은 결과가 현재라는 단서입니다. 과거의 원인과 현재의 결과로 끊어 읽으면 시제가 어긋나 보이는 문장도 자연스럽게 해석됩니다.

반대 방향도 있습니다. If I were more careful, I wouldn’t have made that mistake.(내가 더 꼼꼼한 사람이라면 그 실수를 하지 않았을 텐데)는 if절이 평소 성격처럼 계속되는 상태를 가정합니다. 그때 한 번의 행동만 가정하려면 If I had been more careful이 더 자연스러울 수 있으니, 어느 범위를 말하는지 문맥으로 판단해야 합니다.

주절에 조동사 과거형이 있는 가정 문장이라면, 해석이 막힐 때 if절과 주절 옆에 각각 ‘지금·앞으로’나 ‘그때’를 적어 보세요. 둘 다 ‘지금·앞으로’면 가정법 과거, 둘 다 ‘그때’면 가정법 과거완료, 두 표시가 서로 다르면 혼합가정법입니다.

함께 읽으면 좋은 글