An operation method of a controller may include encoding a first data at a first code rate such that the encoded first data is decoded by a first parity check matrix included in a variable code-rate parity check matrix and encoding a second data at a second code-rate such that the encoded second data is decoded by a second parity check matrix included in a variable code-rate parity check matrix.