What does "capacity achieving code" mean?
The channel capacity is the largest rate at which communication can be made with arbitrary small error. This means that if you decide for a rate that is above the channel capacity, you will have to live with some errors in your received code word. 

Your formula
\begin{equation}
   \frac{1}{2}\log(1+SNR)
\end{equation}
tells you how many bits/s/Hz per real dimension you can transmit in order to have a chance at zero errors at the receiver. Note that this is normalized with respect to bandwidth, you could also write
\begin{equation}
\frac{W}{2}\log(1+SNR), \quad SNR = \frac{P}{N_0W}.
\end{equation}
to get the capacity in bits/s per real dimension. This formula is derived from the fact that for the AWGN channel, the input that maximizes the mutual information is Gaussian distributed.

Now, the channel capacity tells you that it is possible to transmit at this rate but it does not tell you how to do it. This is where channel coding enters. So channel coding aims to add redundancy to what you transmit in a structured way to protect the information. If the errors induced when using the code is approaching zero when the blocklength grows larger, this code is said to achieve capacity. 

An example from "Fundamentals of Wireless Communication" by David Tse and Pramod Viswanat: The capacity of the AWGN channel at 0 dB SNR is 0.5 bits. There are LDPC codes that are a couple of thousand bits long that result in error rates on the order of 10^-4. By incresaing the blocklength, the error rate would also decrease. Hence, by making the block to transmit extremely long, you would approach zero error. So the LDPC code is capacity achieving.