심하다 = is too much (speaking of a quality, action, speech, etc); goes too far or indulges excessively.
심각하다 = is grave or serious (of a matter); is serious or concerned (of a person).
(심하다 indicates the degree or extent of something, while 심각하다 is about the state or attitude of mind).
- 심한 영양실조 = acute/bad malnutrition.
- 말씀이 너무 심하세요 = Your remark is going too far (= How can you say such a thing to me?).
- 계속되는 가뭄은 심각한 문제이다 = The continuing drought is a serious problem.
- 동생은 결혼 결정을 심각하게 고민하고 있다 = My brother is seriously pondering the marriage decision.