have has had의 차이: 주어와 시제로 바로 구분하는 법
have, has, had는 모두 ‘가지다’라는 기본 뜻에서 출발하지만, 문장에서 고르는 기준은 뜻보다 먼저 주어와 시제입니다. 이 두 가지만 순서대로 확인하면 짧은 문장부터 완료시제까지 흔들리지 않고 선택할 수 있습니다.

1. have, has, had는 무엇이 다른가
세 단어는 동사 have의 형태입니다. 가장 기본적인 뜻은 ‘가지고 있다’이지만, 실제 문장에서는 소유뿐 아니라 관계, 경험, 식사, 일정, 상태를 말할 때 넓게 쓰입니다. I have a pen은 펜을 가지고 있다는 뜻이고, We have two meetings today는 오늘 회의가 두 개 있다는 뜻입니다. She has a cold는 감기에 걸려 있다는 상태를 말합니다. 따라서 한국어 뜻만 보고 ‘가지다’로 외우면 문장에 따라 낯설어질 수 있습니다. 먼저 have 계열이 ‘무언가를 지니거나 겪는 상태’를 나타낼 수 있다고 이해해 두면 좋습니다.
형태를 고르는 규칙은 단순합니다. 현재의 사실·습관·상태를 말할 때는 have 또는 has를 사용하며, 주어가 3인칭 단수이면 has, 그 밖의 현재형 주어이면 have입니다. 이미 끝난 과거의 상태나 사건이면 had를 씁니다. 이 규칙은 의미가 소유인지 경험인지에 따라 바뀌지 않습니다. He has a bike와 He had a bike last year는 같은 사람이 자전거를 가진다는 내용이지만, 현재인지 과거인지에 따라 동사가 달라집니다.
have는 본동사로도, 완료시제를 만드는 조동사 역할로도 사용됩니다. 본동사일 때는 뒤에 명사나 목적어가 오는 경우가 많고, 완료시제에서는 have·has·had 뒤에 과거분사가 옵니다. 예를 들어 I have lunch에서 have는 ‘먹다/하다’라는 본동사이지만, I have finished lunch에서는 have finished가 ‘끝냈다’라는 현재완료 구조입니다. 같은 철자라도 문장 뒤에 무엇이 오는지 보면 역할을 구분할 수 있습니다.
2. 현재형에서는 have와 has를 주어로 나눈다
현재형 선택의 기준은 주어입니다. I, you, we, they 그리고 복수 명사는 have와 함께 씁니다. I have enough time. You have a good idea. My friends have a plan. 반대로 he, she, it 그리고 단수 명사는 has와 함께 씁니다. She has a new phone. My brother has a dog. The store has a parking lot. 사람 이름 한 명, 사물 하나, 셀 수 없는 단일 대상을 받는 명사도 보통 단수 취급이므로 has가 됩니다.
주어가 길어 보여도 핵심 명사를 찾으면 쉽습니다. The list of items has five pages에서 주어의 중심은 list 하나이므로 has입니다. 반면 The items on the list have different prices에서는 중심이 items 복수이므로 have입니다. of 뒤에 있는 단어를 보고 동사를 정하는 실수를 자주 하므로, 주어 덩어리에서 ‘누가/무엇이’라는 질문에 직접 답하는 명사를 표시해 보세요. 영문 기사나 안내문에서는 긴 수식어가 많아도 이 원칙이 그대로 적용됩니다.

there is/are처럼 문장 앞에 다른 말이 와도 실제 주어를 살펴야 하는 경우가 있습니다. 다만 일상적으로는 I have, you have, we have, they have와 he has, she has, it has의 묶음을 소리 내어 익히는 편이 빠릅니다. 특히 ‘You has’나 ‘She have’처럼 주어와 동사가 맞지 않는 오류를 줄이려면, 3인칭 단수 현재만 has라는 예외를 하나의 묶음으로 기억하면 됩니다.
3. 과거에는 모든 주어와 had를 쓴다
had는 have의 과거형입니다. 과거 문장에서는 I had, you had, she had, they had처럼 주어가 바뀌어도 형태가 같습니다. I had a bicycle when I was ten. She had a busy day yesterday. We had dinner at seven. 현재형의 have/has 구분을 하다가 과거에도 has를 쓰는 실수가 생길 수 있지만, yesterday, last year, when I was a child처럼 과거를 알리는 말이 있으면 had를 먼저 떠올리면 됩니다.
had는 단순히 ‘소유했다’만 뜻하지 않습니다. have breakfast는 아침을 먹다, have a meeting은 회의가 있다, have trouble은 어려움을 겪다라는 뜻이 되므로 과거에는 had breakfast, had a meeting, had trouble로 바뀝니다. 예컨대 We had a meeting on Monday는 월요일에 회의가 있었다는 말입니다. 단어마다 한국어 번역을 새로 외우기보다, have가 들어간 자주 쓰는 묶음 자체를 익히면 시제를 바꿀 때도 자연스럽습니다.

과거완료에서는 had가 다시 조동사 역할을 합니다. By the time I arrived, she had left에서 had left는 ‘내가 도착하기 전에 이미 떠났다’는 뜻입니다. 이때 had는 모든 주어에 동일하게 쓰이고, 뒤에 leave의 과거분사 left가 옵니다. 단순과거 She left와 과거완료 She had left의 차이는 ‘과거의 기준 시점보다 더 앞섰는가’에 있습니다.
4. 완료시제에서는 have·has·had 뒤에 과거분사가 온다
완료시제의 have 계열은 ‘가지다’라는 본뜻보다 시간 관계를 보여 주는 문법 장치에 가깝습니다. 현재완료는 have 또는 has + 과거분사입니다. I have visited Busan. She has finished her homework. 과거에 일어난 일이 현재와 연결되거나, 지금까지의 경험·완료·계속을 말할 때 사용합니다. 현재완료에서도 주어 규칙은 같습니다. I·you·we·they에는 have, he·she·it에는 has입니다.
과거완료는 had + 과거분사입니다. They had already eaten before the movie started. 영화가 시작되기 전에 이미 먹었다는 뜻으로, 두 과거 사건 중 더 먼저 일어난 일을 표시합니다. 완료시제에서 가장 중요한 점은 have/has/had 뒤에 동사의 원형이 아니라 과거분사가 온다는 것입니다. I have go는 틀리고 I have gone이 맞습니다. She has wrote도 틀리고 She has written이 맞습니다. 불규칙 과거분사는 별도로 익혀야 하지만, 구조 자체는 늘 같습니다.
현재완료를 무조건 ‘~했다’로 번역하면 단순과거와 구분이 흐려질 수 있습니다. I have lived here for five years는 지금도 여기 살고 있다는 계속의 의미가 강하고, I lived here for five years는 과거의 기간을 말하는 경우가 많습니다. 문장에 for, since, already, yet, ever, never 같은 신호가 보이면 완료시제를 점검하되, 실제 의미와 문맥을 함께 확인하세요.
5. 의문문과 부정문에서는 do·does·did를 구분한다
have를 본동사로 쓰는 일반적인 미국식 영어에서는 현재 의문문과 부정문에 do/does를 자주 사용합니다. Do you have a car? Does she have a car? 여기서 does가 이미 3인칭 단수 표시를 하므로 뒤의 have는 원형입니다. Does she has a car?라고 쓰지 않는 이유가 바로 이것입니다. 부정문도 I do not have, She does not have처럼 만들며, 회화에서는 don’t, doesn’t를 많이 씁니다.
과거에는 did를 씁니다. Did they have a reservation? We did not have enough time. did 뒤에도 have 원형을 사용하므로 Did she had는 틀립니다. 이미 did가 과거를 표시했기 때문입니다. 한 문장에 시제 표시를 두 번 넣지 않는다는 감각을 가지면 오류를 줄일 수 있습니다. 다만 영국식 영어에서는 Have you got...? 같은 표현도 흔하므로, 본동사 have의 의문문과 완료시제 have를 문장 전체로 구분해 읽는 습관이 필요합니다.
6. have has had에서 자주 틀리는 지점
첫째, 현재형 has를 복수 주어와 함께 쓰는 오류입니다. My parents has는 틀리고 My parents have가 맞습니다. 둘째, does 뒤에 has를 쓰는 오류입니다. Does he have time?처럼 does가 인칭을 담당합니다. 셋째, did 뒤에 had를 쓰는 오류입니다. Did you have fun?이 맞고 Did you had fun?은 맞지 않습니다. 넷째, 현재완료 뒤에 과거형을 쓰는 오류입니다. I have went가 아니라 I have gone입니다. 과거형과 과거분사는 같은 단어도 있지만, go-went-gone처럼 다른 동사는 반드시 구분해야 합니다.
또 하나는 시간 표현을 놓치는 일입니다. every day, usually, now는 현재형을 떠올리게 하고 yesterday, last month, in 2020은 과거형 had를 떠올리게 합니다. since 2020, for three years, already, yet는 완료시제 가능성을 알리는 단서가 됩니다. 하지만 단어 하나만 보고 기계적으로 고르지 말고, 문장이 지금과 연결되는지 또는 두 과거 사건의 순서를 비교하는지까지 읽어 보세요. 문법은 표지어와 의미를 함께 볼 때 가장 정확해집니다.
7. 문장을 쓰기 전 10초 점검표
첫 단계는 시제입니다. 지금의 사실·습관·상태를 말하면 have 또는 has, 과거의 일이라면 had를 후보로 둡니다. 두 번째는 현재형일 때만 주어를 확인하는 것입니다. he, she, it 또는 단수 명사라면 has이고, I, you, we, they 또는 복수 명사라면 have입니다. 세 번째는 뒤에 오는 말을 확인합니다. 명사나 목적어가 오면 본동사일 가능성이 높고, 과거분사가 오면 완료시제 구조인지 살펴봅니다.
마지막으로 의문문·부정문이면 do, does, did가 앞에 있는지 확인하세요. do/does/did 뒤에는 have 원형이 옵니다. 이 네 단계만 반복해도 have has had의 대부분의 문제를 풀 수 있습니다. 예문을 외울 때는 I have, She has, We had, Does he have?, Have you finished?, They had left처럼 서로 다른 구조를 한 묶음으로 적어 보세요. 규칙을 아는 것에서 끝내지 않고 직접 짧은 문장을 만들면 선택 속도와 정확도가 함께 올라갑니다.
8. have has had를 내 것으로 만드는 연습법
규칙을 읽은 뒤에는 빈칸 문제만 반복하기보다 같은 내용을 세 시제로 바꾸어 보는 연습이 효과적입니다. 먼저 I have a plan처럼 현재의 문장을 하나 고릅니다. 다음으로 주어를 She로 바꾸어 She has a plan이라고 고쳐 봅니다. 마지막으로 시간을 과거로 옮겨 She had a plan yesterday라고 씁니다. 한 문장의 의미를 크게 바꾸지 않은 채 주어와 시간만 조정하면, have·has·had가 왜 달라지는지 눈으로 비교할 수 있습니다. 이때 plan, a car, breakfast, a problem, enough time처럼 익숙한 명사를 사용하면 문법 선택에 집중하기 좋습니다.
완료시제도 같은 방식으로 확장할 수 있습니다. I have finished the report, She has finished the report, They had finished the report before noon을 나란히 적어 보세요. 첫째와 둘째는 현재완료라서 지금과 연결되는 완료를 나타내고, 셋째는 정오라는 과거 기준점보다 더 앞선 완료를 나타냅니다. 뒤에 finished라는 과거분사가 공통으로 온다는 점도 함께 확인할 수 있습니다. 동사마다 과거형과 과거분사가 다를 수 있으므로 write-wrote-written, see-saw-seen, go-went-gone처럼 자주 쓰는 세 형태를 짧은 표로 정리해 두면 도움이 됩니다.
말하기 연습에서는 ‘주어, 시간, 뒤 형태’ 순서로 잠깐 멈추는 습관을 만드세요. 예를 들어 친구를 소개하며 ‘그녀는 시간이 있니?’를 말하려면 주어 she, 현재, 의문문이라는 정보를 먼저 잡고 Does she have time?을 만듭니다. ‘어제 시간이 있었니?’라면 과거 의문문이므로 Did she have time yesterday?가 됩니다. 조동사 does나 did가 앞에 서면 have가 원형으로 돌아온다는 점을 직접 소리 내어 확인하면, has나 had를 중복으로 넣는 오류가 빠르게 줄어듭니다.
학습 노트에는 틀린 문장만 적기보다 고친 문장과 이유를 한 줄씩 남기세요. 예를 들어 She have a cat 옆에는 ‘현재 3인칭 단수 → has’라고, Did he had lunch? 옆에는 ‘did 뒤 동사 원형 → have’라고 적습니다. 오류의 이유를 주어·시제·문장 구조 중 하나로 이름 붙이면 다음에 비슷한 문장을 만났을 때 스스로 점검할 수 있습니다. 짧고 정확한 문장을 여러 번 만드는 것이 긴 규칙을 한 번 더 읽는 것보다 실전에서는 더 오래 남습니다.
자주 묻는 질문
have와 has는 뜻이 다른가요?
기본 뜻은 같고 현재형에서 주어에 따라 형태만 달라집니다. he, she, it과 단수 명사에는 has를 사용합니다.
had는 언제 쓰나요?
과거의 소유·상태·경험에는 주어와 관계없이 had를 사용합니다. 과거완료에서는 had 뒤에 과거분사가 옵니다.
Does she has가 틀린 이유는 무엇인가요?
does가 이미 3인칭 단수 현재를 표시하므로, 뒤의 본동사는 have 원형이어야 합니다.