Precomposed Hangul spans 11,172 characters; Hanzi runs into the tens of thousands. A font file holding outline data for all of them ends up dozens of times heavier than a Latin-only font — a full Korean font commonly weighs several megabytes. Yet a typical web page rarely uses more than a few hundred distinct characters.
Subsetting strips a font file down to just the character set actually needed, dropping the remaining glyphs and hinting data to shrink it drastically. Where the exact characters that will appear are fixed — a logo, a static headline — a tiny subset containing only those characters is possible; for body text, where the character set is unpredictable, a common middle ground keeps only the most frequently used characters (say, a high-frequency subset of the 2,350 commonly used precomposed Hangul syllables).
Dynamic subsetting — CSS `unicode-range`, where the browser only requests the Unicode ranges it actually needs — lets a server pre-split a font into chunks and serve only the chunks a given page requires. This site loads no external font files at all, so it can't produce a real subset; the demo instead computes, honestly, what percentage of a full character set a given sentence's unique characters would represent.
When to use
Almost always worth considering when serving a Korean web font — shipping the full precomposed set makes load times noticeably worse. Logos and fixed phrases are worth their own tiny dedicated subset.