How to label the nodes ( coordinates ) in tikz picture?

You can directly give labels to the coordinates in your first picture, which I guess is the most natural way:

\documentclass[tikz, convert={density=300,size=256,outext=.png}]{standalone}
\usetikzlibrary{quotes,angles}

\begin{document}
    \begin{tikzpicture} %[scale=3]
        \draw (0,0) node[below]{$O$} circle (2);
        \coordinate[label=above:A] (A) at (120:2);
        \coordinate[label=below left:B] (B) at (210:2);
        \coordinate[label=below right:C] (C) at (-40:2);
        \coordinate[label=above:D] (D) at ( 60:2);
        %\draw (A) -- (C) -- (D) -- (B) -- (A);
        \draw (B) -- (A) -- (C) pic [draw, angle radius=12mm, "$30^\circ$"] {angle = B--A--C};
        \draw (D) -- (B) -- (A) pic [draw, angle radius=15mm, "$15^\circ$"] {angle = D--B--A};
        \draw (B) -- (D) -- (C) pic [angle radius=12mm, "$ x^\circ$", draw] {angle = B--D--C};
    \end{tikzpicture}
\end{document}

By the way, you don't need to draw your lines the first time.

The desired result


I used the positioning library:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{quotes,angles,positioning}

\begin{document}

\begin{tikzpicture}
    \draw (0,0) node[below]{$O$} circle (2);
    \coordinate (A) at (120:2);
    \node at (A) [above = 1mm of A] {$A$};
    \coordinate (B) at (210:2);
    \node at (B) [below left = 1mm of B] {$B$};
    \coordinate (C) at (-40:2);
    \node at (C) [below = 1mm of C] {$C$};
    \coordinate (D) at ( 60:2);
    \node at (D) [above right = 0.7mm of D] {$D$};
    \draw (A) -- (C) -- (D) -- (B) -- (A);
    \draw (B) -- (A) -- (C) pic [draw, angle radius=12mm, "$30^\circ$"] {angle = B--A--C};
    \draw (D) -- (B) -- (A) pic [draw, angle radius=15mm, "$15^\circ$"] {angle = D--B--A};
    \draw (B) -- (D) -- (C) pic [angle radius=12mm, "$ x^\circ$", draw] {angle = B--D--C};
\end{tikzpicture}
\end{document}

enter image description here