CODINGDARIN← Selected work

DIARY PAGE MAKER / PROJECT STORY

내가 나눈 공간이나만의 속지로

‘종이정원’은 최대 3×3 셀을 나누고 병합해 나만의 다이어리 속지를 만들고 PNG로 저장하는 브라우저 도구입니다.

PROJECT
Diary Page Maker
MY ROLE
편집 인터페이스 · 이미지 출력 구현
TECHNOLOGY
CREATIVE TOOL · VANILLA JS
왼쪽 스타일 설정과 오른쪽 실물 종이형 미리보기를 배치한 종이정원 편집기
속지 편집기
01 / CONTEXT

이 프로젝트를 만든 이유

종이정원은 4:5 다이어리 속지를 브라우저에서 편집하고 PNG로 저장하는 도구입니다. 포트폴리오의 Diary Page Maker가 이 프로젝트입니다.

미리 정한 템플릿을 고르는 데서 더 나아가, 사용자가 실제 종이 위의 공간을 나누고 각 영역의 용도를 정하게 했습니다. 추천 무드에서 시작해 색과 선, 여백, 펀칭과 손그림 효과를 조정할 수 있습니다.

02 / EXPERIENCE

화면으로 보는 사용 흐름

SCENE 01

공간을 나누고 용도를 정하기

가로·세로를 각각 1~3칸으로 나누고 영역마다 날짜, 도트와 체크리스트 등을 배치합니다. 경계를 직접 움직여 비율을 바꾸고 드래그한 셀을 병합할 수 있습니다.

도트와 체크리스트를 여러 영역에 나누어 배치한 다이어리 속지
영역 분할
SCENE 02

결과물 위에서 직접 편집

미리보기의 영역을 누르면 해당 영역의 요소를 바꿀 수 있습니다. 페이지 전체의 종이 표현과 각 영역의 선·색·여백을 구분해 설정합니다.

날짜, 라인, 도트, 격자와 체크리스트 등 영역별 요소를 선택하는 창
요소 선택
03 / IMPLEMENTATION

구현에서 중요했던 선택

  1. 01

    미리보기와 출력이 같은 렌더 함수 사용

    buildPageSvg가 설정을 SVG로 변환합니다. 화면은 그 SVG를 표시하고 PNG 저장은 같은 SVG를 Canvas로 변환해, 서로 다른 렌더 경로에서 생기는 차이를 줄였습니다.

  2. 02

    셀 집합으로 자유 형태 병합

    드래그로 지나간 셀을 집합으로 저장하고 SVG clipPath로 합집합 영역을 그립니다. ㄱ자처럼 직사각형이 아닌 병합도 선택하지 않은 셀을 침범하지 않도록 구성했습니다.

  3. 03

    손그림 형태와 설정을 재현

    손그림 왜곡에 고정 시드를 사용해 미리보기와 출력의 선 형태를 일치시켰습니다. 프리셋은 localStorage에 보관하며 JSON 백업과 구버전 설정 변환, 선택 항목의 일괄 PNG 저장을 지원합니다.

04 / EVIDENCE

결과와 확인한 범위

  • 최대 3×3 분할
  • 2000 × 2500px
  • SVG 공용 렌더

추천 무드로 시작해 영역별 요소를 바꾸고, 원하는 설정을 프리셋으로 보관할 수 있습니다. 위 이미지는 실제 편집 화면입니다.

미리보기와 PNG는 buildPageSvg를 공유하며 손그림 표현에는 고정 시드를 사용합니다. 출력 폭은 1200·1600·2000px 중에서 선택할 수 있고, 2000px 폭을 선택하면 4:5 비율에 맞춰 높이는 2500px이 됩니다.

WHAT I LEARNED

미리보기 그대로, 종이 위로

사용자가 보고 조작하는 영역과 저장되는 결과가 같은 규칙을 따르게 하는 것이 편집 도구의 핵심이었습니다.