「by」は期限を表現したいときに用いる前置詞です。
「~までに」と訳すと分かりやすいでしょう。
「until」は動作や状態などの継続を表現したいときに用いる前置詞です。
「~まで」と訳すと分かりやすいでしょう。
「by」の意味
ある特定の時期、時間の期限を表す前置詞です。
「~までに」と訳すことが多いですが、「~より遅くならずに、~を期限として」と言い換えることができます。
まだ完了していない動作、これから行う動作が「by」の前に置かれます。
「until」の意味
ある動作や状態が継続していることを表す前置詞です。
「~まで」「~までは」と訳すことが多いです.
言い換えると、ある動作や状態が特定の時期、タイミングで終了することを意味します。
(「5時まで働きます」=5時になったら「働く」という動作が終了する。)
継続している(していた)動作や状態が「until」の前に置かれます。
「by」と「until」の用例
「by」の用例
・The proposal needs to be prepared by next week. (提案は来週までに用意されている必要があります。)
・Submit your report by 5:00 pm. (5時までにレポートを提出しなさい。)
「until」の用例
・We work until 5:00 pm. (私達は5時まで働きます。)
・I couldn't sleep and stayed up until midnight.(私は眠れなくて夜中まで起きていました。)
「by」と「until」は同じ「~まで」だけど意味が異なります
日本語では同じ「~まで」と訳しますが、この日本語訳に引っ張られると混乱するかと思います。
動作の期限を表したいのか、継続を表したいのか、どちらなのかをはっきりさせると使うべき前置詞がおのずから決まってきます。