Applications
There are applications of set theory in essentially every field of mathematics. David Hilbert's belief that set theory could form a rock solid foundation for mathematics has largely been proved to be true by its prevalence in modern math. Any mathematical object can be constructed using sets and thought of as a set. Functions can be defined as sets of ordered pairs or as a way to map one set to another. Shapes and curves in geometry are sets of points. Individual numbers can be defined by sets. Even the algebra in our number system or any other number system is part of a set.
Just about every high school math student has used set theoretic notation likely without even realizing it. The Venn diagrams which one may use in probability or when comparing two or more groups are actually just a handy way to visualize two or more sets with and their intersections (denoted with the \(\cap\) in the axioms above). Additionally, the way that algebra students are taught to denote the domain and range of functions is a form of set notation called interval notation. The domain \((0,2]\cup(4,\infty)\) simply means the set of all the elements of the set of all real numbers real numbers greater than zero and less than or equal to two and the set of all real numbers greater than 4. Sets are also commonly used in computer programming as ways to store and organize data.
Perhaps the most significant application of set theory is that it allows mathematicians to study the structure of math itself. Mathematicians have been trying to have a deeper understanding of what math is and why it is the way it is for hundreds of years, and set theory has become the key to this understanding. Any mathematical statement can be assessed through the lens of the Zermelo-Frankel axioms.
However, just because set theory is so universally applicable does not mean that it is perfect nor does it mean that it is the source of all mathematical knowledge like some of the early set theorists believed it to be. In the early 1930's Austrian mathematician Kurt Gödel used the language of set theory to prove that Zermelo-Frankel set theory was incomplete, meaning that there were true mathematical statements that could not be proven. He further proved that any axiomatic system with basic arithmetic is incomplete showing that, no matter how hard we try, we will never be able to prove everything.
Gödel's incompleteness theorems
Gödel was skeptical of the belief that math was perfect and complete that was prevalent amongst mathematicians in his day. He felt that even with the ZF axioms there must either be some kind of inconsistency or incompleteness. In order to be able to explore this idea Gödel devised a way to translate any string of the mathematical symbols and numbers into a unique natural number--essentially creating a bijection between strings of symbols and numbers and \(\mathbb{N}\). Using this system, he was able to find a self-referential mathematical equation which essentially said, "this statement has no proof".
This kind of statement has two possible resolutions. Either the statement is false and there is a proof for the statement, or it is true and there really is no such proof. If the statement were to be false we would have a paradox similar to Russell's paradox since if the statement has a proof, it must therefore be true. This would imply that the Zermelo-Frankel axioms were inconsistent, just as Russell's Paradox showed that the naive ways to construct sets were inconsistent. If the statement were true however, this implies that the Zermelo-Frankel axioms are indeed consistent, but that there are conjectures that are unprovably true in the ZF axiomatic system. Gödel went on to prove that, even if these unprovably true conjectures were just assumed to be true and axiomatized, there would always be statements and conjectures that could not be proven.
Once considered to be the savior of mathematics, Gödel had now used set theory to prove that we are incapable of building a complete axiomatic system. While some mathematicians feared this discovery would invalidate their work, others continued on with their work using Gödel's ideas to solve new and groundbreaking problems. Alan Turing used similar reasoning to Gödel to solve mathematical problems related to the creation of the modern computer. Physicists used Gödel's uncertainty to continue groundbreaking research in quantum mechanics. Cantor's simple notion of group objects together had helped to discover some of the hard boundaries of what math can and cannot do. The set had shown that math is not and can never truly be perfect, and that its imperfection is part of why it is so useful. Math cannot solve every problem, but it can still grant us a much deeper understanding of the world around us.