개발 slecs

법률 페이지 간 쉬운 이동 환경 만들기

목차

다양한 법률 문서(이용약관, 개인정보 정책 등)를 관리하는 페이지 렌더러에 형제 문서 네비게이션을 추가했다. 사용자가 한 정책 페이지에서 관련된 다른 문서로 쉽게 이동할 수 있도록 개선한 작업이다.

왜 형제 문서 네비게이션이 필요했나

법률·정책 문서는 보통 한 번에 읽는 게 아니다. 이용약관을 읽던 사용자가 궁금증에 개인정보 처리 방침을 확인하고, 다시 환불 정책을 본다. 이런 탐색 경로는 자연스럽고 당연하다.

그런데 각 문서가 고립된 페이지라면 어떨까? 사용자는 뒤로 가기를 누르거나 주소창을 직접 건드려야 한다. 특히 모바일에서는 더 불편하다. 우리의 경우 법률 문서가 /[site]/[slug] 구조로 동적으로 렌더링되는데, 여러 페이지 간의 관계가 UI에 명시되지 않았다.

이건 단순 편의 문제를 넘어선다. 문서 간 네비게이션이 있으면 사용자는 전체 정책 체계를 더 잘 이해하게 된다. "아, 이 회사는 여러 약관을 체계적으로 관리하는군"이라는 신뢰도 생긴다. 반대로 네비게이션이 없으면 마치 약관들이 서로 무관한 것처럼 느껴진다.

구현: 같은 카테고리 문서 목록 노출

page.tsx에서 렌더링할 때, 현재 문서와 같은 카테고리에 속한 다른 문서들을 함께 전달하는 방식으로 접근했다. 예를 들어:

[사이트]/이용약관 → 형제 문서 리스트 (개인정보, 환불정책, 커뮤니티 가이드 등)
↓ 네비게이션 클릭
[사이트]/개인정보보호정책 → 형제 문서 리스트 (이용약관, 환불정책, ...)

컴포넌트 입장에서는 현재 slug를 기준으로 같은 타입의 다른 문서들을 찾아서 네비게이션 UI로 렌더링하면 된다. 라우팅 구조는 그대로 유지하되, 페이지 내용 옆에 "비슷한 문서" 섹션을 추가하는 형태다.

구성 요소 역할
페이지 본문 현재 문서의 전체 내용
형제 문서 네비게이션 같은 카테고리 다른 문서로 가는 링크
현재 문서 강조 네비게이션에서 지금 보는 문서는 비활성화

좋은 문서 구조를 위한 고민들

이런 변경을 하면서 몇 가지 고려했던 부분이 있다.

첫째, 문서 계층 구조를 어떻게 정의할 것인가? 모든 법률 문서를 한 그룹으로 묶을지, 아니면 운영정책/약관/개인정보 같이 세분화할지가 문제다. 너무 세분화하면 각 그룹의 문서 수가 적어서 네비게이션이 의미 없다. 반대로 너무 뭉쳐놓으면 사용자가 찾는 문서를 빨리 못 찾는다. 결과적으로 우리는 문서의 메타데이터(category, type 등)를 기준으로 할 수 있게 유연하게 설계했다.

둘째, 네비게이션 UI의 위치다. 페이지 끝에 붙일지, 사이드바에 둘지, 탭 형태로 만들지. 이건 전체 페이지 레이아웃과의 일관성을 봐야 한다. 다른 사이트 페이지들이 사이드바를 쓰고 있다면, 법률 페이지도 같은 패턴을 따르는 게 사용자 입장에서 자연스럽다.

팀 리딩 관점에서 본 이 작업

작은 피처처럼 보이지만, 이 작업은 중요한 신호를 팀에 준다. "우리는 사용자 경험의 세부 사항을 신경 쓴다"는 메시지다. 법률 문서는 서비스 필수 항목이지만, 대부분 개발자들이 우선순위를 뒤로 미룬다. 하지만 실제 사용자가 그 문서를 읽을 때 불편함을 겪으면, 그건 서비스에 대한 신뢰도에 영향을 미친다.

또한 이 작업은 나중에 유사한 기능을 추가할 때의 청사진이 된다. 네비게이션을 추가하는 가장 간단한 패턴, 메타데이터 기반으로 관계를 관리하는 방법, 페이지 렌더러에서 부가 정보를 주입하는 방식 — 이런 것들이 기록되고 반복 사용할 수 있게 된다.

다음 개선 과제

이 변경 이후 더 할 수 있는 게 몇 가지 있다. 예를 들어 문서 간에 내부 링크(텍스트 중간의 "자세한 내용은 개인정보 정책을 참고하세요" 같은 링크)를 자동으로 감지하고 강조하는 기능. 또는 문서의 마지막 갱신일을 함께 표시해서 사용자가 "이 약관이 언제 바뀌었나"를 빠르게 확인할 수 있게 하는 것도 좋다.

하지만 지금은 형제 문서 네비게이션 자체로 충분하다. 그 다음 단계는 실제 사용 패턴을 보면서 결정하면 된다.


🛒 이 글과 어울리는 추천 상품

*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.

댓글 0

첫 댓글 달아줘.