“Thank you” is one of the first expressions you will encounter no matter what language you pick up and Korean is no difference. In Korean however, there are two different words, 감사하다 and 고맙다, to express this and even advanced learners sometimes don’t know the difference between the two and when to use one or the other.
While 고맙습니다 and 감사합니다 are both used to express “thank you” and can, in most everyday situations, be used interchangeably, there are a lot of cases where one will sound more natural than the other. For example, it’s more normal to use 고마워/고마워요/고맙다 when speaking casually or with friends and that’s mainly because 고맙다 sounds more informal and 감사하다 more formal. In other words, while not grammatically incorrected, 감사해 is almost never used (but can sometimes find its way into lyrics for example) and 감사해요 is rarely used while speaking.
Technically speaking, 감사하다 is Sino-Korean (meaning it comes from hanja) while 고맙다 is a pure Korean word. Generally , you’ll encounter more Sino-Korean words in newspapers and alike while native words are more common in informal speech and especially between friends..
Also, linguistically 감사하다 is a verb (and also an adjective according to the dictionary) while 고맙다 is only an adjective. So when you conjugate them, you might not be able to use 고맙다 sometimes. So 감사하다 can be used in almost every case, while 고맙다 can not.
The only way to intuitively “feel” the difference in nuance between the two is two expose yourself to a lot of Korean. That is, engage in conversations, read books, watch K-Drama etc.
Confused or don’t know which one to use? Remember that 감사합니다 will in almost all cases work!