Skip to content

0817

if~else문은 나쁘다?

가독성과 유지보수성 저하

  • if-else 체인이 길어질수록 코드 이해가 어려워짐
  • 새로운 조건 추가 시 기존 코드 수정 필요
  • 중첩된 조건문은 복잡도를 기하급수적으로 증가시킴

성능 이슈

  • 많은 조건을 순차적으로 검사하면 성능 저하 발생
  • 특히 자주 실행되는 함수에서는 더 큰 영향을 줌
js
// if~else문 사용  
function getDiscount(customerType) {  
  if (customerType === 'bronze') return 0.05;  
  else if (customerType === 'silver') return 0.10;  
  else if (customerType === 'gold') return 0.15;  
  else if (customerType === 'platinum') return 0.20;  
  else if (customerType === 'diamond') return 0.25;  
  // ... 더 많은 조건들  
}

// 만약 고객의 등급이 'diamond' 라면?  
// bronze → silver → gold → platinum → diamond 순서로 5번 비교
js
// 해시 테이블로 조회  
const discountMap = {  
  bronze: 0.05,  
  silver: 0.10,  
  gold: 0.15,  
  platinum: 0.20,  
  diamond: 0.25  
};

function getDiscount(customerType) {  
  return discountMap[customerType] || 0;  
  // 단 한 번의 조회로 결과 반환 O(1)  
}

테스트의 어려움

  • 모든 조건 분기를 테스트하기 위해 많은 테스트 케이스 필요
  • 코드 커버리지 확보가 복잡해짐