'ㄱ' is a velar stop and can be voiced or voiceless depending on the phonetic context. Put simply, it's a 'k' that turns into a 'g' when it occurs between two vowels.
'ㅋ' is also a velar stop but is more tense, heavily aspirated (i.e., pronounced with a strong breath like making an 'h' sound), and never voiced (i.e., it can't end up sounding like a 'g').