잊다 = 1) forget (something slips one's mind), 2) forget intentionally (erase from one's memory).
잊어버리다 = same as 잊다, but emphasizes doing it for good. (-아/어 버리다 = do completely, once and for all).
까먹다 = forget (#1 sense above). Colloquial and slangy expression.
깜빡하다 = forget, as in the mind going blank momentarily (#1 sense). Colloquial expression.
잊다 and 잊어버리다 are the proper, recommended words, but people as (more?) often use 까먹다 and 깜빡하다 in everyday situation, although these can't be used in the serious sense of erasing a painful memory.
e.g.
- 문을 잠그고 나오는 걸 깝빡했다 / 깜빡 잊었다. (I forgot to lock the door.)
- 오늘 숙제 까먹지 말아라. (Don't forget today's homework.)
- 슬픈 일은 일찍 잊는 [or 잊어버리는] 게 좋아. (It is best to forget sad things as soon as possible.)