매직 넘버란?
개발서적 등을 읽다보면 '매직 넘버(Magic Number)' 라는 말이 나온다. 이 말의 뜻은 무엇일까?
간단히 설명하자면, '의미 있는 이름의 상수로 대체될 수 있는 숫자' 를 말한다.
이를테면, 은행에서 이자를 구하는 프로그램 코드 중간에 2.7182818
이라는 숫자가 등장했을 때, 수학을 좀 아는 사람은 이를 자연 상수(Euler's number) 로 생각할 것이다. 그런데 사실 작성자의 의도는 그냥 은행 정책에 따른 이율을 구하기 위해 필요한 숫자를 그냥 넣은 것이었다면? 이 경우 왜인지 추측하기 굉장히 헷갈리고 결국 이 코드를 작성했던 사람에게 가서 물어보는게 가장 정확하다. 이미 퇴사했다면 아마 진정한 의미는 영영 알 수 없을지도 모른다.
이러한 경우들 때문에 소위 말하는 '매직 넘버' 는 코드에서 제거하는 것이 권장되는 안티패턴이다. 매직 넘버가 있다면, 친절한 이름의 상수로 바꿔주는 것은 어떨까?
매직 넘버 사용
add(2.7182818);
매직 넘버 제거로 오일러 상수를 쓰려고 했던 의도가 분명해진다.
const EULER_NUMBER = 2.7182818;
add(EULER_NUMBER);
레퍼런스
'용어 (개발용어)' 카테고리의 다른 글
시멘틱 버저닝 (Semantic Versioning) 이란? (feat. package.json 표현 방식) (1) | 2022.11.06 |
---|---|
루프백 아이피 (loopback ip) 란? (0) | 2022.11.05 |
커멘드 라인 표기법 (Command Line Notation) 이란? (0) | 2022.10.29 |
샤딩 (Sharding) 이란? (0) | 2022.06.30 |
서버리스 컴퓨팅 (Serverless Computing) 이란? (0) | 2022.06.30 |