Completed homework

What would be your recommended way to handle a zip code?
I read online that using INTEGER or NUMERIC is not recommended at all because it really isn't a number, it is a string that happens to be made up of numbers, and because we really don't want to lose the leading zeros. Makes sense. So I made mine TEXT, but that seemed like it would make it too easy to put in something random.  I'm thinking TEXT is okay, and then put restrictions at the front-end level.(?)