They are very similar in meaning and usage.
바라다 is more simple and straight to the point, like wanting or desiring some outcome (there is also 원하다 which is similar).
희망하다 is like hoping to attain or realize something, usually over time and with a bit of forward looking or wishful thinking. 희망 is also commonly used as a noun. Just like "hope" in English, it is considered as one of the most positive and inspiring words.
So you use 바라다 or 원하다 or -고 싶다 (by far the most frequently used one) for simple wishes or desires in daily life. When you write or talk about a long term goal or desire that you wish to realize, you can use 희망 and 희망하다. There is also 꿈 (dream) which is also (probably more) commonly used in the same sense, as in 제게는 꿈이 있어요 (I have a dream).