Rudin's Principles of Mathematical Analysis has the following definition of compact:
A subset $K$ of a metric space $X$ is said to be compact if every open cover of $K$ contains a finite subcover. More explicitly, the requirement is that if {$G_{\alpha}$} is an open cover of $K$, then there are finitely many indices $\alpha_1,...,\alpha_n$ such that $$K\subset G_{\alpha_{1}}\cup\, ...\cup \, G_{\alpha_{n}}.$$
It also has the following proof:
Theorem: Compact subsets of metric spaces are closed.
Proof: Let $K$ be a compact subset of a metric space $X$. We shall prove that the compliment of $K$ is an open subset of $X$.
Suppose $p\in X$, $p\notin K$. If $q\in K$, let $V_q$ and $W_q$ be neighborhoods of $p$ and $q$, respectively, with radius less than $\frac{1}{2}d(p,q)$. Since $K$ is compact, there are finitely many points $q_1,...,q_n$ in $K$ such that $$K\subset W_{q_{1}}\,\cup\, ...\cup W_{q_{n}}=W.$$ If $V=V_{q_{1}}\cap\,...\cap V_{q_{n}}$, then $V$ is a neighborhood of $p$ that does not intersect $W$. Hence $V\subset K^c$, so that $p$ is an interior point of $K^c$. The theorem follows.
Now, this might be silly, but I can't think of a reason that the collections of neighborhoods have to be finite. In other words, it doesn't seem to matter that $K$ is compact. Obviously it is not true that every subset of a metric space is closed, so what am I missing?
The reason is that the intersection of infinitely many open sets need not be open: you need the set of $V_{q_k}$ to be finite in order to ensure that $V$ is actually a neighborhood of $p$, rather than merely some set containing $p$.