더북(TheBook)

3.1.3 예제

예제 1

도서관 정보 관리 애플리케이션을 생각해 보자. 이런 애플리케이션에서는 ISBNInternational Standard Book Number(국제 표준 도서 번호)을 저장하고 처리하는 작업이 아주 중요하다. ISBN을 원시 타입 값(long integer/decimal)이나 문자열로 인코드하고 저장할 수 있다. 하지만 이 애플리케이션에서는 잘못된 선택이다. 왜 그럴까? 이유를 알아보기 전에 먼저 ISBN부터 잽싸게 짚고 넘어가자.

ISBN은 10자리와 13자리 두 가지 형태로 표현 가능하며, 두 가지 형태 사이에서 변환도 가능하다. ISBN의 자릿수에는 의미가 있다. 예를 들어, ISBN- 13자리는 접두어 요소, 등록 그룹 요소, 등록자 요소, 발행 요소, 체크섬 요소를 포함한다. ISBN 번호의 마지막 자리는 체크섬 자리로, 다음과 같이 계산한다. 첫 번째 자리에서 시작하여 홀수 자리의 값은 그대로 유지하며, 짝수 자리의 값은 3을 곱한다. 모든 값의 합을 10으로 나눈 나머지가 마지막 자리의 값이다. 따라서 10자리 숫자나 13자리 숫자가 주어지면, 유효한 ISBN 번호인지 검증할 수 있다. ISBN 숫자는 바코드로 변환 가능하며, 바코드 처리기는 ISBN 번호를 인식할 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.