Spring

Early return Pattern(얼리 리턴 패턴)으로 좋은 조건문 작성하기

기석김 2024. 5. 19. 23:36

Early return Pattern(얼리 리턴 패턴)이란?

  얼리 리턴 패턴이란 말 그대로 빠른 리턴이다.

  특정 조건에 부합하지 않으면 바로 return을 하도록 하는 패턴이다.

  코드를 단순하게 만들어주는 패턴이다

  if/else 대신 if/return을 사용한다

  코드를 읽을 때 return 을 발견하면 아래쪽 코드를 확인하지 않아도 된다

  가독성이 향상된다

 

Early return Pattern(얼리 리턴 패턴) 예시

Early Return 패턴을 적용하지 않은 코드 (극단적 if 문)

public String validateUser(String username, String password) {
    if (username != null && !username.isEmpty()) {
        if (password != null && !password.isEmpty()) {
            if (username.equals("admin")) {
                if (password.equals("1234")) {
                    return "환영합니다, 관리자님!";
                } else {
                    return "비밀번호가 틀렸습니다.";
                }
            } else {
                return "잘못된 사용자 이름입니다.";
            }
        } else {
            return "비밀번호를 입력해 주세요.";
        }
    } else {
        return "사용자 이름을 입력해 주세요.";
    }
}

Early Return 패턴을 적용한 코드

public String validateUser(String username, String password) {
    if (username == null || username.isEmpty()) {
        return "사용자 이름을 입력해 주세요.";
    }

    if (password == null || password.isEmpty()) {
        return "비밀번호를 입력해 주세요.";
    }

    if (!username.equals("admin")) {
        return "잘못된 사용자 이름입니다.";
    }

    if (!password.equals("1234")) {
        return "비밀번호가 틀렸습니다.";
    }

    return "환영합니다, 관리자님!";
}

 

Early Return을 적용하지 않은 코드

  조건문이 중첩되어 있어서 각 조건을 만족할 때마다 더 깊게 들어간다  코드가 복잡해지고 가독성이 떨어진다.

모든 조건을 만족하지 않으면 다음 조건으로 넘어가는 방식이므로, 코드의 흐름을 이해하기 어렵다

중첩된 구조로 인해 새로운 조건을 추가하거나 기존 조건을 수정할 때 실수가 발생하기 쉽다

모든 조건이 하나의 중첩된 구조 안에 있으므로 한눈에 모든 조건을 볼 수 있다

중첩된 구조 덕분에 조건이 단계적으로 어떻게 흐르는지 명확히 보인다

 

Early Return을 적용한 코드

 조건을 일찍 반환하여 중첩된 구조를 피하고,  각 조건이 독립적으로 처리된다. 코드의 가독성을 크게 향상시킨다

각 조건이 명확하게 분리되어 있어서 코드의 흐름을 쉽게 이해할 수 있다

조건이 독립적이기 때문에 수정이나 추가가 더 쉽고, 실수를 줄일 수 있다

반환문이 여러 곳에 있어 함수의 종료 지점을 여러 번 확인해야 한다

여러 조건을 연속해서 검사하면 코드가 길어질 수 있다

결론🔥

Early Return 패턴은 코드를 간결하고 명확하게 만들어 주며, 유지 보수와 디버깅에 유리하다.

중첩된 조건문은 한눈에 모든 조건을 볼 수 있지만, 깊어진 중첩은 가독성을 저해하고 유지 보수를 어렵게 할 수 있다.

나는 Early Return 패턴으로 코드를 작성하는 것을 따를 거지만 , 적절히 선택하는 것도 중요하다