본문으로 건너뛰기

영어 문법 연습

가정법 if문 연습문제 25문항: 시점을 먼저 정하고 시제를 고르기

영어 조건문은 '그 일이 언제 이야기인가'와 '실제로 일어날 수 있는 일인가'를 동사 형태로 드러냅니다. 일어날 수 있는 조건은 if + 현재형에 주절 will, 지금 사실과 다른 가정은 if + 과거형에 would + 동사원형, 이미 지나간 일을 뒤집는 가정은 if + had p.p.에 would have p.p.를 씁니다. 한국어는 '-(으)면' 하나로 이 셋을 모두 말하기 때문에 영어로 옮길 때 판단을 한 번 더 해야 합니다.

작성자: Raheel Ashraf예상 읽기 시간: 약 14분

무료 연습: 영어 문법 연습문제 | 무료·정답과 해설

가정법 문제는 두 가지를 물으면 풀립니다. 첫째, 조건이 가리키는 시점이 언제인가(지금·앞으로인가, 이미 지난 일인가). 둘째, 그 조건이 실제로 일어날 수 있는 일인가, 사실과 반대인 상상인가. 일어날 수 있는 일이면 시제를 그대로 두고(If it rains, we will cancel), 사실과 반대이면 한 시제 과거로 물립니다(If I had time → 지금 시간이 없음, If I had known → 그때 몰랐음).

한국어에서는 '시간 있으면 도와줄게', '시간 있으면 좋을 텐데', '그때 시간 있었으면 도와줬을 텐데'가 모두 '-(으)면'으로 연결됩니다. 현실인지 상상인지는 '-ㄹ 텐데', '-았으면' 같은 어미와 문맥이 알려 줄 뿐, 조건 자체의 형태는 그대로입니다. 그래서 영어로 쓸 때 가장 단순한 'if + 현재, will'로 자꾸 돌아가게 됩니다. 아래 25문항은 기본 → 중급 → 도전 순서로, if절 형태에서 시작해 혼합가정·도치·숨은 조건까지 다룹니다.

가정법 if문 퀴즈 25문항

문제는 이 페이지의 전체 25문항 중 10문항씩 출제됩니다. 한 회차를 마치면 이어서 풀 수 있고, 모든 문제와 정답은 아래에도 있습니다.

1 / 10

기본 (if절의 형태와 1형·2형)

If it ___ tomorrow, we will cancel the picnic.

전체 문제·정답·해설퀴즈를 마친 뒤 확인하세요.
  1. 1. If it ___ tomorrow, we will cancel the picnic.

    • will rain
    • rains
    • would rain

    정답: rains · 미래 일을 말하더라도 조건을 나타내는 if절에는 현재형을 씁니다. 미래라는 정보는 주절의 will이 이미 전달하고 있기 때문입니다. 한국어로 '내일 비 오면'이라고 생각하면 '내일'이라는 말 때문에 will을 붙이고 싶어지지만, 영어는 미래 표시를 주절에 한 번만 합니다.

  2. 2. In formal written English: If I ___ you, I would apologize first.

    • were
    • was
    • am

    정답: were · 내가 상대방이 될 수는 없으니 사실과 반대인 가정이고, 시제를 과거로 물립니다. 이 표현에서는 주어가 I여도 were를 쓰는 것이 표준입니다. 일상 회화에서는 If I was you도 자주 들리지만, 시험과 격식 있는 글에서는 were를 쓰세요. am은 '내가 실제로 너일 수도 있다'는 뜻이 되어 성립하지 않습니다. 격식 있는 문어체의 표준형을 묻는 문제입니다. 구어체에서는 was도 들을 수 있습니다.

  3. 3. If you heat water to 100°C, it ___.

    • would boil
    • boiled
    • boils

    정답: boils · 언제나 성립하는 사실이나 법칙은 if절과 주절 모두 현재형을 씁니다(흔히 0형 조건문이라고 부릅니다). would boil을 쓰면 '가열한다면 끓을 텐데'라는 상상이 되어 과학적 사실을 말하는 문장이 아니게 됩니다.

  4. 4. If she ___ more free time, she would learn to surf.

    • has
    • had
    • will have

    정답: had · 주절이 would learn이면 '지금은 그렇지 않다'는 가정법 과거입니다. 주절과 짝을 맞추려면 if절도 과거형 had가 되어야 합니다. 형태는 과거지만 뜻은 현재, 즉 '지금 시간이 더 있다면'입니다. 이 점이 가정법 과거라는 이름이 헷갈리는 이유이기도 합니다.

  5. 5. I'll text you as soon as I ___ home.

    • get
    • will get
    • got

    정답: get · if뿐 아니라 when, as soon as, before, after, until 같은 시간 접속사 뒤에서도 미래를 현재형으로 씁니다. '집에 도착하는 대로'를 옮기다 보면 as soon as I will get home이라고 쓰기 쉬운데, 주절에 이미 'll(will)이 있으므로 접속사 뒤는 현재형 get입니다.

  6. 6. If we ___ right now, we would still catch the last ferry.

    • leave
    • had left
    • left

    정답: left · right now가 있으니 지나간 일이 아니라 지금의 선택에 대한 이야기입니다. 주절이 would catch이므로 if절은 과거형 left가 짝입니다. 뜻은 '지금 출발한다면 아직 막배를 탈 수 있을 텐데' 정도로, 말하는 사람이 지금 당장 출발할 가능성을 낮게 보거나 조심스럽게 제안하는 느낌입니다. leave를 쓰려면 주절도 we will still catch가 되어야 하고, had left는 '그때 출발했더라면'이라는 과거 이야기가 됩니다.

  7. 7. If he doesn't hurry, he ___ the last bus.

    • misses
    • would miss
    • will miss

    정답: will miss · 서두르지 않으면 실제로 막차를 놓칠 수 있는 상황이므로 1형 조건문, 주절은 will miss입니다. 한국어 '안 서두르면 막차 놓쳐'는 현재형처럼 끝나서 misses를 고르기 쉽지만, 영어에서 앞으로 일어날 결과는 will로 표시합니다. if절이 현재형(doesn't hurry)이므로 would miss와는 짝이 맞지 않습니다.

  8. 8. If he had studied harder, he ___ last week's exam.

    • would pass
    • would have passed
    • will pass

    정답: would have passed · 시험은 지난주에 이미 끝났고, 열심히 공부하지 않은 것도 과거 사실입니다. 지난 일을 뒤집는 가정이므로 if절 had p.p., 주절 would have p.p.입니다. '공부를 더 했으면 붙었을 텐데'에서 한국어는 '-았-'이 양쪽에 들어가지만, 영어에서는 앞은 had studied, 뒤는 would have passed로 형태가 서로 다릅니다.

  9. 9. I would have helped you if I ___ about the problem.

    • had known
    • knew
    • know

    정답: had known · 주절 would have helped는 '도와줄 수 있었는데 그러지 못했다'는 과거 이야기입니다. 그때 몰랐던 것이 원인이므로 조건도 과거완료 had known입니다. 구어에서는 if I knew로 말하는 사람도 있지만, 글과 시험에서는 had known으로 짝을 맞추세요.

  10. 10. If I ___ the answer, I would tell you, but I honestly have no idea.

    • know
    • knew
    • will know

    정답: knew · 뒤에 '정말 모르겠다'는 말이 붙어 있으니 지금 사실과 반대인 가정, 가정법 과거입니다. '답을 알면 말해 줄 텐데'라는 한국어는 현재형 '알면'이라 know를 고르기 쉽지만, 주절 would tell과 짝을 이루는 것은 과거형 knew입니다.

  11. 11. If I had taken that job in Busan, I ___ in Busan now.

    • would live
    • would have lived
    • will live

    정답: would live · 조건(그때 일자리를 받아들였더라면)은 과거, 결과(지금 부산에 살고 있을 것)는 현재입니다. 두 시점이 다르니 혼합가정입니다. now가 있으므로 would have lived는 맞지 않습니다. 유형을 '3형이면 무조건 would have p.p.'로 외웠다면 이 문제에서 틀리기 쉽습니다.

  12. 12. You won't see any results ___ you cut back on late-night snacks.

    • if
    • unless
    • whether

    정답: unless · unless는 if ... not과 같은 뜻으로, '야식을 줄이지 않으면'에 해당합니다. unless에 이미 부정의 뜻이 있으므로 unless you don't cut back처럼 not을 또 붙이면 안 됩니다. if를 넣으면 '야식을 줄이면 결과가 안 보인다'는 반대 뜻이 됩니다.

  13. 13. I wish I ___ how to drive. Then I could take you to the airport myself.

    • knew
    • had known
    • know

    정답: knew · 지금 운전을 못 해서 아쉬운 것이므로 wish + 과거형입니다. '운전할 줄 알면 좋을 텐데'라는 한국어는 현재형이지만, wish 뒤에서는 지금 사실과 반대인 내용을 과거형으로 씁니다. had known은 '그때 알았더라면'이라는 과거에 대한 후회입니다.

  14. 14. If they had told us about the delay, we ___ yesterday's meeting.

    • would postpone
    • would have postponed
    • will postpone

    정답: would have postponed · 어제 회의는 이미 열렸고, 지연 소식을 듣지 못한 것도 과거입니다. 과거 사실을 뒤집는 가정이므로 would have postponed입니다. '미리 알려 줬으면 회의를 미뤘을 텐데'처럼 한국어로는 자연스럽게 나오지만, 영어로 옮길 때 would postpone으로 시제를 하나 덜 물리는 실수가 흔합니다.

  15. 15. If it ___ raining right now, we would be walking home.

    • didn't
    • weren't
    • wouldn't

    정답: weren't · 지금 비가 오고 있다(It is raining)는 사실을 뒤집는 가정입니다. 진행형 is raining을 가정법 과거로 바꾸면 were(n't) raining이 됩니다. didn't는 -ing 형태와 함께 쓸 수 없고, wouldn't는 if절에 쓰지 않습니다. 구어에서는 it wasn't raining도 쓰지만 선택지 중에서는 weren't가 답입니다.

  16. 16. If you had asked her at the party yesterday, she ___ yes.

    • would have said
    • would say
    • will say

    정답: would have said · 어제 파티에서 물어보지 않은 과거 사실을 뒤집는 가정이므로 would have said입니다. '물어봤으면 좋다고 했을 텐데'의 '했을 텐데'가 한국어로는 과거처럼 느껴지지 않아 would say를 고르는 경우가 많습니다. 결과가 어제 일어났을 일이라면 would have p.p.입니다.

  17. 17. She isn't rich at all, but she spends money as if she ___ a millionaire.

    • were
    • is
    • had been

    정답: were · 앞에서 부자가 아니라고 밝혔으므로 as if 뒤는 사실과 반대인 내용입니다. 돈을 쓰는 것과 같은 시점의 상상이므로 가정법 과거 were입니다. as if she is ...는 실제로 그럴 가능성이 있을 때 쓰므로 이 문맥과 맞지 않고, had been은 '예전에 부자였던 것처럼'이라는 뜻이 됩니다.

  18. 18. ___ it not been for her recommendation, I would never have gotten the job.

    • Were
    • Had
    • Should

    정답: Had · If it had not been for(~가 없었더라면)에서 if를 빼고 had를 앞으로 보낸 도치 구문입니다. 주절이 would never have gotten이므로 과거 이야기이고 Had가 맞습니다. Were it not for는 If it were not for, 즉 지금 상황에 대한 가정에 씁니다.

  19. 19. If I were you, I ___ twice before signing that contract.

    • would think
    • would have thought
    • had thought

    정답: would think · 계약서에 아직 서명하기 전이므로 상대에게 앞으로의 행동을 조언하는 문장입니다. If I were you와 짝을 이루는 주절은 would + 동사원형, would think입니다. would have thought는 이미 서명한 뒤 '나라면 다시 생각했을 거야'라고 지난 일을 돌아볼 때 쓰며, had thought는 주절에 올 수 없습니다.

  20. 20. I'd rather you ___ the report today instead of tomorrow.

    • did
    • would do
    • to do

    정답: did · would rather 뒤에 다른 사람이 주어로 오면, 현재나 미래의 바람이라도 과거형을 씁니다. '오늘 해 줬으면 좋겠어'를 I'd rather you would do로 옮기면 would가 두 번 겹칩니다. 내가 주어일 때는 I'd rather do it today처럼 동사원형을 씁니다.

  21. 21. You could have caught the train if you ___ an hour earlier.

    • had left
    • left
    • would have left

    정답: had left · could have caught은 '탈 수 있었는데 못 탔다'는 과거 이야기이므로 조건도 had left입니다. if절에는 would have를 쓰지 않습니다. 주절에 would 대신 could나 might가 와도 시제를 맞추는 원리는 같습니다.

  22. 22. Without your help last week, I ___ the report on time.

    • couldn't finish
    • couldn't have finished
    • can't have finished

    정답: couldn't have finished · Without your help가 if절 역할을 합니다(= If you hadn't helped me). 도움을 받은 것도, 보고서를 낸 것도 지난주 일이므로 couldn't have finished입니다. 한국어 '네 도움이 없었으면'은 '-면'이 있어 조건문으로 느껴지지만, 영어 without에는 if가 없어 조건문인지 알아차리지 못하는 경우가 많습니다. But for your help도 같은 구조입니다. can't have finished는 '끝냈을 리가 없다'는 추측입니다.

  23. 23. If he ___ call at all, it will probably be after midnight.

    • should
    • will
    • would

    정답: should · If ... should는 '혹시라도 ~하면'이라는 뜻으로, 일어날 가능성이 낮다고 보는 조건에 씁니다. 주절에는 will이나 명령문이 올 수 있습니다. 조건 if절에는 will과 would를 쓰지 않으므로 나머지 두 선택지는 맞지 않습니다. at all은 '연락이 오기라도 한다면'이라는 뉘앙스를 더합니다.

  24. 24. It's late. It's high time we ___ home.

    • go
    • went
    • had gone

    정답: went · It's (high) time + 주어 + 과거형은 '진작 ~했어야 할 때다, 이제 정말 ~할 때다'라는 뜻입니다. 집에 가는 것은 앞으로의 일인데도 과거형 went를 써서 '아직 안 하고 있다'는 뉘앙스를 냅니다. It's time we go는 표준 문법에서 벗어난 형태입니다. 주어 없이 말하려면 It's time to go home이라고 하면 됩니다.

  25. 25. I wish I ___ you the truth last week.

    • had told
    • have told
    • would tell

    정답: had told · last week가 있으므로 지난 일에 대한 후회, wish + 과거완료입니다. wish you would ...는 상대가 앞으로 어떻게 해 주기를 바랄 때(I wish you would stop) 쓰는 형태라 지난 일에는 맞지 않습니다. '지난주에 사실대로 말했으면 좋았을걸'에서 '-았으면'이 had told에 해당합니다.

이 퀴즈를 학급 과제로 내주기

무료이며, 학생은 계정 없이 이용할 수 있습니다.

교사용 활용 팁(영문)

시점과 현실성, 두 가지를 따로 묻기

조건문을 쓸 때마다 '이 조건은 언제 이야기인가', '실제로 일어날 수 있는 일인가'를 따로 물어보세요. 일어날 수 있는 일이면 시제를 바꾸지 않습니다. 사실과 반대인 상상이면 시제를 한 칸 과거로 물립니다. 현재 이야기는 과거형으로, 과거 이야기는 과거완료로 물리는 것입니다. 주절은 그 결과가 언제 일어나는지에 따라 will, would + 동사원형, would have p.p. 중에서 고릅니다.

  • 일반적 사실: If you heat water to 100°C, it boils.
  • 일어날 수 있는 미래(1형): If it rains tomorrow, we will cancel the picnic.
  • 지금 사실과 반대(가정법 과거): If I had more time, I would learn to surf.
  • 과거 사실과 반대(가정법 과거완료): If I had known, I would have called.
  • 과거 조건 + 현재 결과(혼합가정): If I had taken that job, I would live in Busan now.

주절의 형태가 힌트가 됩니다. will이면 실제 조건, would + 동사원형이면 지금과 다른 상상, would have p.p.면 지난 일에 대한 가정입니다. 다만 혼합가정처럼 조건과 결과의 시점이 다를 때는 두 절을 각각 판단해야 합니다.

if절에 will을 쓰지 않는 이유와 두 가지 예외

영어는 조건이나 시간을 나타내는 절(if, unless, when, as soon as, before, after) 안에서는 미래를 현재형으로 씁니다. 미래라는 정보는 주절이 맡기 때문입니다. 한국어 '내일 비 오면 취소할 거야'에는 '내일'과 '-ㄹ 거야'가 있을 뿐 조건 부분에는 미래 표시가 없는데, 영어로 옮길 때는 오히려 '내일'에 끌려 If it will rain tomorrow라고 쓰는 경우가 많습니다.

예외는 두 가지입니다. 첫째, will이 미래가 아니라 상대의 의지나 호의를 나타낼 때입니다. If you'll just wait here a moment, I'll tell her you've arrived(잠시 여기서 기다려 주시면 오셨다고 전해 드릴게요)처럼 정중하게 부탁하는 말투에서 볼 수 있습니다. 둘째, if가 조건이 아니라 '~인지'를 뜻할 때입니다. I'm not sure if it will rain의 if는 whether와 같으므로 will을 그대로 씁니다.

-(으)면 하나가 영어에서 셋으로 나뉘는 이유

한국어에서 조건이 현실인지 상상인지는 주로 문장 끝 어미가 알려 줍니다. '시간 있으면 도와줄게'와 '시간 있으면 도와줄 텐데'는 앞부분이 같고 끝만 다릅니다. 영어는 이 차이를 if절의 동사 형태에도 표시합니다(If I have time / If I had time). 그래서 한국어 화자는 주절만 would로 바꾸고 if절은 현재형으로 두는 실수를 자주 합니다. 예를 들어 If I have time, I would help you라고 쓰는 식입니다.

과거 가정에서는 반대 현상이 생깁니다. '알았으면 알려 줬을 텐데'에서 한국어는 양쪽에 '-았-'이 들어가니, 영어에서도 양쪽에 같은 것을 넣고 싶어집니다. 그 결과 If I would have known, I would have told you처럼 would have가 if절에까지 들어갑니다. 원어민 구어에서도 들리는 형태이지만 글과 시험에서는 틀린 것으로 봅니다. if절은 had known, 주절은 would have told입니다.

번역하기 전에 '이 문장 끝이 -ㄹ 텐데, -았을 텐데로 끝나는가?'를 확인해 보세요. 그렇다면 영어 if절도 한 시제 과거로 물려야 합니다.

혼합가정: 공식을 외우면 틀리는 문제

'2형은 would + 동사원형, 3형은 would have p.p.'처럼 유형 번호로 외우면 조건과 결과의 시점이 다를 때 막힙니다. 실제 대화에서는 '그때 그렇게 했더라면 지금은 ~일 텐데'라는 혼합형이 자주 나옵니다. 조건은 과거완료, 결과는 would + 동사원형입니다.

  • If I had taken that job, I would live in Busan now. (그때 그 일을 잡았더라면 지금 부산에 살고 있을 텐데)
  • If she hadn't missed the flight, she would be here by now. (비행기를 안 놓쳤으면 지금쯤 여기 와 있을 텐데)
  • If I knew her number, I would have called her. (번호를 알고 있다면 진작 전화했을 텐데: 지금도 모른다는 뜻의 혼합형)

마지막 예문처럼 '지금도 그렇다'는 조건에 과거 결과를 붙이는 혼합형도 문법적으로 맞습니다. 다만 '그때 번호를 몰라서 전화를 못 했다'는 뜻이라면 If I had known her number가 정확합니다.

글에서 자주 보이는 오류

  • If it will rain, we will stay home. → If it rains, we will stay home.
  • If I would have known, I would have come. → If I had known, I would have come.
  • If I have time, I would help you. → If I had time, I would help you. (또는 If I have time, I will help you.)
  • I wish I can drive. → I wish I could drive.
  • Unless you don't hurry, you'll miss the bus. → Unless you hurry, you'll miss the bus.

계속 연습하기

자주 묻는 질문

한국어 '-(으)면'은 형태가 하나인데 영어는 왜 여러 가지로 나뉘나요?

한국어는 조건이 현실인지 상상인지를 주로 문장 끝(-ㄹ 거야, -ㄹ 텐데, -았을 텐데)에서 나타냅니다. 영어는 if절의 동사 형태에서도 그 차이를 표시합니다. 일어날 수 있는 조건은 if + 현재형, 지금 사실과 반대이면 if + 과거형, 과거 사실과 반대이면 if + had p.p.입니다. 그래서 영어로 쓸 때는 조건 부분부터 '현실인가, 상상인가'를 판단해야 합니다.

혼합가정문은 어떻게 알아보나요?

조건과 결과의 시점이 다르면 혼합가정입니다. '그때 6시에 출발했더라면 지금쯤 도착했을 텐데'는 조건이 과거(If she had left at six), 결과가 현재(she would be here now)입니다. now, by now, still 같은 말이 결과 쪽에 있으면 would + 동사원형을 먼저 의심해 보세요. 유형 번호보다 두 절의 시점을 각각 확인하는 것이 정확합니다.

if절에 will을 쓸 수 있는 경우가 정말 없나요?

있습니다. will이 미래가 아니라 상대의 의지나 호의를 나타낼 때(If you'll wait here, I'll go and check), 그리고 if가 '~인지'라는 뜻일 때(I'm not sure if it will rain)입니다. 그 밖의 조건 if절에서는 미래 일이라도 현재형을 쓴다고 생각하면 됩니다.

영어 학습 플랫폼

PromGee 영어 학습 플랫폼에서 13개 카테고리를 모두 연습하세요. 문제는 내 레벨에 맞춰 출제되고, 모든 답에 해설이 제공되며, 학습 진도는 계정에 저장됩니다.

무료로 내 영어 검사하기
조건문 형태: if + present; if + past; if + past perfect

출처 및 참고 자료

계속 읽기: 더 많은 가이드

무료 도구로 이 주제 연습하기: 무료 영어 시제 퀴즈 (Verb Tenses Quiz)

영어 레벨 확인하기: 무료 영어 레벨 테스트(A1~C2)

영어 앱을 고르고 있다면 AI 영어 퀴즈 생성기 비교

직접 쓴 영어 문장이 맞는지 궁금하다면 무료 영어 문법 검사기로 틀린 부분과 이유를 확인해 보세요.