1. for와 since
for와 since는 어떤 일이 얼마나 오랫동안 일어났는지를 말할 때 사용합니다. 완료형 문장과 가장 많이 쓰이는 전치사가 for와 since 아닌가 싶습니다.
for + 기간 (two hours, six weeks, 등)
l I've been waiting for two hours.
Two hours, a week, a long time, 20 minutes, six months, ages, five days, 50 years, years
l Kelly has been working here for six months. (not since six months)
l I haven't seen Tom for three days.
since + 시작 시점 (8:00, Monday, 1985, 등)
l I've been waiting since 8:00.
8:00, April, lunchtime, Monday, 1977, I arrived, May 12, Christmas, yesterday
l Kelly has been working here since April.
l I haven't seen Tom since Monday.
경우에 따라서 for는 문장 내에서 사용하지 않아도 문제가 되지 않습니다. 그러나 이것은 평서문에 해당하는 이야기이고, 부정문에서는 반드시 사용해야 합니다.
They've been married (for) ten years.
They haven't had a vacation for ten years. (for를 빼면 안됨)
all 은 for 와 함께 사용하지 않습니다. for라는 단어가 가지고 있는 시간에 대한 의미는 "~동안"입니다. 이는 일정 범위의 시간을 한정하는 것인데, all은 이미 시간 범위를 전체로 한정하고 있기 때문에 같이 for와 같이 쓰면 시간 대가 충돌하는 느낌이 듭니다. 그러므로 같이 사용하지 않는 것이 옳다고 봅니다.
I've lived here all my life. (not for all my life)
2. When ...? (+ 단순 과거)와 How long ...? (+ 현재 완료)
여기 when과 how long을 사용하는 의문문들이 있습니다. 모두 시간을 물어보고 있는데, 이 두 가지 형태를 비교해보면 단순 시제와 완료형 시제의 시간 개념을 이해하는데 도움이 될 것이라고 생각합니다.
A: When did it start raining?
B: It started raining an hour ago / at one o'clock.
A: How long has it been raining?
B: It's been raining for an hour / since one o'clock.
A: When did Joe and Carol meet each other?
B: They first met a long time ago / when they were in high school.
A: How long have Joe and Carol known each other?
B: They've known each other for a long time / since they were in high school.
‘When + 단순 과거' 형태의 의문문은 말하는 시점을 꼭꼭 집어냅니다. 과거의 어느 시점이 명확합니다. 반대로 ‘How long + 현재 완료' 형태의 의문문은 "얼마나 사귀었냐?" "오래됐다." "고등학교 때 또는 졸업하고 만났다." 이런 식으로 대충 그 시기, 대충 그 기간이라고 이야기하지 분명히 어느 시점이라고는 말하지 않고 있습니다.
위 예문들은 단순 시제와 완료 시제가 가진 시간 개념의 차이를 잘 보여주고 있습니다.
3. since와 how long의 기타 용법
요건 특별한 설명이 필요 없을 것 같습니다.
It's (= It has) been a long time / two years (etc.) since something happened.
It's been two years since I last saw Joe. (= I haven't seen Joe for two years.)
It's been ages since we went to the movie. (= We haven't gone to the movie for ages.)
의문문은 How long has it been since ...? 의 형식으로 사용합니다.
How long has it been since you saw Joe? (= When did you last see Joe?)
How long has it been since Mrs. Hill died? (= When did Mrs. Hill die?)