커서 위치를 유지하는 것이 포인트
...
onChange={(e) => {
modifyUpperCase(e, forceUpperCase);
}}
...
export const modifyUpperCase = (e: React.ChangeEvent<any>, forceUpperCase: boolean) => {
if (forceUpperCase) {
const et = e.target;
const selectionStart = et.selectionStart;
const selectionEnd = et.selectionEnd;
et.value = et.value.toUpperCase(); // 조건에 따라 영대문자 변경
et.setSelectionRange(selectionStart, selectionEnd); // 커서 위치 유지를 위한 작업
}