ISBN-10 에서 ISBN-13으로 바꾸기
책관련
isbn translation
1. 개요
- python에서는 isbn library가 있는데 google sheet에서 사용하고 싶은데 없다.
- 자작하기로 하고 표준을 알아봤다
- 찾아보니 예제 코드가 많다
2. 표준 문서 - 번역
ISBN Information
ISBN 10 To ISBN 13
Bill Pearce. 2015년 3월 12일 마지막 업데이트
ISBN-10 vs ISBN-13
- ISBN-10은 구형 표준으로 신규 발행되는 책에는 더이상 발행되지 않습니다
- ISBN-10은 10자리 숫자를 사용하며 2007년 1월 1일에 ISBN-13으로 대체되었습니다
- 그 이후 발행된 모든 새 ISBN 번호는 13자리로 구성됩니다
- ISBN-10에 대한 자세한 내용은 ISBN-10 페이지를 참조하세요
- 마찬가지로, ISBN-13에 대한 자세한 내용은 ISBN-13 페이지를 참조하세요
10 Digits, 13 Digits? What About Spaces And Hyphens?
- 여기서 논의하고자 하는 주제에 집중하기 위해 다음 문자들은 무시합니다
- ISBN 번호 주변의 공백문자
- 하이픈
- ISBN이라고 써진 레이블
- 단 하나의 예외만 허용
- 일부 10 자리 ISBN은 숫자가 아닌 문자 x ( 혹은 X )를 마지막 문자로 허용합니다
- 허용하는 이유에 대해서는 ISBN-10 페이지를 참조하세요( 위에 링크에 있음)
The Conversion Of ISBN-10 to ISBN-13
- 아래 7 단계 과정에서 하려고 하는 것들
- 10 자리 ISBN을 가져오기 (10 자리)
- 마지막 문자를 뺌 (9 자리)
- 앞에 “978” 붙이기 (12 자리)
- 체크 숫자를 새로 계산해서 마지막에 붙이기 (13 자리)
- 시작합니다
- 다음의 ISBN-10 예제로 시작합니다
1
1861972717
- 10자리 ISBN-10 을 가져와서 마지막 1자리만 뺍니다
- 마지막 문자는 10자리에서만 의미있는 Check 숫자라서 그냥 버려도 됩니다
- 우리는 13자리에서 필요한 새로운 숫자를 이어지는 3 ~ 6 단계에서 계산할겁니다.
- Check 숫자에 관한 내용은 ISBN Check Digit 에서 확인하세요
1
186197271
- “978”을 남은 9자리 숫자에 붙입니다 ( 978을 붙이는 이유는 ISBN-13 페이지를 참고하세요)
1
978186197271
- 이 단계부터 다음 3번의 단계동안 Check 숫자를 계산해야 합니다
- 계산된 Check 숫자는 2단계에서 넘어온 12자리 숫자뒤에 덧붙입니다
- 12자리 숫자 각각에 숫자 하나를 곱합니다
- 첫번째 숫자는 1을 곱하고, 두번째 숫자는 3을 곱합니다
- 세번째 숫자는 다시 1을 곱하고, 네번째 숫자는 다시 3을 곱하고..이런 식으로 계속합니다
- 1과 3을 번갈아 곱하면서 12번째 숫자까지 진행합니다.
- 즉 다음과 같습니다
1 2 3 4 5 6 7 8 9 10 11 12
9 x 1 = 9 7 x 3 = 21 8 x 1 = 8 1 x 3 = 3 8 x 1 = 8 6 x 3 = 18 1 x 1 = 1 9 x 3 = 27 7 x 1 = 7 2 x 3 = 6 7 x 1 = 7 1 x 3 = 3
- 이제 단계 3 에서 얻은 12개의 합 결과를 모두 더합니다
1
9 + 21 + 8 + 3 + 8 + 18 + 1 + 27 + 7 + 6 + 7 + 3 = 118
- 단계 4의 결과를 가져와서 10으로 모듈러 나눗셈을 합니다
- 10으로 모듈러 나누기를 한다는 것은 10단위 이상을 버리는 것과 같습니다
- 10으로 나누었을때 나머지의 의미입니다
- 나누기를 했을때 소수점 이하의 값을 내는 decimal division 방식이 아님을 주의하세요
-
118 mod 10 = 8
118 을 10으로 나누면 몫은 11 나머지는 8
입니다. 우리는 나머지 8에만 관심이 있습니다1
8
- ISBN-13의 Check 숫자를 계산하는 마지막 단계입니다
- 단계 5에서 결과를 가져옵니다
- 결과가 zero이면 Check 숫자는 0 입니다
- 결과가 zero가 아니면 10 에서 단계 5의 결괏값을 뺍니다
- 그 결과가 Check 숫자입니다
1
10 - 8 = 2
- ISBN-10 에서 ISBN-13으로 바꾸는 마지막 단계입니다
- 단계 6의 결괏값을 단계 2에서 얻은 12자리값 뒤에 덧붙입니다
- 결과가 나왔습니다
1
9781861972712
- 다음의 ISBN-10 예제로 시작합니다
- 우리가 한 일 요약
- 10자리 ISBN 숫자에서 마지막 문자를 하나 뺀다 (step 1)
- 맨 앞에 “978”을 붙인다 (step 2)
- Check 숫자를 계산해서 (step 3 to 6) 맨 뒤에 붙인다 (step 7)