2025. 03. - · 공개 프로젝트
99haus
관리자 페이지 없이 Notion만으로 콘텐츠를 관리하는 인디 스토리텔러 포트폴리오
배경과 목적
99haus는 인디 스토리텔러의 작품과 활동을 소개하는 포트폴리오 사이트입니다. 운영자가 따로 관리자 페이지를 배우지 않아도, Notion에 글을 쓰면 사이트에 반영되도록 만들었습니다.
담당 범위
프론트엔드와 동기화 서버, 인프라를 맡았습니다. 2026년 3월 28일 2차 리뉴얼에서 동기화 서버를 새로 쓰고, 데이터와 이미지, 배포를 모두 홈 서버의 k3s로 옮겼습니다.
핵심 작업
- 쓰면 바로 반영되는 동기화: 1차 리뉴얼 때 블로그에 ‘다음 목표’로 적어 두었던 웹훅 자동 동기화를 만들고, 진행 상황을 Notion 문서 안에서 보여 주는 대시보드를 넣었습니다.
- 동기화 서버를 Kotlin으로 새로: Notion 데이터베이스 5종을 끝까지 읽어 HTML로 바꾸고, 이미지는 해시로 중복을 거른 뒤 WebP로 변환해 저장합니다.
- 자체 호스팅으로 옮긴 이유: 무료 서버리스보다 빠르고 벤더에 묶이지 않는 방법을 찾았고, 클라우드 VM 비용 대신 이미 있던 홈 서버를 골랐습니다.
구조는 Notion → 동기화 서버 → Postgres·Storage → Next.js SSR 순서로 이어집니다. 1차 리뉴얼 때는 Notion API를 직접 부르던 구조를 바꿔 페이지 로드 시간을 약 6초에서 0.4초로 줄였습니다.
결과
운영자는 Notion에서 글을 쓰고, 사이트는 동기화가 끝나는 즉시 바뀝니다. 99haus.net에서 확인할 수 있습니다.
화면과 흐름
모바일 화면