Tree Archive를 만든 이유 – 카테고리 목록만으로는 부족했다
CY Mini Project를 개발하면서 가장 만족하는 기능 가운데 하나가 Tree Archive이다.
처음부터 계획했던 기능은 아니었다.
Wiki 문서와 개발 기록이 늘어나면서 기존 카테고리 방식으로는 원하는 문서를 찾기 어려워졌고, 그 문제를 해결하는 과정에서 만들어진 기능이다.
문서가 늘어날수록 탐색이 어려워졌다
초기에는 문서 수가 많지 않았기 때문에 일반적인 카테고리 목록만으로도 충분했다.
하지만 프로젝트가 계속 진행되면서 상황이 달라졌다.
Wiki에는 프로그래밍, 역사, 철학 같은 문서가 쌓였고,
개발 기록도 버전별로 계속 추가되기 시작했다.
창작 설정 역시 세계관, 등장인물, 사건처럼 서로 연결된 문서가 많아졌다.
문서가 수십 개를 넘어가자 단순한 목록에서는 원하는 내용을 찾는 시간이 점점 길어졌다.
카테고리는 계층 구조를 보여주지 못했다
WordPress는 기본적으로 카테고리의 부모-자식 관계를 지원한다.
하지만 일반적인 카테고리 목록에서는 이러한 구조가 충분히 드러나지 않는다.
예를 들어 다음과 같은 구조가 있다고 가정하면,
창작 설정
├ 세계관
├ 등장인물
└ 사건 연표
목록에서는 모두 개별 항목처럼 보이기 쉽다.
문서 사이의 관계를 이해하기 어렵고, 현재 어떤 위치에 있는지도 한눈에 파악하기 힘들었다.
특히 위키처럼 계층 구조가 중요한 콘텐츠에서는 이런 점이 더 크게 느껴졌다.
폴더를 탐색하는 경험을 참고했다
Tree Archive를 설계하면서 가장 많이 참고한 것은 파일 탐색기였다.
컴퓨터에서 문서를 찾을 때는 대부분 폴더를 펼치고 접는 방식에 익숙하다.
상위 폴더를 열면 하위 폴더가 나타나고,
필요 없는 부분은 접어둘 수 있다.
문서도 같은 방식으로 탐색할 수 있다면 훨씬 직관적일 것이라고 생각했다.
그래서 Tree Archive는 카테고리 목록이 아니라 문서 구조를 탐색하는 인터페이스를 목표로 개발했다.
Tree Archive의 구성
현재 Tree Archive는 좌측과 우측으로 나뉜 구조를 사용한다.
좌측에는 트리 형태의 탐색 영역이 표시되고,
우측에는 선택한 문서의 내용이 표시된다.
사용자는 문서를 읽는 도중에도 다른 항목을 쉽게 이동할 수 있으며,
현재 어느 위치에 있는지도 확인할 수 있다.
이 구조는 일반적인 블로그보다 위키나 기술 문서를 읽는 환경에 더 적합하다고 판단했다.
문서를 찾는 방식도 함께 바뀌었다
Tree Archive를 추가하면서 문서를 찾는 방식도 조금씩 달라졌다.
예전에는 검색이나 카테고리에 의존하는 경우가 많았다.
현재는 필요한 분야를 펼친 뒤 관련 문서를 차례대로 살펴보는 방식이 가능해졌다.
예를 들어 개발 관련 문서를 찾는 경우에는 다음과 같은 흐름으로 탐색할 수 있다.
개발
├ WordPress
├ Python
├ Flutter
└ Git
창작 문서 역시 비슷한 방식으로 정리할 수 있다.
창작
├ 세계관
├ 등장인물
├ 설정
└ 연표
문서가 많아질수록 이러한 구조의 장점이 더 커질 것으로 생각한다.
단순한 메뉴가 아니라 콘텐츠 구조
Tree Archive를 개발하면서 가장 중요하게 생각한 것은 메뉴를 하나 더 만드는 것이 아니었다.
콘텐츠 자체의 구조를 보여주는 것이 목적이었다.
사용자가 현재 어떤 분야를 보고 있는지,
같은 주제의 다른 문서는 무엇인지,
상위 문서는 무엇인지,
이런 정보를 자연스럽게 이해할 수 있도록 구성했다.
그래서 Tree Archive는 사이트 메뉴와는 다른 역할을 담당한다.
메뉴가 페이지를 이동하기 위한 기능이라면,
Tree Archive는 콘텐츠 자체를 탐색하기 위한 기능에 가깝다.
계속 개선하고 있는 기능
Tree Archive도 처음 구현한 모습 그대로 유지되고 있는 것은 아니다.
프로젝트를 사용하면서 여러 부분을 계속 수정하고 있다.
최근에는 다음과 같은 개선 작업을 진행했다.
- 트리 탐색 성능 개선
- 현재 문서 위치 표시
- 모바일 화면 최적화
- 관리자 화면 연동
- Wiki와의 연결 구조 개선
문서 수가 계속 늘어나고 있기 때문에 탐색 기능 역시 함께 발전시킬 계획이다.
앞으로의 계획
현재 Tree Archive는 Wiki를 중심으로 사용하고 있지만,
장기적으로는 프로젝트 전체에서 활용할 수 있도록 확장할 계획이다.
예를 들어
- 개발 기록
- 프로젝트 문서
- 창작 설정
- 리뷰
- 노트
처럼 계층 구조를 가진 콘텐츠라면 모두 Tree Archive를 사용할 수 있도록 만드는 것이 목표이다.
결국 Tree Archive는 하나의 기능이라기보다, CY Mini Project에서 콘텐츠를 관리하는 핵심 방식 가운데 하나가 될 것으로 생각하고 있다.
다음 개발기
다음 글에서는 관리자 화면을 어떻게 설계했는지, 그리고 설정 페이지를 별도로 개발하게 된 이유를 정리해 보려고 한다.
기능을 추가하는 것만큼 관리하기 쉬운 구조를 만드는 것도 프로젝트에서 중요한 목표 가운데 하나였다.
💬 댓글 (0)