Programming/Java
사업자번호의 유효성 검사
d-e-v-j
2024. 9. 25. 02:00
반응형
한국에서 사업자 번호의 유효성 검사를 하는 방법을 알아보자
사업자 번호의 구성
사업자 등록번호는 총 10자리로 숫자로 이루어져 있다 ( 123 - 45 - 67890 )
유효성 검사 알고리즘
앞의 9자리를 사용하여 검증값을 계산한 뒤 마지막 자리와 일치하는지 확인
1. 각 자리에 가중치 부여
자리 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
가중치 | 1 | 3 | 7 | 1 | 3 | 7 | 1 | 3 | 5 |
2. 계산 방법
- 사업자 번호의 각자리 수와 가중치를 곱하여 더한다.
- 마지막 9번째 자리는 가중치를 곱한 뒤, 그 값을 10으로 나눈 나머지를 합산한다.
예시
1×1 + 2×3 + 3×7 + 4×1 + 5×3 + 6×7 + 7×1 + 8×3 + (9×5)/10의 나머지 = 총합
3. 총합 계산
- 총합에서 10으로 나눈 나머지를 구하고, 이를 10에서 뺀 값을 구한다.
10 - (총합 % 10)
4. 검증 번호 확인
- 이 값이 마지막 자리와 일치하면 유효한 사업자 번호이다.
알고리즘 JAVA 예시 코드
public class BusinessNumberValidator {
public static boolean isValidBusinessNumber(String businessNumber) {
if (businessNumber == null || businessNumber.length() != 10) {
return false;
}
int[] weights = {1, 3, 7, 1, 3, 7, 1, 3, 5};
int sum = 0;
// 앞의 9자리 가중치 적용 계산
for (int i = 0; i < 9; i++) {
sum += Character.getNumericValue(businessNumber.charAt(i)) * weights[i];
}
// 9번째 자리 값의 특수 처리
sum += (Character.getNumericValue(businessNumber.charAt(8)) * 5) / 10;
// 마지막 검증 계산
int checkDigit = (10 - (sum % 10)) % 10;
// 마지막 자리와 계산된 값이 동일한지 비교
return checkDigit == Character.getNumericValue(businessNumber.charAt(9));
}
public static void main(String[] args) {
String businessNumber = "1234567890";
if (isValidBusinessNumber(businessNumber)) {
System.out.println("유효한 사업자 번호입니다.");
} else {
System.out.println("유효하지 않은 사업자 번호입니다.");
}
}
}
이 방법은 단순한 유효성 검사로, 실제 사업자 번호의 등록 여부는 국세청 등을 통해 확인해야 한다.
728x90
반응형
LIST