제 기억에 should도 "~ 해야 한다"로 배웠던 것 같습니다. "~ 해야 한다"가 참 많습니다.^^ 그 시절에는 누가 이거 자세히 설명해주는 사람도 없었고 "일단 외워"가 중요했던 시대라서 should가 어떻게 사용되고 어떤 뉘앙스로 의미가 전달되는 지 몰랐었습니다.
기본적으로 should는 "~ 하면 유익한 것 - 옳은 것 - 이니 하는 게 좋다"라는 의미로 사용됩니다. 일단 Should가 나오면 바탕에 "너한테 유익하다. 또는 이건 하면 옳은 일이다."라는 의미상 전제가 깔려 나옵니다. 그래서 주로 충고나 의견을 이야기할 때 많이 등장합니다. 그러므로 must/have to와는 차별화된 표현이라고 할 수 있지요.
1. 기본적 용법
"You should do something"은 "하면 좋거나 옳은 일을 이야기할 때" 사용합니다. should 는 충고나 의견을 말할 때 사용합니다:
You look tired. You should go to bed.
The government should do more to help homeless people.
"Should we invite Susan to the party?" "Yes, I think we should."
should는 I think / I don't think / Do you think ... ?와 함께 자주 사용합니다:
I think the government should do more to help homeless people.
I don't think you should work so hard.
"Do you think I should apply for this job?" "Yes, I think you should."
앞서 이야기한 것처럼 should는 충고 또는 의견을 말할 때 사용하므로 얘들하고 매우 친합니다. 저도 얘들하고 매우 친합니다. 제가 쓰는 e-mail에 제일 많이 나오는 문장이 "I think ..." 입니다.
"You shouldn't do something"은 "그 일은 좋은 일이 아니므로 하지 않는 것이 좋다"라는 의미입니다. 부정의 전제 조건 역시 "좋지 않은 일"입니다:
You shouldn't believe everything you read in the newspapers.
should는 must/have to만큼 강하지 않습니다. "~해야 한다"와 "~하면 좋다"는 다르지요:
You should apologize. (= it would be a good thing to do)
You must apologize. (= you have no alternative)
옳지 않거나 기대하지 않았던 것을 이야기할 때 사용합니다:
The price on this package is wrong. It should be $1.29, not $1.59.
Those boys shouldn't be playing football right now. They should be in school.
should의 전제 조건은 좋은 일 또는 옳은 일을 하라는 것입니다. 그러므로 잘못된 일이나 기대하지 않았던 것에 should를 사용하면 "~했어야 맞다"라는 의미가 나옵니다.
일어나기를 기대했던 일을 말할 때 사용합니다:
She's been studying hard for the exam, so she should pass. (= I expect her to pass)
There are plenty of hotels in this city. It shouldn't be difficult to find a place to stay.(= I don't expect that it will be difficult)
첫 번째 문장을 보면 "그녀는 공부를 열심히 해왔기 때문에 시험에 합격할 것이다"라는 의미의 문장입니다. 공부를 열심히 해왔다라는 전제 조건이 "she should pass"를 "그녀는 시험에 합격해야 한다"가 아닌 "그녀는 시험에 합격할 것이다"로 의미를 살짝 돌려 세웠습니다. 만약에 앞에 공부를 열심히 했다는 전제 조건이 없었다면, 이 문장은 시험에 합격해야 한다는 훈계 내지는 압력으로 받아 들여질 것입니다.
여담입니다만, 문법은 문장 속에 살아 숨쉬고 있을 때 빛을 발합니다. 우리가 should를 "~해야 한다"로 계속 외우고 있다면 이런 문장들 만나면 뭔 소리하는 지 못 알아듣거나 엉뚱하게 이해할 것입니다. 문법 책에서 배운 문법은 대화나 책 속에서 재 탄생해야 합니다. 그래야 내 것이 되지요.^^
2. should have done something
"should have done something"은 "너는 그 일을 하지 않았지만, 하는 게 더 옳았다"라는 의미입니다.
It was a great party last night. You should have come. Why didn't you? (= you didn't come, but it would have been good to come)
I feel sick. I shouldn't have eaten so much chocolate. (= I ate too much chocolate)
I wonder why they're so late. They should have been here an hour ago.
She shouldn't have been listening to our conversation. It was private.
should (do)와 should have (done)의 비교:
You look tired. You should go to bed now.
You went to bed very late last night. You should have gone to bed earlier.
3. ought to
ought to는 should와 혼용할 수 있습니다:
Do you think I ought to apply for this job? (= Do you think I should apply?)
She's been studying hard for the exam, so she ought to pass.
저는 정말 should와 ought to의 차이를 모르겠습니다. 그냥 같다고 생각하고 있습니다.