본문 바로가기
JAVA

if-else의 갇혀버린 return 문을 구출하기 위해 Early Return 패턴을 활용하자

by 열정적인 이찬형 2025. 5. 7.
해당 글은 클린 코드의 대한 자유로운 의견을 공유하고 작성된 것으로 다양한 의견이나 잘못된 내용이 있으시면 댓글 남겨주시면 감사하겠습니다.

What is Early Return Pattern????


 

Early Return Pattern을 처음 듣게 되면 디자인 패턴처럼 무언가 선뜻 다가오지 않게 느껴졌습니다.

 

❗️EarlyReturn
함수나 메서드 내에서 특정 조건이 충족되면 즉시(early) 결과를 반환(return)하여 불필요한 코드 실행과 중첩된 조건문을 방지하는 프로그래밍 기법이다.
  private String method1(String input) {
    if (input == null) {
      throw new NullPointerException("input is null");
    } else {
      if (조건1) {
        return "result1";
      } else {
        if (조건2) {
          return "result2";
        }else{
          if (조건3) {
            return "result3";
          } else {
            return "result4";
          }
        }
      }
    }
  }

 

- if-else문의 중복 및 들여쓰기로 코드를 한 눈에 파악하기 힘들다.

- 조건에 유효하지 않은 경우를 다음 조건을 확인하면서, 이전 조건에 대해서 대한 재확인을 유도한다.

 

만약, 기능에 대한 조건이 복잡하여 if-else문의 중첩이 점점 많아져서 Arrow Anti Pattern으로 보이기 시작하면, 해당 코드를 유지보수를 진행하는데 어려움을 느낄 것입니다.

 

😀 Early Return 패턴을 적용시켜서 조건에 부합할 때 반환하여 코드를 간결하게 만들면 아래와 같아집니다.
  private String method1(String input) {
    if (input == null) {
      throw new NullPointerException("input is null");
    }
    if (조건1) {
        return "result1";
    }
    if (조건2) {
        return "result2";
    }
    if (조건3) {
        return "result3";
    }            
    return "result4";
  }

 

- 중첩되는 if-else문이 없어서 조건문에 대한 처리가 한 눈에 살펴볼 수 있다.

- 유효하지 않는 조건을 미리 처리함으로써 본문에 더 집중할 수 있다.

 

Early Return Pattern 방식을 적용하였을 때 각 조건을 통과하면 본문에만 집중할 수 있어서 해당 Method 기능에 대해서 분석 및 이해하기 쉬워집니다.

Early Return Pattern 방식을 보여주는 이미지

적용하는 방법은 간단한 Early Return Pattern으로 문법 검사, 유효성 검사, 조건 검사 등 부적합한 기능의 요구사항을 처리한 뒤 올바른 메서드 방향으로 흘러가도록 유도하여 코드 유지보수성을 올려보는 것을 해보세요!


제가 생각하고 있는 Early Return의 대한 내용이었으며, 다른 분들의 생각이 궁금합니다.

 

댓글