ISSUE 링크
문제 상황
•
7.54.2 → 7.56.4로의 버전 업드레이드 후 테스트 1건 실패
•
증상: firstName의 기본값이 "Seppo"인 폼에서 reset({ firstName: undefined }) 후 제출 시,
◦
7.54.2: 제출 데이터가 기본값으로 보정되어 { firstName: "Seppo" }
◦
7.56.4: 보정 없이 비어 있거나 undefined로 제출되어 {} (또는 { firstName: undefined })
•
원하는 내용: 패치/마이너 버전 간 동작 변화가 없어야 하며, 기존처럼 제출 시 기본값으로 보정
작업 내용
•
변경 지점 추적: 7.54.2 버전에서 명시적으로 기본값으로 보정되는 로직을 찾기 어려워 Git Bisect로 문제 구간을 특정
◦
7.55.0-next.7
7.55.0-next.8 사이에서 동작 변화 확인
▪
7.55.0-next.7: _reset 내부에서 _fields = {} 로 초기화
▪
7.55.0-next.8: _reset 시 for (const name of _names.mount) setValue(name, get(values, name))로 각 필드를 순회하며 setValue 호출 (PR #12675)
•
추정 원인: 과거에는 _fields가 비어 있을 때 제출 단계에서 defaultValues와 병합/보정되는 로직이 작동했으나, next.8부터는 setValue 루프가 실제 값(심지어 undefined)을 명시적으로 주입하여 보정 경로가 우회된 것으로 판단
•
제안사항:
1.
제출 시 defaultValues로 보정하는 과거 동작을 유지(회귀)
2.
현 동작(명시적 undefined를 그대로 제출)을 유지하고 명세로 못 박기
→ 회귀 방지를 위해 해당 케이스의 테스트 추가 제안
•
메인테이너 피드백:
◦
@bluebill1049: “패치하겠다. undefined가 되면 안 된다”는 방향으로 회신
◦
@Jarzka: 기존 동작도 직관적이진 않지만 메이저 변경 없이 바꾸기엔 영향이 크다는 취지의 코멘트
느낀점
+6.29 추가 내용
깃허브를 보다 RHF의 최신 패치 내용에 내가 태깅되어있었다. 최근에 직접 PR을 올린적이 없어 이번에는 버전 업데이트가 늦어 오래전 머지된 내용이 반영되었나 하고 확인해보니 Issue에서 현재 상황을 분석한 내용 때문에 나를 따로 태그한 부분이었다.
매 버전 릴리즈마다 작성하는 것도 만만치 않을텐데 굳이 작성자가 아닌 나까지 태그해준 마음씀씀이에 훈훈해졌다. 
PR은 아니었지만 시간을 투자해서 살펴본 부분에 대해 알아주는 사람이 있다는 것이 기분 좋은 하루였다.