정책 페이지 다국어 링크 404 문제 고친 이야기
목차
정책 페이지(약관, 개인정보처리방침, 저작권, 연락처, About, 정책) 6종에 다국어 라우트를 추가했다. /de/terms, /fr/privacy 같은 언어별 URL이 404로 떨어지던 걸 해결한 작업이다.
왜 정책 페이지만 빠졌을까
보통 다국어 사이트를 Astro 같은 정적 사이트 생성기로 구축할 때, 라우팅 구조는 두 가지 패턴이 있다. 하나는 중앙화된 라우터(동적 라우팅)에서 [lang] 파라미터를 받아 한 컴포넌트가 모든 언어를 처리하는 방식이고, 다른 하나는 빌드 타임에 각 언어별 경로를 미리 생성하는 방식이다. 우리는 후자를 택했는데, 메인 콘텐츠들은 이미 적용돼 있었고 정책 페이지들만 누락된 상태였다.
이런 상황은 실은 흔하다. 특히 정책 페이지나 운영 페이지는 개발 초기에 "한국어만 필요하니까"라는 생각으로 시작하다가, 나중에 국제 사용자가 들어오면서 급하게 대응하는 케이스가 많다. 우리도 비슷했던 것 같다. 6개 페이지가 각각 AboutBody.astro, TermsBody.astro 같은 바디 컴포넌트 형태로 분리돼 있었기 때문에, 라우팅 구조를 수정하려면 각 페이지별로 다국어 버전을 명시적으로 선언해야 했다.
라우트 추가 작업의 구조
핵심은 Astro의 정적 라우팅 특성을 이해하는 것이었다. 정책 페이지들이 바디 컴포넌트로 구분되어 있다는 건, 각 페이지마다 독립적인 라우팅 진입점이 있다는 뜻이다. 따라서:
- 기존 라우트:
/terms,/privacy,/contact등 (한국어만) - 추가 라우트:
/[lang]/terms,/[lang]/privacy등 (모든 지원 언어)
를 각 *Body.astro 파일에 동시에 선언해야 했다. 이렇게 하면 빌드 타임에 /de/terms, /fr/privacy, /ja/contact 같은 모든 조합이 미리 생성된다.
실제 변경은 여섯 파일 모두에 같은 패턴이 반복되는 작업이었다. 한 파일의 라우트 로직을 수정하면 나머지 다섯 파일에도 동일하게 적용해야 했는데, 이렇게 반복되는 변경은 일관성 체크가 중요했다. 코드 리뷰 때 "이 여섯 파일이 모두 동일한 구조를 가지고 있는가"를 확인해야 했고, 나중에 유지보수 할 사람이 "왜 여섯 곳을 모두 고쳐야 하는가"를 이해할 수 있도록 커밋 메시지와 주석을 명확하게 남겼다.
사용자와 팀에 미친 영향
이 수정은 단순한 기술 문제는 아니었다. 독일, 프랑스, 일본 등 여러 지역에서 우리 사이트에 접속하는 사용자들이 정책 페이지로 가려고 하면 404를 만나는 상황이었다. 특히 법적으로 의무인 개인정보처리방침이나 약관이 해당 언어로 접근 불가능하다면, 규제 리스크도 있고 사용자 신뢰도 떨어진다.
팀 입장에서는 이런 작은 버그들이 "모르고 있던" 경우가 많다. 우리 팀이 주로 한국어 환경에서 테스트하기 때문에, 다국어 경로는 뒷전이 되기 쉽다. 그래서 이번에 "모든 언어 조합을 정책 페이지에서도 시험해야 한다"는 체크리스트 항목을 추가했다. 정적 사이트 생성 방식에서는 빌드 로그나 사이트맵만 봐도 "누락된 라우트"를 쉽게 찾을 수 있으니까.
비슷한 상황에서의 일반론
다국어 라우팅을 다루다 보면 자주 맞닥뜨리는 패턴이 몇 가지 있다:
- 부분 적용의 함정: "메인 콘텐츠는 완료했으니까 괜찮을 거야"라는 생각이 문제다. 실은 정책, 운영 페이지, 푸터, 에러 페이지 같은 곳들도 체크해야 한다.
- 빌드 타임 검증: 정적 생성 방식을 쓸 때는 빌드 결과를 파싱해서 "예상한 모든 언어 조합이 생성됐는가"를 자동으로 확인하는 게 좋다.
- 컴포넌트 구조의 영향: 바디 컴포넌트가 분리되어 있으면 각각에 라우트를 선언해야 하는데, 반대로 통합 라우터 패턴이면 한 곳만 수정하면 된다. 설계 시점에 이를 고려하면 나중 작업이 줄어든다.
마무리
결국 이건 "작은 버그, 큰 영향"의 전형이었다. 사용자 입장에서는 단지 "정책 페이지가 내 언어로 안 뜬다"는 불편함이었지만, 법적 리스크와 신뢰 문제로 번질 수 있었다. 팀 차원에서는 다국어 체크리스트를 더 촘촘히 하는 계기가 됐고, 비슷한 일이 다시 생기지 않도록 자동화 검증을 강화했다. 다국어 지원이 들어간 사이트라면, 모든 레이어(콘텐츠뿐 아니라 정책, 에러, 운영 페이지까지)에서 빠짐없이 라우팅을 확인하는 습관이 정말 중요하다는 걸 다시 한번 깨달았다.
🛒 이 글과 어울리는 추천 상품
*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.
댓글 0
첫 댓글 달아줘.