
1. onKeyDown ์ด๋ฒคํธ ํ๊ธ ์๋ฌ
์ฑํ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ์ค, ์ฑํ ์ ๋ณด๋ด๋ฉด ์ฑํ ์ ๋ ์์ ์ด ํ๋ฒ ๋ ์ ์ก๋ผ ์ฑํ ์ด ๋ ๋ฒ์ฉ ์ ์ก๋๋ ์๋ฌ๋ฅผ ๋ฐ๊ฒฌํ๋ค.

์์ด์ ์ซ์, ํน์๊ธฐํธ ๋ฑ์ ๋ณด๋ด๋ฉด ์ ์์ ์ผ๋ก ์ ์ก๋์ง๋ง, ์ ๋ ํ๊ธ๋ง ์ ์กํ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
๊ตฌ๊ธ๋ง์ ํด๋ณด๋, onKeyDown
๋ฌธ์ ์๋ค.onKeyPress
๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋จํ ํด๊ฒฐ๋๋ค๋๋ฐ, onKeyPress
๋ ์ด๋ฏธ deprecated๋ ์ํ๋ผ ์ฐ๊ธฐ๊ฐ ์ซ์๋ค.
์ข ๋ ๊ตฌ๊ธ๋ง์ ํด๋ณด๋ ํด๊ฒฐ์ฑ
์ ์ฐพ์๋ค.


์์ด, ์ซ์, ํน์๊ธฐํธ๋ ๊ธ์ ์กฐํฉ์ด ์ ๋๋ ๋ฐ๋ฉด ํ๊ธ์ ์กฐํฉ ๋ฌธ์์ด๊ธฐ์ ๋ฐ์๋๋ ๋ฌธ์ ์๋ค.
์ธํ ์ฐฝ์ ํ๊ธ๋ก onChange
๊ฐ ์งํ๋๊ณ ์์๋, ๊ธ์๊ฐ ์กฐํฉ ์ค์ธ์ง ์กฐํฉ์ด ๋๋ ์ํ์ธ์ง ์ปดํจํฐ๊ฐ ํ์
์ด ์๋ผ ์ด๋ฒคํธ๊ฐ ๋ ๋ฒ์ฉ ํธ์ถ๋๊ณ ์์๋ค.
mdn ์ค๋ช
์ ๋ฐ๋ฅด๋ฉด KeyboardEvent.isComposing
์ ์ธ์
๋ด ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋์ง ์ฌ๋ถ๋ฅผ ๋ํ๋ด๋ boolean
๊ฐ์ ๋ฆฌํดํ๋ค๊ณ ํ๋ค.
๋ฐ์ mdn ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ๊ธ์๋ฅผ ์น ๋ compositionstart
๋์๋ค๊ฐ, 'ํ' ๊ธ์ ์
๋ ฅ์ด ๋๋๊ณ ๋ค์ ๊ธ์์ธ '์ด'๋ก ๋์ด๊ฐ์ compositionend
๊ฐ ๋๋ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ ์๋ค. ๊ทธ ๋ค์ '์ด' ๊ธ์๋ ๊ธ์ ๋ฐ์ ๊ฒ์ ์ค์ด ์ณ์ ธ์๊ณ , compositionupdate
๊ฐ ์งํ์ค์ด๋ค. ์ฆ ์์ง ์ปดํจํฐ๋ ๊ธ์ ์กฐํฉ์ด ๋๋ฌ๋์ง ์๋์ง ๋ชจ๋ฅธ๋ค๋ ์ํ๋ค.

๊ทธ๋ผ ๋ฌธ์ ์ ์๋ฌ ๋ถ๋ถ ์ฝ์์ ๋ณด์.
ํด๋น ์ฝ์์๋ e.native.isComposing
์ boolean
๊ฐ์ด ์ฐํ๊ณ ์๋ค.
'ใ
'๋ง ์ณค์๋ false
๊ฐ์ด ์ฐํ๊ณ , ์ดํ ๊ธ์๋ฅผ ์กฐํฉํ์ ์ง์์ ์ผ๋ก true
๊ฐ์ด ์ฐํ๋ค. ์ญ์ ์ฌ๊ธฐ์๋ ๊ฒ์ ์ค์ด ๋์๋ค.
์ด ์ํ์์ ์ํฐ๋ฅผ ์ณ์ ์ฑํ
์ ๋ณด๋ด๋ฉด ์ฝ์์ true
๊ฐ, false
๊ฐ์ด ๊ฐ๊ฐ ์ฐํ๋ค. ์ฆ ์ด๋ฒคํธ๊ฐ ๋ ๋ฒ ํธ์ถ๋๋ ๊ฒ์ด๋ค.true
๊ฐ์์๋ ์ฑํ
์ ๋ ์์ ๋ง ์ ์ก๋๊ณ , false์ผ ๋๋
์ฌ๋ฐ๋ฅธ ์ฑํ
์ด ์ ์ก๋๋ค.

์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ e.nativeEvent.isComposing
์ด false
์ผ ๊ฒฝ์ฐ๋ง์ ์กฐ๊ฑด์ ๋ค๋ ์ฑํ
์ ๋ณด๋ธ ๋ค false
๊ฐ๋ง ๋์ค๋ฉด์ ์ ์์ ์ผ๋ก ์ด๋ฒคํธ๊ฐ ํ๋ฒ ํธ์ถ๋์๋ค.



References
KeyboardEvent.isComposing - Web APIs | MDN
The KeyboardEvent.isComposing read-only property returns a boolean value indicating if the event is fired within a composition session, i.e. after compositionstart and before compositionend.
developer.mozilla.org
Element: compositionstart event - Web APIs | MDN
The compositionstart event is fired when a text composition system such as an input method editor starts a new composition session.
developer.mozilla.org