Hangul Syllables

Hangul Syllables is a Unicode block containing precomposed Hangul syllable blocks for modern Korean. The syllables can be directly mapped by algorithm to sequences of two or three characters in the Hangul Jamo Unicode block: This block is encoded according to the canonically equivalent order of these (two or three) jamos (one in each subrange of jamos above) composing each syllable.
 * one of U+1100–U+1112: the 19 modern Hangul leading consonant jamos;
 * one of U+1161–U+1175: the 21 modern Hangul vowel jamos;
 * none, or one of U+11A8–U+11C2: the 27 modern Hangul trailing consonant jamos.

Note that a full Hangul syllable may include one of these characters but may be preceded by one or more leading consonant jamos, and followed by one or more trailing jamos (possibly preceded by one or more vowel jamos if the encoded syllable is composed by two jamos does not include any trailing consonant jamos). As well some Hangul syllables may not include any one of these precomposed character. But such extension of the Hangul script (which allows creating more complex syllables composed in the same square) is not very common in modern Korean.

History
Encoding hangul syllables in Unicode was complicated by a reorganization of the code points:
 * Unicode version 1.0.0 encoded 2,350 modern Korean hangul syllables from KS C 5601-1987 at U+3400–U+3D2D. This range is now part of CJK Unified Ideographs Extension A.
 * Version 1.1 added 1,930 additional modern syllables from KS C 5657-1991 at U+3D2E–U+44B7, six modern syllables from GB 12052-89 at U+44B8–U+44BD, and the first 2,370 syllables that are not in the aforementioned three sets at U+44BE–U+4DFF. These collectively cover the remainder of what is now CJK Unified Ideographs Extension A and all of what is now Yijing Hexagram Symbols.
 * In addition, there were three errors in Unicode 1.1:
 * U+384E: 삤 in the Unicode Character Database, but 삣 in the Unicode 1.0 and ISO/IEC 10646-1:1993 code charts and per the source standard mappings
 * U+40BC: 삣 in the Unicode Character Database, but 삤 in the ISO/IEC 10646-1:1993 code charts and per the source standard mappings
 * U+436C: 콫 in the Unicode Character Database, but 콪 in the ISO/IEC 10646-1:1993 code charts and per the source standard mappings
 * Version 2.0 added the 4,516 remaining possible syllables from KS C 5601-1992 and rearranged all of the encoded syllables into the current U+AC00–U+D7AF range which allows algorithmic decomposition into individual jamo.

explains that this significant incompatible change was made on the assumption that no data or software using Unicode for Korean existed:

""The official justification for allowing such an incompatible change was that no implementations and no data containing Hangul existed, a statement that is likely to be true but remains unprovable. The incident has been dubbed the "Korean mess", and the relevant committees have pledged to never, ever again make such an incompatible change." —"

Subsequently, Unicode adopted an encoding stability policy which states that "Once a character is encoded, it will not be moved or removed".

The following Unicode-related documents record the purpose and process of defining specific characters in the Hangul Syllables block: