처음으로 제대로 된 리팩토링을 해본다.
얼마나 코드를 내가 개선할 수 있는지 전후 비교해보기 위해 기록한다.
window.addEventListener('click', e => {
if (e.target.id !== 'game-restart-button') return;
init();
createRandomNumber();
});
$app.addEventListener('click', e => {
if (e.target.id !== 'game-restart-button') return;
init();
createRandomNumber();
});
focus
를 사용해서 해결$submit.addEventListener('click', e => {
e.preventDefault();
userInputNumbers = $userInput.value;
if (!BG.validate(userInputNumbers)) {
window.alert('숫자, 3자리, 0을 제외한 값을 입력해주세요');
$userInput.focus(); // focus!
return;
}
render();
});
$app.addEventListener('click', e => {
if (e.target.id !== 'game-restart-button') return;
init();
createRandomNumber();
$userInput.focus(); // focus!
});
페이지에 처음 진입했을 때
, 재시작 버튼을 눌렀을 때
동일하게 randomNumber가 생성되도록 변경. 일관성을 더 좋게 만들어서 가독성이 좋아졌다.가장 어렵기도 했고 가장 좋았던 점이기도 하다.
클래스에 대해 몇일간 공부해서 적용하였지만 이론상 어떤 느낌인지 알겠지만 실제로 어떻게 적용해야 할지 감이 잘 오지 않았다. 이번 프로젝트로 완벽하게 알게된 것은 아니지만 이해하고 사용할 수 있어서 좋았다.
리팩토링을 직접 경험해보면서 코드를 볼 때마다 리팩토링 할 것이 있구나라는 것을 느꼈다. 코드 작성하는 시간보다 리팩토링 시간을 더 가져가야 한다는 이유를 알 것 같다. 코드를 작성했고 구현되면 그만이지!
라는 생각은 완전 오만이다. 다음에 유지보수를 할 일이 있다면 그때 더 고생하지 않으려면 당장 리팩토링을 하는 것이 좋다. 뿐만 아니라 성능적으로 향상될 수 있고 의도치 않은 오류도 방지할 수 있고 가독성도 올라간다. 리팩토링 너무 재밌었다.
요즘 공부하면서 번아웃이 크게 왔었다. 평소에 나름 긍정적으로 생각한다고 자부했었는데 요즘은 "내가 개발자가 될 수 있을까. 함수 하나도 제대로 못짤것 같은데.." 이런 생각을 안하려고 해도 나의 실력을 탓하며 부정적인 생각이 났다.
하지만 대단한 것을 한 것도 아니고 정답인지도 모르지만 이번 과제를 하면서 생각을 하고 내 나름대로 생각을 정리하면서 코드를 작성한다는 것에서 기쁨을 느껴서 너무 행복한 1주일이였다.