'2007/03'에 해당되는 글 2건

  1. 2007/03/08 [asp.net] ISBNCheck (2)
  2. 2007/03/08 매쉬업 대회를 준비 중 발생한 문제점

이전 포스트의 계획과 같이 이번 포스트에서는 ISBN을 체킹하는 함수를 구현하여 보겠습니다.
ISBN에 대한 정보는 국립중앙도서관 문헌번호센터에서 확인하실 수 있습니다.

ISBN 소개 [국립중앙도서관 문헌번호센터]

위의 링크를 확인해 보시면 ISBN에 대해서 정확한 정보를 확인하실 수 있을 것입니다. 제가 이번 포스팅에서 구현하고자하는 코드는 ISBN이 2007년도 부터 13자리로 변경되었기 때문에 기존의 10자리 ISBN번호와 매칭하기 위함임을 알려드립니다. 현재까지는 978을 ISBN의 번호 앞에 사용하여 왔기에 10자리를 그대로 사용하였으나 ISBN 번호가 모자라나 봅니다. 곧 979를 사용할 수도 있음을 알아 내었습니다.
출판사가 10자리 ISBN을 여전히 상당수 확보하고 있는데, 왜 ISBN 10자리를 ISBN 13자리로 바꾸어야 하는가?
국제 ISBN 표준이 변하고 있으며, ISBN의 배정은 국제적인 기준에 따라 조직된 것입니다. ISBN 13자리로 변경하는 이유는 전세계의 일부 국가에서 기존의 번호를 사용할 수 있는 여유분이 점차 줄어들고 있기 때문입니다. 따라서 이 시스템을 유지하기 위해서는 979라는 접두부를 추가로 채택함으로써 번호의 이용가능성을 확장한 것입니다.

출판사가 978에서 사용했던 것과 같이 새로운 979에서도 동일한 발행자번호를 사용할 수 있는가?
아닙니다. 예를 들어 발행자번호가 “7383”이라면 앞으로는 978-89-7383으로 사용하며, 979-89-7383은 추후 센터에서 다른 발행자(출판사)에 배정할 예정이므로, 979번호는 발행자(출판사)에서 임의로 사용하시면 안됩니다. 현재 배정받은 발행자번호는 모두 978입니다.
-출처 : 국립중앙도서관 문헌번호센터-
이와 같은 이유로 2007년 1월 부터 13자리 ISBN번호를 사용하는 것 같습니다. 이는 곧 10자리와 13자리의 ISBN번호를 이제는 서로 변경할 수 없다는 뜻이 되겠지요 ^^ 하지만 기존의 발행자 번호는 978이기에 이전 포스트에서 네이버와 알라딘이 서로 다른 ISBN을 보여준 경우를 예로 들어 알라딘의 ISBN번호를 978로 변경하는 함수를 추가해 보겠습니다.

인터넷 쇼핑몰이라던가 ISBN을 보여주는 도서검색 서비스에서는 부가기호를 보여주지 않기 때문에 저또한 부가기호에 관한 것은 제외하고 글을 이어가도록 하겠습니다.
(도서검색서비스에서 부가기호도 같이 보여주었으면 하는 작은 바램을 가지고 있습니다. 이유인 즉슨 부가기호가 있으면 해당 책이 어느 분류에 속하는지 쉽게 알아볼 수 있을 것 같아서지요 ^^)

검색싸이트에서의 검색으로 ISBN 10자리와 13자리의 경우 check digit하는 방법이 틀리다는 것을 알아냈지만 신뢰할 수 있는 원본문서는 찾지 못하였습니다. 검색능력의 부재로 -_-;;

하지만 ISBN-10 의 경우 Modulo 11 알고리즘을 이용하여 계산한다는 것을 알아내었고 ISBN-13의 경우 Modulo 10 알고리즘을 사용하여 계산한다는 것을 찾아 내었습니다. 이 싸이트도 100% 신뢰할 수 있는 것은 아닙니다만, 한도 끝도 없는 검색을 하여야 하는지라 맞다고 생각하고 만들어 보도록 하겠습니다. (바코드 팔아먹는 회사인거 같은데 설마 틀릴리가;;)

참고 :
ISBN-10 Modulo 11 계산법 : http://www.activebarcode.com/codes/checkdigit/modulo11.html
ISBN-13 Modulo 10 계산법 : http://www.activebarcode.com/codes/checkdigit/modulo10.html

사용자 삽입 이미지
  • btnCheck_Click - check 버튼 클릭 이벤트 메소드
  • checkISBN13 - ISBN13 체크 메소드
  • checkISBN10 - ISBN10 체크 메소드
  • ISBN10toISBN13 - ISBN10 -> ISBN13으로 변경하는 메소드
  • getModulo10 - Modulo10 알고리즘 check digit 리턴 메소드
  • getModulo11 - Modulo11 알고리즘 check digit 리턴 메소드
사용자 삽입 이미지

알라딘 네이버 ISBN 비교화면

이전 포스트에서 같은 책임에도 불구하고 다른 ISBN번호를 가지고 있던것은 ISBN번호는 두개다 똑같은 것으로 판명이 되었습니다. 하지만 실제 도시정벌 6부 58권 뒤쪽의 ISBN번호는 어떻게 나와있을지 궁금하군요. 국립중앙도서관 문헌번호센터의 룰대로 13자리 ISBN번호를 가지고 있을 것만 같습니다. ^^

실행결과를 보시면 아시겠지만 ISBN 10자리 숫자를 넣을 경우에는 아래 New ISBN이라고 해서 새로운 ISBN번호를 보여주게 만들었습니다. 참고하시기 바랍니다.


ISBNCheck - [실행하기] [소스받기]

p.s. 개인 서버라 서버가 느릴 수 있습니다. 양해바랍니다. ^^



크리에이티브 커먼즈 라이선스
Creative Commons License
한동안 포스팅을 하지 못하였네요. 이리저리 꼬인일들이 많아서...
핑계아닌 핑계로 보이지만 바쁜건 사실이었습니다. -_-

이전의 포스트를 보면 매쉬업 경진대회에 많은 관심을 가지고 있음을 아실 수 있으실 것입니다. 매쉬업 경진대회를 출품하려고 이리저리 생각도 많이 해보고 테스트 프로그램도 만들어 본 결과 매쉬업 경진대회는 포기하여야 겠습니다.
저는 책 검색 관련 매쉬업 서비스를 만들어 보려고 준비중이었습니다.
우리나라에 나와있는 책검색관련 매쉬업서비스는 NAVER, DAUM, ALADDIN 정도가 되겠군요. 이 세개의 책검색을 매쉬업하는 서비스를 개발하려고 하였습니다.

서비스를 위해 부분테스팅을 하는 동안 몇개의 문제점이 생겼습니다.

첫째, 세개의 서비스가 제공하는 검색결과 데이터 매핑 문제입니다.
세개의 서비스가 제공하는 검색결과는 다른 것이 당연한 것입니다. 하지만 실제로 존재하는 책은 한권임에 불구하고 어느 한 서비스를 기준으로 하는 검색 서비스를 개발할 경우 ISBN을 기준으로 데이터를 매칭하는 문제가 있습니다. 다음과 네이버는 일일 검색 수를 5000회로 한정하고 있으며 때문에 ISBN을 이용하여 데이터를 매칭할 경우 서버의 과부하를 주거나 또는 해당 서비스의 많은 호출을 해야한다는 단점이 있을 수 있습니다.

둘째, 실제로 책을 사기 위해 검색할때는 본문 내용을 참고하는 경우가 많습니다만 OPEN API에서는 현재 이것을 제공하여 주지 않습니다.
세개의 서비스 모두 책의 상세 정보를 보기 위해선 제공하는 링크를 따라 새로운 웹페이지를 열고 책의 내용을 확인하여야 합니다. 다음,네이버,알라딘등의 서비스 제공업체에서는 CP와의 문제로 데이터를 제공하여 줄 수 없는 것 같습니다. 검색결과를 찾았음에도 불구하고 해당 링크로 넘어가야 제대로 된 데이터를 구경할 수 있다는 것은 사탕발림이나 다름없다고 생각합니다. 요만큼 보여주고 다른싸이트 가서 봐라 하는 서비스는 실용적일 수 없다고 생각합니다. 물론 익스플로어와 같은 브라우져에서 레이어를 이용하여 새 창을 열지않고 페이지 위에 보여줄 수 있긴 하지만 그러한 정보로 사용자를 이끌기엔 부족한 것 같습니다.

셋째, 서비스 업체의 데이터 신뢰도 문제입니다.
데이터검색 테스트를 하는 도중에 발견한 문제입니다. 저는 도시정벌이라는 만화책을 매우 좋아해서 도시정벌로 데이터를 검색하여 보았습니다. 네이버나 알라딘은 최신에 발행한 도시정벌 6부 58권까지 데이터가 검색이 되었습니다. 하지만 이 글을 쓰는 현시점에서 다음은 해당 도서를 검색하지 못하였습니다. (다음은 최신작이 2005년 5월 12일에 발행된 6부 23권이 최신작으로 나옵니다. -_-) 어찌됫는 이 문제는 데이터 매핑문제에 해당되는 것이니 더이상 거론하지 않겠습니다. 하지만 더욱더 신기한 문제가 있습니다.
사용자 삽입 이미지

알라딘과 네이버의 ISBN 비교

사용자 삽입 이미지

네이버간의 ISBN 번호 차이

위의 그림을 보시면 같은 책임에도 불구하고 ISBN번호가 다른 것을 알 수 있습니다. 저도 이부분에서 정말 당황했습니다. 같은 책임에도 불구하고 ISBN의 번호가 다르게 표기가 되었다는 사실에 ...-_-
 하지만 이부분은 검색하여 보니 알라딘의 오류로 판명이 되었습니다.
한국문헌번호센터에 따르면 2007년 1월 1일부터는 ISBN번호는 13자리를 따라야 한다고 공지하고 있습니다. [관련링크]

ISBN의 바코드 구분 번호인 978을 제외하면 1번 그림과 같이 코드자리수는 동일하게 됩니다. 하지만 마지막자리수가 틀린 것을 볼 수가 있습니다. 이 이유는 바로 check digit 문제입니다.
결국 두 회사모두 ISBN의 번호는 맞는 것으로 판명되었습니다. 하지만 알라딘에서는 국립중앙도서관 문헌번호센터의 룰을 따르지 않는 것으로 생각이 드는군요. 아니면 아직 시스템을 개발하고 있는 중인지도 모르겠습니다. -_-;;

아무리 그래도 출판사에서 책을 출판할때 ISBN 번호를 찍어서 출간하는데 왜 이러한 일이 발생하였는지는 의구심이 밀려들어 옵니다. 책에 표기된 ISBN번호는 동일할 것으로 생각되는데 말입니다.

이러한 이유들로 현재 서비스 개발을 할까 말까 심히 고려중입니다. ISBN번호를 매칭하는 프로그램은 쉽게 짤 수 있을 것 같지만 매핑문제에 따라 이러한 질문이 나올 수 있기 때문이죠.

"자신이 개발한 서비스가 기존의 네이버,다음,알라딘의 서비스보다 낫다고 하는 점을 말씀해보세요"

위의 질문에 점점 자신이 없어져 갑니다. 기존의 저의 개념은 책검색을 통합화 하여 많은 데이터를 보여주고 또한 트랙백같은 기능을 이용하여 실제 블로거분들의 책에 대한 후기들을 등록하는 방식으로 서비스를 개발하려고 하였었습니다. 위의 질문은 제가 자바공모전 본선에서 들어본 질문이라 더욱더 대답하기가 힘들어 지는 군요 (저러한 질문덕에 본선에서 입상하지 못하였던 기억이 -_-;;)

다음 포스팅은 ISBN관련 소스를 만들어 공개할 예정입니다. ^^

크리에이티브 커먼즈 라이선스
Creative Commons License