I would say '배우다' has a braoder meaning compared to '공부하다.'
'배우다' literally means to learn something whereas '공부하다' could mean putting more time and effort in the process of learning i.e. reading books, becoming a student in a certain area, etc.
Usually, the word '공부하다' equals 'to study' in English.
Hope this helps :)