This is the list of Hangul jamo (Korean alphabet letters which represent consonants and vowels in Korean) including obsolete ones. This list contains Unicode code points.

In the lists below,
 code points in  were added in . These should form a syllabic square when conjoined with other jamo characters, but unupdated fonts, browsers or systems may not be able to do so.
 code points in  were corrected in  and the South Korean national standard KS X 1026-1 (unofficial English translation).
 code points highlighted with  are part of the modern Hangul subset which are arithmetically composable (in pairs or triples of jamo characters) to canonically equivalent precomposed Hangul syllables in U+AC00–U+D7AF (see below for further explanation):
 U+1100–U+1112: 19 modern Hangul leading consonant jamos
 U+1161–U+1175: 21 modern Hangul vowel jamos
 U+11A8–U+11C2: 27 modern Hangul trailing consonant jamos
 all other jamos (shown in the tables below without the highlighting background) are obsolete; they are not used in modern Korean (some Korean input methods or keyboard layout may not allow entering them).
 "Hanyang Private Use" is a character code system that was used in Hangul word processor version Wordian to 2007. This system maps old Hangul to the Private Use Area in Unicode. In Hangul Office 2010 and its subsequent versions, Hanyang PUA system was deprecated and replaced with the standard Unicode Hangul jamo encoding.

The Hangul compatibility jamo characters (U+3130–U+318F) are encoded in Unicode for compatibility with the earlier South Korean national standard KS X 1001 (formerly KS C 5601). Compatibility and halfwidth (U+FFA0–U+FFDC) characters are not composable into syllabic squares (because of the ambiguity for delimiting syllables when using them), but they may be used in legacy applications which cannot support or render the full Hangul syllable set such as low-cost terminals or old printers: these compatibility characters may exist either in fullwidth variant, or in halfwidth variants (mostly used in terminals with low resolution).

Unicode also defines a large subset of precomposed Hangul syllables (U+AC00–U+D7AF) made of two or three jamo characters for use in modern Korean (their canonical decomposition mappings are not found in the UCD, but are specified with an arithmetic algorithm only in The Unicode Standard, Chapter 3 Conformance) and are decomposable into equivalent sequences of two jamo characters (one in each of the first two subranges above) or three jamo characters (one in each of the three subranges above). Their initial encoding in Unicode 1.0 was different (and not compatible with later versions of Unicode) and were based on the compatibility jamo characters (ignoring the distinction between leading and trailing consonants, making the automatic composition of Hangul square sometimes ambiguous or wrong).

Consonants

Vowels

Other characters 
These are not jamos, but are used in combination with other Hangul jamo characters and syllables.

 Fillers: these are needed to allow correct processing of syllable separations and correct rendering of syllabic clusters in composition squares
 Hangul Jamo Area: U+115F (leading), U+1160 (medial)
 Hangul Compatibility: U+3164
 Hanyang Private Use: U+F784 (leading), U+F806 (medial), U+F86A (trailing)
 Halfwidth Jamo: U+FFA0
 Tone marks (bangjeom, 방점, 傍點): were used in Middle Korean, written to the left of a syllabic square (but encoded after the leading Hangul jamo or syllable if encoded as a combining diacritic), and was used with the vertical presentation; for example in the Eonhaebon version (mixed Hanja and Hangul) of the Hunminjeongeum Eonhae):
 Single dot (geoseong, 거성, 去聲) "〮" (·): U+302E (high tone); not to be confused with the obsolete vowel jamo  (U+119E) (or its corresponding compatibility jamo  (U+318D)) which is used in a medial or final position of a syllabic square (and appears after leading consonants)
 Double dot (sangseong, 상성, 上聲) "〯" (:): U+302F (rising tone)
 The absence of tone mark implied the low tone (pyeongseong, 평성, 平聲).
 Notes: These tone marks are input after the syllabic square they modify but they will be rendered by reordering to the left of the syllabic square. For example, the string "" (U+AC00 U+302E) should be displayed like "", not "".
 They were first encoded in Unicode as non-spacing combining marks, due to their most common and historic use with the vertical presentation, but they still need to have a positive advance-width to render Middle Korean texts in the modern horizontal presentation (to avoid collision with the previous syllabic square); their general category was later changed from Mn to Mc (spacing combining mark), even though they don't add any advance-width in the traditional vertical presentation.
 Legacy encodings before they were encoded in Unicode, or if a font does not support glyphs for them, used generic punctuation marks (middle dot "·", or colon ":") input before the syllabic square (but this causes confusion when parsing text, and they do not work well for the vertical presentation because they would render above the next syllabic square instead of to the left).

References 

 
Writing systems introduced in the 15th century