Java에서 긴 숫자를 underscore로 구분하기
Source: Dev.to
소개
거대한 숫자의 자릿수를 읽다 보면 눈이 잘 안 가는 경우가 얼마나 많나요? Java에서는 리터럴에 밑줄(_)을 넣어 가독성을 즉시 향상시킬 수 있습니다. 이 방법은 재무 상수, 테스트 카운터, 시스템 한계값 등에 유용합니다. 로직 자체를 바꾸지는 않지만 코드 검토를 훨씬 쉽게 만들어 줍니다.
리터럴에서 밑줄 사용
Java 7부터 정수형이나 long 리터럴의 숫자 사이에 밑줄(_)을 사용할 수 있습니다.
- 숫자의 시작이나 끝에 밑줄을 넣을 수 없습니다.
- 소수점 바로 앞이나 타입 표기(
L,F,D) 바로 앞에 밑줄을 넣을 수 없습니다. - 16진수와 2진수 리터럴에서도 사용할 수 있지만, 10진수에서는 보통 더 안전합니다.
프로젝트 전체에서 일관성을 유지하면 팀이 숫자의 의도를 빠르게 파악할 수 있습니다.
실용적인 규칙으로는 세 자리씩(천, 백만 등) 묶는 것이 있습니다. long이면 끝에 L을 붙이고, 이미 특별한 의미를 가진 값(ID, 문자열 형태 숫자 등)에는 밑줄을 사용하지 않는 것이 좋습니다.
예시
public class ReadableLongs {
public static void main(String[] args) {
long max = 9_223_372_036_854_775_807L;
long yearlyRevenue = 1_234_567_890_123_456L;
System.out.println(max);
System.out.println(yearlyRevenue);
}
}
권장 행동
- 코드에서
long리터럴을 최소 세 개 찾아보세요. - 위에서 설명한 규칙에 맞게 밑줄을 사용하도록 리팩터링하세요.
- 컴파일하고 테스트를 실행해 모든 것이 동일하게 동작하는지 확인하세요.
원한다면 작은 PR을 열어 팀과 함께 포맷 규칙을 검토해 보세요.