1. A computer-implemented method of decoding a Low Density Parity Check (LDPC) code, the method comprising: receiving the LDPC code through a channel; and decoding the LDPC code using check nodes and variable nodes, wherein decoding the LDPC code includes: calculating, using a computer, first results by performing a calculation having first and second inputs forward and recursively using a plurality of edges of a check node; calculating, using the computer, second results by performing the calculation backward and recursively using the plurality of edges; and calculating, using the computer, a value of the check node by performing the calculation using at least one of the first results and the second results as the first and second inputs, respectively, wherein N is a count of the edges of the plurality of edges, wherein performing the calculation forward and recursively includes: calculating the first result for a first stage by performing the calculation using values of first and second edges as the first and second inputs, respectively, and calculating the first result for an n th stage by performing the calculation using values of the first result for an (n−1) th stage and an (n+1) th edge as the first and second inputs, respectively, wherein n is greater than or equal to 2 and less than or equal to N−3, and wherein performing the calculation backward and recursively includes: calculating the second result for the first stage by performing the calculation using values of the N th and an (N−1) th edge as the first and second inputs, respectively, and calculating the second result for the n th stage by performing the calculation using values of the second result for an (n−1) th stage and an (N−n) th edge as the first and second inputs, respectively, wherein n is greater than or equal to 2 and less than or equal to N−3.