Q: 프로젝트에 대해 간략히 소개해주세요.
A: 저희 프로젝트는 사용자의 노션 기록물을 3D 월드 안에서 시각화하고 갤러리로 만들어주는 프로젝트입니다. 이렇게 만들어진 갤러리를 다른 사용자들과 공유할 수 있습니다.
Q: 제 노션에는 여러 페이지들이 있는데, 어떤 페이지가 시각화의 대상이 되는지 궁금합니다.
A: 사용자는 갤러리를 만들기 위해, 먼저 Notion OAuth 로그인을 진행해야 하며 이후, 자신의 페이지 목록 중 공유된 페이지와 개인 페이지 중에 시각화할 페이지를 선택할 수 있습니다. 선택된 페이지들이 모두 시각화에 사용되며, 하나의 히스토리로써 관리됩니다.
Q: 히스토리는 무엇인가요?
A: 사용자가 갤러리를 만들게 되면, “모뉴먼트” 라고 불리는 자신의 **개인공간(갤러리 페이지)**가 생성되게 됩니다. 이 모뉴먼트에서는 생성된 갤러리들이 히스토리 형식으로 관리되며, 사용자는 개인 공간에서 히스토리를 변경하며 여러 결과물들을 볼 수도 있습니다.
Q: 노션 기록물의 어떤 요소를 통해 3D 갤러리가 만들어지나요?
A: 노션 기록물에는 사용자가 정리한 제목, 내용, 사진, 링크, 데이터 등 여러 형식의 정보가 담겨 있습니다. 페이지별로 제목과 내용을 부유섬의 키워드로 사용하며, 링크 정보는 발판 형식으로 부유섬에 나타나도록 하였습니다. 만약, 페이지 내에 사진이 포함되어 있다면, 사진 파편 형태로 부유섬 주변에 렌더링되기도 합니다.
Q: 3D 갤러리의 부유섬들은 무엇을 의미하고 어떤 기준으로 배치되었나요?
A: 각 부유섬들은 하나의 페이지를 의미합니다. 각 페이지에서 추출한 정보들을 키워드, 사진, 링크, 제목등으로 분리하여 배치하고, 전체 키워드를 집계해 상위 3가지의 키워드를 기준으로 각 페이지들을 분류합니다.
Q: 메인 페이지는 3인칭, 갤러리 페이지는 1인칭 플레이어 이동으로 구현한 이유가 무엇인가요?
A: 메인 페이지에서는 공유된 다른 사용자들의 모뉴먼트들이 흩어져 있으며, 사용자는 이 모뉴먼트에 상호작용하여 키워드를 확인하거나 해당 갤러리로 이동할 수 있습니다. 한 화면에 여러 사용자의 정보가 보여야 하며, 상호작용하기 편하도록 하기 위해서, 많은 정보를 담기 위해서 메인 페이지는 3인칭으로 구현하였습니다. 반면, 갤러리 페이지는 1인칭 플레이어 이동으로 구현하였는데 사용자에게 높은 몰입감과 사용성을 전달하기 위해, 그리고 여러가지 키워드나 낱말을 확인하기 편하려면 (빈도수에 따라 키워드의 크기가 다르며 작은 키워드는 3인칭 쿼드뷰 형식에서는 읽기 어려울 수 있음) 1인칭으로 구현해야 했습니다.
Q: 프로젝트를 진행하면서 기술적인 고민 또는 목표로 한 것들이 있나요?
A: 노션 API를 통해 받아온 정보를 어떻게 프로세싱할지, 어떻게하면 느린 프로세싱 과정을 단축할 수 있을지 또는, UI적으로 어떻게 해결할 수 있을지에 대해 고민하였습니다. 그리고 프로세싱된 데이터를 3D 공간에 렌더링하기 위한 여러 방법, 렌더링 최적화를 위한 고민과 Lighthouse 점수 향상 또한 목표로 삼았습니다.