문제 정의
불필요한 조건문과 중복된 로직이 가독성과 유지보수성을 해쳤습니다.
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
조건문 제거 - 첫번째 페이지를 자동적으로 기본값으로 설정
- NaN, undefined, '', 음수 처리까지 완벽 대응
배운 점 (인사이트)
🚀 리팩토링이란? 당장은 잘 돌아가더라도, 미래를 위한 투자다.
🐛 어쩔 수 없이 넘어갔다면, '냄새' 를 맡는 즉시 고치자!
🔥 역시 근본이 중요합니다!
'TIL' 카테고리의 다른 글
[250131 TIL] Composition Event (0) | 2025.01.31 |
---|---|
[250110 TIL] jest, react-testing 기본(1) (0) | 2025.01.14 |
[241220 TIL] 기본적인 husky 세팅 (1) | 2024.12.20 |
[241219 TIL] Severless (0) | 2024.12.19 |
[241219 TIL] pnpm 장점 (0) | 2024.12.19 |