magic number 사용을 최대한 자제하자.

2015-03-30 11:39

다음 소스 코드를 한번 보자.

public class Member {
    private int mId = -1;

위 코드의 mId 값은 추리로 풀어야 하는 위험한 코드이다. -1은 대체 어떤의미인가? 또 다른 코드를 보자.

req.setAttribute("apply_result", -3);

위 코드의 -3은 무엇을 의미하는가?

이와 같이 임의의 숫자를 사용함으로써 소스 코드를 읽기 어렵게 만든다. 첫 번째 코드는 변수명을 좀 더 명확하게 지어야 하며, 변경되지 않는 값이라면 상수(static final)로 변환하는 것도 좋은 방법이다. 두 번째 코드의 -3도 상수로 빼는 것이 더 나은 코드가 될 수 있겠다.

하지만 항상 이 원칙을 따라야 하는 것은 아니다. 어떤 경우에는 숫자 값을 직접 사용하는 것이 소스 코드의 가독성을 위해 더 좋은 경우도 있다. 이와 관련한 사례들은 http://stackoverflow.com/questions/47882/what-is-a-magic-number-and-why-is-it-bad 문서를 보면 참고할 수 있다.

프로그래밍 구현에서 100% 정답이라고 확신할 수 있는 경우는 없다. 현재 소스 코드의 Context에서 어느 방법이 최선의 방법인지를 항상 고민하는 습관을 가지면 좋겠다.

0개의 의견 from FB

0개의 의견 from SLiPP

의견 추가하기

연관태그

← 목록으로