if 무한 중첩 탈출하기

김민찬·2022년 7월 16일
0

JavaScript

목록 보기
15/23
post-thumbnail

코드를 작성하다보면 if조건을 계속 중첩하게 될때가 있다.

이러한 코드를 작성하면 가독성이 떨어지고 다른 사람은 물론 자기 자신도 작성할때를 제외하고는 이해할 수가 없게된다.

복잡한 if 중첩

다음은 예시 코드 이다.

const checkCondition = () => {
  if (id) {
    if (password) {
      if (adminCode) {
        adminPage();
      } else {
        throw new Error('Please enter admin code');
      }
    } else {
      throw new Error('Please enter password');
    }
  } else {
    throw new Error('Please enter Id');
  }
}
  • 3단계만 중첩되어도 이렇게 복잡한 코드가 완성된다.
  • 가독성이 떨어지고 추가적인 기능을 위한 코드를 작성하기 힘들어 진다.

1차 변경

const checkCondition = () => {
  if (!id) {
    throw new Error('Please enter Id');
    return;
  }
  if (!password) {
    throw new Error('Please enter password');
    return;
  }
  if (adminCode) {
    adminPage();
  } else {
    throw new Error('Please enter admin code');
  }
}
  • 아까보단 훨씬 깔끔하고 가독성이 좋은 코드가 완성되었다.
  • 하지만 아직 문제가 남아있다.
    adminCode만 NOT연산자를 사용하지 않아서 코드를 읽을 때 오해를 유발 할 수 있다.

2차 변경

const checkCondition = () => {
  if (!id) {
    throw new Error('Please enter Id');
    return;
  }
  if (!password) {
    throw new Error('Please enter password');
    return;
  }
  if (!adminCode) {
    throw new Error('Please enter admin code');
  }
  adminPage();
}
  • 이제 코드가 클린해졌고 다른 조건을 추가할때도 매우 편해졌다.
profile
두려움 없이

0개의 댓글