프로젝트

이 책, 어디서 구할까 사용 중

한 권을 도서관부터 이북까지 한 화면에서 견준다

웹

책 한 권을 두고 탭 여섯 개를 열던 것을
한 화면으로

제목을 치면 도서관에 있는지부터 본다. 없으면 중고매장, 온라인 중고, 새 책, 이북 순으로 내려간다. 값과 재고가 한 줄에 나란히 서서 어디서 구할지가 바로 정해진다.

5곳한 번에 훑는 곳 — 도서관, 중고매장, 온라인 중고, 새 책, 이북가까운 순도서관 추천 기준 — 권수가 아니라 내 역에서의 거리실재고중고매장은 「가서 확인」이 아니라 지금 있는 값
데미안을 검색한 화면. 풍무도서관에 5권 있다는 결론과 노선도, 그 아래 전자도서관·중고·이북·새 책 줄
화면은 기준역을 사우로 두고 찍었다.

순서가 답이다

훑는 곳이 다섯인데 화면은 위에서 아래로 한 줄씩이다. 그 순서가 곧 「어디서 구할까」의 답이다.

도서관에 있다

그걸로 끝이다. 어느 관에 몇 권인지, 내 역에서 가까운 순으로 보여 주고 도서관 창을 바로 연다.

도서관에 없다

중고매장으로 내려간다. 지나는 길의 매장만 골라 두었기 때문에 목록에 뜨면 들르면 된다.

매장에도 없다

온라인 중고, 새 책, 이북 순으로 값이 선다. 정가에서 얼마나 빠지는지가 초록으로 붙는다.

중고는 「가서 확인」이 아니다

중고 상세. 매장에서는 강서NC점 5,200원, 온라인은 판매자 중고 3,000원부터
매장별 등급과 값. 값을 못 읽은 매장만 「가서 확인」으로 남는다.

알라딘 중고매장 재고는 검색 결과 블록에 안 들어 있다. 중고매장 탭에서 상품 단위로 따로 읽어야 매장별 실제 값과 등급이 나온다. 그걸 읽고 나서야 「가서 확인」 문구를 지울 수 있었다.

자세한 동작

같은 책인데 판이 여럿이다

ISBN 으로만 찾으면 큰글씨책처럼 ISBN 이 다른 판을 놓친다. 서명과 저자로 한 번 더 찾아 합치고 등록번호로 중복을 지운다 — 「연금술사」가 7권 중 4권만 잡히던 것이 그래서였다.

교보에서 값이 안 보인다

파싱이 틀린 게 아니라 그 책이 품절인 것이다. 품절은 「품절 · 없음」으로 흐리게 두고 요약과 바로드림에서 뺀다. 상세 페이지 값을 끌어오면 살 수 있는 것처럼 보여서 되돌렸다.

검색 결과가 엉뚱하다

교보 순서는 판매량과 광고를 반영한다. 완전일치 1000점, 판형 차이 900, 접두 800, 포함 700, 세트와 합본 −300 으로 다시 세운다.

설정을 바꾸고 싶다

도서관과 중고매장은 브라우저에만 저장되고 요청마다 같이 간다. 서버는 아무것도 기억하지 않는다.

쓰는 법

python3 server.py 로 localhost:8913. 파이썬 표준 라이브러리만 쓰고 의존성이 없다. Vercel 에도 같은 파일이 서버리스 함수로 올라간다.

만들면서 밟은 함정 — 같은 책에 다른 답을 주던 공개 API, 지하철 노선 하나로만 잰 거리, OSError 를 안 거치던 응답 끊김 — 은 저장소의 HISTORY.md 에 적어 뒀다.