불필요한 조건문과 중복된 로직이 가독성과 유지보수성을 해쳤습니다.
if(pageQery !== null) {
const page = Number(pageQuery);
const start = page === 1 || page === 0 ? 0 : (page - 1) * MOIMS_ITEMS_PER_PAGE;
// ...
}
급하게 구현하느라 생각이 가는 대로(?) 작성했던 코드.
하지만 지나고 보니 너무나도 이상해 보였습니다.
단순한 조건문 개선 상황이지만, 이런 실수를 계속 반복하면 안 된다고 생각했습니다.
나는 앞으로도 이런 짓을 할 것인가? 하는 성찰의 순간이 찾아왔습니다.
🔍 왜 이해가 안되고 무슨 문제가 있었을까?
page === 1 || page === 0
→ 불필요한 조건문NaN, undefined, ""
처리 없음 → 잠재적 버그수정된 코드
const page = Math.max(1, Number(pageQuery) || 1); // 최소 1 보장
const start = (page - 1) * MOIMS_ITEMS_PER_PAGE;
pageQuery !== null
조건문 제거🚀 리팩토링이란? 당장은 잘 돌아가더라도, 미래를 위한 투자다.
🐛 어쩔 수 없이 넘어갔다면, '냄새' 를 맡는 즉시 고치자!
🔥 역시 근본이 중요합니다!