[Java] 코드 가독성을 높이는 비결: 매직 넘버와 매직 스트링을 피하자!

민경담·2024년 7월 29일

자바 리팩토링

목록 보기
1/6
post-thumbnail

들어가며

프로그래밍에서 매직 넘버매직 스트링은 코드의 가독성과 유지보수성을 저해하는 주요 원인 중 하나입니다.
이번 포스팅에서는 매직 넘버와 매직 스트링이 무엇인지?, 그리고 이를 개선하는 방안에 대해 알아보겠습니다.

매직 넘버(Magic Number)

매직 넘버는 코드 내에 하드코딩된 숫자를 의미합니다.
이러한 숫자는 그 의미를 알기 어렵고 코드를 이해하는 데 혼란을 야기할 수 있습니다.

아래 예시를 보면서 알아보겠습니다.

public class MagicNumberExample {
    public static void main(String[] args) {
        int salary = 50000;
        double tax = salary * 0.2;  // 0.2라는 매직 넘버가 사용됨
        System.out.println("Tax amount: " + tax);
    }
}

위의 코드에서 0.2는 매직 넘버입니다.
해당 숫자가 무엇을 의미하는 지는 바로 알기 어렵습니다.

아래의 코드는 위의 코드를 리팩토링을 한 코드입니다.

public class MagicNumberExample {
    private static final double TAX_RATE = 0.2;  // TAX_RATE라는 상수로 대체

    public static void main(String[] args) {
        int salary = 50000;
        double tax = salary * TAX_RATE;  // 의미 있는 상수를 사용
        System.out.println("Tax amount: " + tax);
    }
}

위의 코드에서 TAX_RATE라는 의미 있는 이름의 상수를 사용하여 가독성을 높였습니다.

매직 스트링(Magic String)

매직 스트링은 코드 내에 하드코딩 된 문자열을 의미합니다.
이 또한 매직 넘버와 동일하게 코드의 가독성을 떨어뜨리고, 유지 보수를 어렵게 만듭니다.

아래 예시를 보면서 알아보겠습니다.

public class MagicStringExample {
    public static void main(String[] args) {
        String role = "admin";

        if (role.equals("admin")) {  // "admin"이라는 매직 스트링이 사용됨
            System.out.println("You have admin access.");
        }
    }
}

위 코드에서 admin 은 매직 스트링입니다.
매직 스트링을 리팩토링을 진행하면 아래의 코드와 같이 구현할 수 있습니다.

public class MagicStringExample {
    private static final String ROLE_ADMIN = "admin";  // ROLE_ADMIN이라는 상수로 대체

    public static void main(String[] args) {
        String role = ROLE_ADMIN;

        if (role.equals(ROLE_ADMIN)) {  // 의미 있는 상수를 사용
            System.out.println("You have admin access.");
        }
    }
}

위 코드에서는 ROLE_ADMIN 이라는 의미 있는 이름의 상수를 사용하여 가독성을 높였습니다.

마무리

매직 넘버와 매직 스트링을 의미 있는 상수로 치환하면 코드의 가독성과 유지 보수성을 크게 향상 시킬 수 있습니다.
항상 코드를 작성할 때 이러한 점을 염두에 두고, 매직 넘버와 매직 스트링을 피하도록 노력하면 깨끗한 코드 즉, 클린 코드를 구현하는 데 도움이 될 것이라고 생각됩니다.

profile
백엔드 개발자, 민경담입니다.

0개의 댓글