티스토리 뷰

dev

중첩 if 문 대신 Guard Clause

IT's me 2023. 1. 17. 19:56

사실 개발을 몇년정도 하면서 자연스럽게 체득된 방법이었는데 이렇게 부른다는건 이제서야 알았다. 다중으로 중첩된 if 문(Nesting If Statements) 대신 Guard Clause 를 적용해야 한다는 것이다. 

 

 

중첩 if 문(Nesting If Statements)

 

개발을 하다보면 프로그램을 실행하기 위한 정합성 체크, 전제조건을 검사를 넣게 되는데 이를 조금 더 유식하게 guard 라고 한다. 이미 자연스럽게 만들고 있을 것이다. 


if( condition ){
    throw new CustomException("")
}

process();

 

하지만, 체크사항이 복잡하게 발생하면 코드도 이에 따라 복잡해지기 마련인데. 아래처럼 구현하게 된다는 거. 이런 중첩 구조를 Nesting 하다라고 얘기할 수 있고 

if( condition ){
    throw new CustomException("check condition")
}else{
  if( condition2 ){
    throw new CustomException("check condition2")
  }else{
    if( condition3 )  {
      throw new CustomException("check condition3")
    }else{
      process();
    }
  }
}

 

Guard Clause

 

Nesting 하지 않고 단순하게 Guard Clause화 시켜서 아래처럼 개발하면 좋다. 가독성, 유지보수 용이성에서 모두 좋다. 

if( condition ){
    throw new CustomException("check condition")
}

if( condition2 ){
    throw new CustomException("check condition2")
}

if( condition3 )  {
  throw new CustomException("check condition3")
}

process();

 


댓글
최근에 올라온 글
최근에 달린 댓글