Another one whose credit goes to my kiddos, who this week asked, "Where did the word Yankee come from?" (We've been reading about the early days of America, you see...)
I didn't have the answer to that one off the top of my head, so I popped over to my beloved www.EtymOnline.com.
According to them, the word was first applied disparagingly to the Dutch. There are a couple guesses as to which Dutch words it imitates, though "John" (Jan, pronounced Yan) is obviously a part of it. It's the "kees" part that we're not entirely sure of. It might be from "Janke," which means "Little John" or it might be "John Cornelius" or "John Cheese." (Naming people John + Food being a typical way to refer to a common bloke at the time.)
Yankee started appearing in the late 1600s, and the New Amsterdam Dutch were quick to turn around and slap the word on their neighboring English colonists in Connecticut. It was a disparaging word for them, and one the British adopted to apply to Americans in general during the time of the Revolution.
Of course, Americans being what we've always been, those Yankees decided they'd take the word and embrace it. They were proud to be Yankees, thank you very much. And was shortened to "Yank" by 1778. The Northern/Southern distinction didn't come about until about 1828.