데모홈페이지·CMS
도서 통합 검색과 예전 QR 주소 301 검증
가상의 두 도서 사이트를 합친 웹 앱에서, 인쇄된 예전 QR 주소 50개가 새 주소로 넘어가는지 확인합니다.
book-portal-demo-158927-production.up.railway.app

열어 보시면 이런 걸 확인하실 수 있습니다
- 완성된 장면을 열면 예전 주소 50개 검증 보고서 맨 위에 실패한 3개 행이 보입니다
- [통합 검색]에서 '바다'를 찾으면 교과서·참고서·단행본이 한 목록에 나옵니다
- [자료·노출]에서 고정 자료의 [위로]를 누르면 메인 미리보기 순서가 바로 바뀝니다
- [주소 넣어 보기]에서 예시 주소를 확인하면 걸린 규칙과 응답 번호, 보낼 주소가 표시됩니다
만들면서 풀어야 했던 것
- 301 검증 결과를 화면에 숫자로 적어 두면 실제로 넘어가는지는 알 수 없습니다. 앱이 인쇄된 예전 주소마다 자기 자신에게 실제 요청을 보내 첫 응답 번호, 넘어간 횟수, 도착한 주소를 읽어 판정하게 했고, 처음 상태에서는 시연용으로 일부러 넣은 실패 3건(다른 도서로 가는 주소·302 응답·두 번 넘어가는 주소)을 포함해 50개 중 47개가 통과합니다. 302로 답하는 규칙을 301로 고치고 다시 검증하면 그 행이 통과로 바뀝니다.
- 가상의 구 시스템 테이블은 도서마다 작가 칸이 하나뿐이라, 그 위에 Flyway 마이그레이션으로 작가·분류·자료를 여러 개씩 잇는 연결 테이블을 더하고 구 칸의 값을 옮겨 담았습니다. 구 테이블은 지우지 않고 남겼고, 관리자 화면에서 바꾼 내용은 통합 검색과 도서 상세에 그대로 나타납니다. 데모 DB는 앱 안에 내장된 H2(MySQL 호환 모드)라 실제 MySQL 서버에는 연결하지 않으며, 앱을 다시 시작하면 처음 데이터로 돌아갑니다.
- 작가 목록 CSV 파일은 반영하기 전에 점검합니다. 견본 파일 12행을 반영할 6행과 반영하지 않을 6행으로 나눠 행 번호와 고치는 법을 보여 주고, [반영]하면 작가 3명과 도서 연결 3건이 추가되며 [되돌리기]로 모두 원래대로 돌아갑니다. 도서·작가·자료·QR 주소는 모두 이 데모를 위해 만든 가상 자료입니다.
비슷한 걸 만들어 보고 싶으시다면
구간 견적으로 규모를 먼저 가늠해 보시거나, 조건을 적어 보내 주시면 범위를 정리해 회신드립니다.