CS - Early Return Pattern


Early Return Pattern

  • Early Return Pattern 은 디자인 패턴중 하나이다.
      public static int performOperation(int value) throws Exception {
          if (value > 0) {
              if (value % 2 == 0) {
                  // 처리
                  return value * 2;
              } else {
                  throw new Exception("홀수는 처리할 수 없습니다.");
              }
          } else {
              throw new Exception("양수가 아닙니다.");
          }
      }
    
  • 해당 코드처럼 if문이 많이 중첩되는 코드가 있는데, 여기서는 2중첩이지만 심하면 4, 5중첩 이상으로 넘어갈 수 있고, 그러면 가독성이 안좋아진다.
  • 그래서 필요한 구간까지만 실행하고, 해당 조건에 부합하면 return을 해버리는 방법을 사용하는데
  • 그것이 early return 패턴이다.


  • 위 코드를 early return 패턴으로 수정하면 아래 코드처럼 수정할 수 있다.
      public static int performOperation(int value) throws Exception {
          if (value <= 0) {
              throw new Exception("양수가 아닙니다.");
          }
    
          if (value % 2 != 0) {
              throw new Exception("홀수는 처리할 수 없습니다.");
          }
    
          // 처리
          return value * 2;
      }
    
    • 훨씬 깔끔하고, 가독성도 좋아보인다.
    • 여기서는 나오지 않았지만, 중복 코드가 생길 수 있는데 early return 패턴을 사용하면 그것도 막아줄 수 있다.



장점

  • 가독성, 효율성 향상
  • 오류 감소
  • 코드 중복 감소
    • 위 코드에서 보았듯, 깔끔한 코드로 가독성과 효율성이 향상되고 그에 따라 오류 발생률도 낮출 수 있다. 그리고 중첩 if문에서 많이 발생하는 중복 코드 문제도 해결할 수 있다.



단점

  • 너무 과도한 Early Return 방식을 사용할 시, 오히려 가독성을 해칠 수 있음.
  • 유연성 감소
  • 유연성 감소에 따른 디버깅 문제 발생
    • 무 과도한 Early Return을 사용하게 될 경우, 차라리 함수를 나누는 방법을 고려해볼 수 있다.


  • 그리고 위에서 막히더라도 강제적으로 아래 코드를 무조건 실행해야 하는 경우가 있는데, Early Return 패턴만 너무 고집하면 어려울 수 있다.
      try {
      
        // 상품 주문
    	  
        // 주문 완료 알림
    	  
      } catch ( Exception e ) {
    
        // 주문 완료 알림 오류 발생
        return;
    
      }
    
    • 이렇게 해버리면 주문 완료 알림에 오류가 발생했을 때 그냥 끝내버리게 된다.
    • 약 주문 완료 알림에 오류가 발생했을 때에도 메인 서비스는 동작은 끝까지 마무리 해줘야한다면 early return 방식으로 끝내버릴게 아니라, 이후 코드까지 작동을 할 수 있게끔 코드를 작성해야 한다.
  • Early Return 방식을 포함한 모든 디자인 패턴은 상황에 맞게 사용해야 한다.
  • 장점과 단점이 명확한 패턴들이므로, 적절히 사용해준다면 좋은 코드를 만들 수 있을 것이다.






results matching ""

    No results matching ""