Both of them mean "boy" but 소년 is more common in conversational/casual speech. It's basically the same in Japanese, where 男の子 (otokonoko) and 少年 (shounen) both mean boy but 少年 is more common in speech (and anime).
Edit: In reply to Conradd23's comment, they actually both derive from Chinese, at least in part. The hanja for 남자 is 男子 and for 소년 it's 少年. I couldn't find a corresponding hanja for 아이 though so I think that may be a native Korean word.
I like how you included the actual hangul too and not just romanization. Because korean’s one of those languages were the romanization system is so controversial, So imo if it was just romanization I might get a bit confused
I'm so proud of myself for getting everything right like I don't study Korean at uni. Anyway usage of hangul is great, romanization for Korean can be absolutely awful.
Edit: In reply to Conradd23's comment, they actually both derive from Chinese, at least in part. The hanja for 남자 is 男子 and for 소년 it's 少年. I couldn't find a corresponding hanja for 아이 though so I think that may be a native Korean word.
주세요 by itself basically just means give (as in asking someone to give), but the meaning changes when added on to another word.
안녕하세요 vs 안녕 is like hello vs hi, so the shorter version is hi