다국어 약관 페이지 추가
목차
약관 페이지를 영어, 일본어로 다국어 지원하고 Footer에 링크를 추가했다. 간단한 작업처럼 보이지만 뒤에는 국제화 아키텍처 설계와 사용자 경험, 법적 요구사항의 밸런싱이 들어가 있다.
작업 배경: 왜 이것이 필요했나
서비스가 글로벌로 확장되면서 기능만으로는 부족해진다. 특히 약관(Terms of Service)이나 개인정보처리방침 같은 법률 문서는 각 국가와 언어권별로 제공해야 할 의무가 있다. 우리 서비스도 영어권 사용자, 일본어권 사용자가 늘어나면서 "우리 약관이 내 언어로 있나?" 하는 질문이 나오기 시작했다. 단순한 편의성 차원을 넘어 법적 정당성의 문제기도 했다.
여기서 중요한 결정이 있었다. 약관 페이지를 추가할 때 그냥 영어 번역본 하나를 더 붙여서 끝낼 수도 있지만, 우리가 선택한 건 "다국어 시스템 위에서 일관되게 관리 가능한 구조"였다. 나중에 스페인어, 독일어를 추가할 때도 같은 패턴을 반복할 수 있어야 한다. 기술 부채를 남기지 않으면서 동시에 비즈니스 요구에 대응하기.
구현: 기존 i18n 위에 올리기
src/lib/i18n.ts를 확장해서 약관 페이지가 기존 다국어 라우팅 체계에 자연스럽게 통합되도록 했다. Astro의 파일 기반 라우팅을 활용하면:
src/pages/terms.astro # 기본 (fallback)
src/pages/en/terms.astro # 영어 버전
src/pages/ja/terms.astro # 일본어 버전
이렇게 구조화하면 사용자가 접근하는 언어 설정에 따라 자동으로 올바른 버전이 노출된다. 라우팅 로직을 조건문으로 일일이 추가할 필요가 없다. 프레임워크가 파일 구조를 보고 판단한다. 미들웨어나 복잡한 메타데이터 관리 없이도 일관성이 보장되는 방식이다.
동시에 Footer 컴포넌트에 약관 링크를 추가했다. Footer는 모든 페이지의 맨 아래 공통으로 노출되는 영역이다. 약관 같은 메타 콘텐츠는 사용자가 필요할 때 "여기 있을 거겠지?"라고 기대하는 곳이 Footer다. 상단 네비게이션에 박기는 어색하고, 본문 중간에 박을 수도 없다. Footer는 법적 문서와 회사 정보의 자연스러운 집결지다.
기술 리더로서의 회고: 작은 기능일수록 설계를 신경 써야 한다
이 작업을 하면서 느낀 점은, 기능이 작다고 해서 설계가 대충이어서는 안 된다는 것이다. 약관 페이지 하나라도, 나중에 스페인어나 중국어를 추가해야 할 때를 고려해서 만들어야 한다. 새 언어를 추가할 때 다른 부분을 건드리지 않고 페이지 하나만 추가하면 되는 방식이어야 한다.
i18n 시스템이 이미 있었다면, 약관도 그 위에 올리는 게 맞다. 새로운 시스템을 따로 만들면 나중에 "어떤 페이지는 i18n으로, 어떤 페이지는 따로" 이런 식으로 팀의 인지적 부담이 커진다. 같은 문제를 푸는 방법이 여러 개 있으면 개발 속도가 느려지고, 신입 팀원도 혼란스러워한다.
Footer 같은 공통 컴포넌트에 링크를 배치할 때도 많은 결정이 필요하다. "이게 진짜 여기에 있어야 하나?", "사용자가 기대하는가?", "다른 링크들과의 정보 계층이 맞나?" 약관은 개인정보처리방침이나 이용약관 같은 친구들과 함께 있어야 한다. 이들을 한정된 공간에 배치할 때 시각적 가중치, 순서, 그룹화를 고려해야 한다.
작은 기능이라도 "이걸 확장한다면?", "6개월 뒤 유지보수는?", "팀원이 이해하기 쉬운가?" 같은 질문을 던지면서 설계하는 습관이 중요하다. 그게 결국 기술 조직의 속도와 만족도를 결정한다.
🛒 이 글과 어울리는 추천 상품
*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.
댓글 0
첫 댓글 달아줘.