I have seen these two terms use interchangeably. What do they represent?
I would thoroughly recommend How Linux Works, from No Starch Press, by Brian Ward. He covers this topic in the early chapters of the book, and offers loads of insight into why things are the way they are.
This Question on the Unix stack exchange site (probably where this question should be directed), and linked by @Jatin, has received answers far greater than what I could compose.
I am assuming by 'terminal' you mean terminal emulators. Virtual Terminals are a concept from the inception of Linux, which originally only supported a command line, but was designed to support multiple concurrent users. These users would essentially be using 'dumb clients' to connect to a central server, which would connect them with a tty. A terminal emulator (keyword emulator) is a graphical application that facilitates a shell from within your current session.
Note that the tty command is not analogous to typical uses of the terms tty and terminal. It simply lets you view the name of the terminal in use.
You may also find these links helpful: