글자리 — 사이트 방향과 현재 결정
최신 결정: 2026-10-11 (한국 시간). 구현과 새 작업은 아래 ‘현재 확정 기준’을 따른다. 이후 I/R/P 항목은 2026-10-09부터의 의도·해석·제안 기록이며, 현재 결정과 충돌하는 옛 시안은 구현 지시가 아니다.
현재 확정 기준
-
2026-10-11 밤: codex/geuljari-effects의 원고지 칸 조판과 잠수·먹자국·RGB 글리치 전환을 쪽 다듬기 3안 화면과 합쳐 main에 반영한다. 원고지는 manuscript-lab.html에서도 볼 수 있다.
-
브랜드는 글자리다. 글을 두는 틀, 글에게 맞는 자리, 별자리의 어감을 담는다. 저장소 이름 geulteul과 내부 Geulgyeol 식별자는 이름 변경과 별개다. Netlify 주소 변경은 예정이며 새 주소를 임의로 확정하지 않는다.
-
가능한 한 Netlify 안에서 구현한다. 호스팅은 Netlify, 서버 처리는 Netlify Functions, 발행 글 저장은 Netlify Blobs를 사용한다. 여러 외부 서비스를 연결해 계정·자격 증명·요금을 따로 관리하는 구성을 기본으로 만들지 않는다.
-
Firebase/Firestore는 채택된 요구가 아니며 현재 목표 구성에서 제외한다. 문의·관리·알림도 Netlify 내 구현을 먼저 검토한다. 외부 서비스가 꼭 필요한 기능은 필요성과 내부 대안을 설명하고 별도 선택 사항으로 다룬다.
-
단계 이동은 헤더 오른쪽의 편집 · 미리보기 · 발행. 미리보기 설정은 하단바의 쪽 다듬기(갈래 단추 + 값 단추, 같은 폭의 판이 단추에 붙어 펼쳐짐)이고 화면 크기·다시 보기도 하단바 오른쪽에 둔다. 글 상자를 두 번 누르면 그 자리에서 고친다. 상세는 쪽 다듬기.
-
읽기 링크는 /t/{id}#{열쇠}. 본문은 브라우저에서 암호화하고 열쇠는 서버에 보내지 않는다. 공개 제목과 수정용 비밀번호는 본문 열쇠와 구분한다.
-
2026-10-11 12:35 사용자 지시로 병렬 작업 보류를 해제했다. 최신 main과 여백 색인·발행·Blobs 전환을 합쳐 main에 반영하고 Netlify 배포를 진행한다.
구현 상태 — 목표와 구분
최신 글자리 로고·원고지·타자 바탕을 여백 색인·발행 기능과 통합했다. 저장소는 Netlify Blobs로 전환했으며 Firebase 의존성과 서비스 계정 설정을 제거했다.
발행·수정·중단·삭제는 조건부 쓰기로 버전을 확인한다. 삭제 뒤에는 본문과 비밀번호를 제거한 최소 표식만 남겨 같은 주소가 되살아나지 않게 한다. 운영 저장소는 재배포에도 유지하고, 미리보기는 배포별로 격리한다. 로컬 Blobs SDK·API·브라우저 확인과 실제 Netlify 배포 확인은 구분해 기록한다. 상세는 발행을 따른다.
2026-10-12 발행 브랜치 codex/geuljari-publishing에는 끝 장 카드의 OG 이미지 자동 생성·Blobs 저장·공유 메타 연결을 추가했다. 공개 상태로 저장하면 1200×630 PNG가 갱신되고, 발행 중단·삭제하면 이미지 접근도 막는다. 기존 글은 불러와 다시 저장하면 된다. 메뉴·레이아웃 작업과 분리해 운영 배포 전이다.
문서 안내
- CLAUDE.md: 작업 규칙과 파일 역할. 모델 제안을 사용자 확정으로 취급하지 않는 원칙.
- 단계 계획: 완료·운영 확인·후속 과제.
- 발행: Netlify/Blobs 목표 구조, 현재 코드 상태, 전환 순서.
- 쪽 다듬기: 승인된 미리보기 하단바·고치기·눈금과 편집 단계 배치.
- 디자인, 효과 규칙: 시각·동작 기준.
과거 논의 기록 읽는 법
- 의도(I-n) — 당시 사용자가 직접 말한 내용. 후속 결정이 있으면 현재 확정 기준을 따른다.
- 해석(R-n) — Claude가 해석한 내용. 사용자 확정과 구분한다.
- 제안(P-n) — Claude가 덧붙인 내용.
[시안]·[아이디어]는 확정이 아니다. 특히 P-22의 Firestore 제안은 폐기됐다.
0. 한 줄 (해석)
R-0. 글결은 천 자 안팎의 한국어 글을 "써지는 속도와 숨"으로 읽게 하는 글 틀이다. 글을 꾸미는 도구가 아니라 글이 쓰이던 시간을 돌려주는 도구다.
1. 의도 — 사용자가 말한 것
1.1 무엇을 만드나
- I-1. 한글 텍스트 시각화에 중점을 둔 글로그 업로드 페이지. 목표는 천 자 정도의 글을 담는 틀.
- I-2. 길이가 있는 문단은 빠르게 적어 나가다가, 강조할 부분에서 한숨 쉬듯 짧은 어절을 시간차로 보내거나 흘러내리게 할 수 있어야 한다.
- I-3. 효과는 글 내용이 아니라 글자 수·어절·단어 간격을 기준으로 자동 적용되면 좋겠다.
- I-4. 약간의 반응형 효과, 감상을 너무 방해하지 않을 정도의 모션 그래픽.
- I-5. 글 내용은 Claude에게 주지 않는다. 띄어쓰기를 남긴 채 마스킹한 텍스트로 글자 수만 참고하게 한다. 그러려면 마스킹 툴이 함께 필요하다.
- I-6. 1차로 내 글을 충실하게 담고, 2차로 다른 사람도 글을 넣어 쓸 수 있게 한다. PC와 모바일에서 다 동작해야 한다.
- I-7. AI API를 쓰는 사이트로 만들어야 하는지 고민했고, 1단계에서는 빼고 자리만 남기기로 했다.
1.2 글의 규칙
- I-8. 빈 줄 둘이 페이지 나눔인 게 좋다. 한 페이지 안에 빈 줄 하나짜리 간격을 두고 싶을 수도 있기 때문이다.
- I-9. 띄어쓰기 두 번에서 호흡을 약간 더 길게 가져간다.
- I-10. 문장에서 제일 강조하고 싶은 건 보통 한 부분이다. 그건 사용자가 드래그 등으로 표시한다. 나머지는 장식 요소를 세게 하지 않는다.
- I-11. 효과를 블록으로 지정할 수 있어야 한다.
- I-12. 띄어쓰기 두 번, 엔터로 페이지 나누기 같은 규칙은 편집실에서 최우선으로 잘 보여야 한다.
1.3 움직임
- I-13. 긴 문단은 부드럽게 이어져야 하고, 마침표·쉼표에서 어색하게 끊기면 안 된다. 마침표에서는 약간 더 쉬면 좋겠다.
- I-14. 떠오름은 줄 단위나 문장 단위. 등장 속도는 당긴다. 강조한 줄은 한 줄씩 임팩트 있게 느리게 올라와야 한다.
- I-15. 쉼은 사이가 부드럽게 늘어나는 느낌이어야 한다(띡 넘어가면 안 됨). 화면에 띄어쓰기가 두 칸으로 보이면 안 되고, 첫 어절을 밀면서 들어오면 안 된다.
- I-16. 말줄임표를 점 하나씩 띄우는 건 촌스럽다. 오른쪽 낙관, 제목, 글자 수 표시는 없앤다. 문단 간격은 쓰지 않는다.
- I-17. 초점 띠를 기본형으로. 손끝(다 쓴 어절에 손대면 다시 젖음)도 추가.
- I-18. 빠른 모션 그래픽은 가독성이 떨어져 싫다. 느리되 사람의 동작(클릭·드래그·제스처)에 충분히 반응해야 한다. 모든 움직임이 뚝뚝 끊기지 않고 부드럽게 이어지는 것이 가장 중심이다.
- I-19. 스크롤이나 옆키뿐 아니라 더 다양한 제스처에 반응했으면 한다. 드래그로 영역이 나뉜다든가.
- I-20. 다음 문장 효과가 앞 문장이 끝나기 전에 오는 일이 있으면 안 된다.
1.4 낮밤 반전과 바탕
- I-21. 낮밤 전환은 더 드라마틱하게. 무대가 바닥부터 180도 돌아 검은 배경이 되는 느낌. 바닥 기저선이 시계·반시계 방향으로 휙 돌면서 평면적으로 뒤집히는 게 보여야 한다. 휙 단번에 돌면서 호흡을 끊어 준다. 영사기·스크린·스위치 같은 느낌이 같이 와도 좋다.
- I-22. 배경은 쓸기로 움직이고, 글은 배경과 같이 넘어간다.
- I-23. 바탕 기본은 낮 창빛, 밤 영사광. 한지·오로라는 두고, 물빛은 모션 속도를 죽이면 쓸 수 있다. 안개는 애매하고 등고선은 이상하고 커피 얼룩은 반려.
- I-24. 이미지 삽입 기능은 없을 예정이다. 코드로 짠 기하 패턴이나 오로라 같은 것이 배경이나 일부 영역을 차지하는 건 좋다.
- I-25. 페이지별로 문단의 폭과 너비가 바뀌거나, 왼쪽에만·오른쪽에만 쏠려 있는 것으로 차이를 주고 싶다.
- I-26. 읽기는 페이지 안 스크롤과 페이지 사이 넘김으로 통합(찬성).
1.5 편집실
- I-27. 처음 들어오면 편집창. 미리보기(예시) 텍스트가 띄워져 있지만 언제든 고칠 수 있는 입력창과, 그 옆에 나란히 미리보기. 탭이 아니라 한 페이지 안에서.
- I-28. 움직임 규칙을 자세히 설명하지 않는다.
- I-29. 기본 진행 효과와 낮밤은 세그먼트로 선택지를 주고, 오른쪽에 나란히 예시 텍스트가 움직이는 영역을 둔다.
- I-30. 강조 효과의 미리보기는 그 예시 영역에서 보여 주고, 실제 선택은 편집창에서 드래그할 때 보여 준다.
- I-31. 간격이나 효과 속도는 슬라이더로 조절한다.
- I-32. 전환 효과는 엔터로 이미 생긴 빈 줄에 마우스를 올리면 추가할 수 있는 식으로.
- I-33. 색은 일일이 지정하게 하기보다 주색 기준 테마를 뽑는다(타래 펴기를 참고).
- I-34. 우측 하단에 미리보기 단추, 발행 단추.
1.6 발행·공유·보안
- I-35. 공유는 타래 펴기처럼
?t 뒤에 파생 페이지를 만들어 뷰어로 여는 방식이 괜찮다.
- I-36. 링크는 암호화 상태로 서버에 저장되게 한다.
- I-37. 발행 시에는 내용 암호화와 별개로 사용자 비밀번호를 설정하게 한다.
- I-38. 편집 화면의 불러오기에 링크와 비밀번호를 넣으면 내용을 불러와 편집하거나 삭제할 수 있다. 게시/비게시 설정도 스위치로.
- I-39. 링크와 비밀번호를 잃어버리면 수정·삭제할 수 없다는 경고를 발행할 때 꼭 띄운다. 글 내용은 암호화되어 서버에 저장되어 관리자도 열어 볼 수 없다고 쓴다.
- I-40. 페이지 제목은 암호화하지 않고 평문. 제목은 공개되고 OG 카드에 기록된다.
- I-41. 이미지 기능을 안 달 거라서 OG 이미지를 직접 설정할 수 없는 게 약간 아깝다.
- I-42. 비밀번호를 잃어버렸을 때 제목으로 문의하면 지워 주거나 비밀번호를 새로 설정해 주는 걸 해 줄지 말지 고민이다.
1.7 문의·관리
- I-43. 문의하기 기능을 단다. 챗봇처럼 만들고, 디스코드 웹훅으로 알림을 받고 응답하는 체계.
- I-44. 관리자 페이지가 필요하고, 거기서 만든 글 목록 현황이 바로 보여야 한다.
1.8 디자인
- I-45. 타래 저장소 디자인 시스템은 쓰지 않는다. 이 사이트 전용 디자인 시스템이 있었으면 한다.
- I-46. Claude 기본 레이아웃은 지겹다. 각진 형태를 많이 쓰고, 영역은 색이 다른 면으로 나누고, 최신 레이아웃을 찾아보고 색다르게 디자인한다.
- I-47. 마스킹이 중요한 시그니처다. 문서·서류·바코드·네모·점·움직임 같은 것들이 이미지로 활용되면 좋겠다. 모노톤이 주력이면 좋겠다.
- I-48. 송명은 본문에 보일 때까지는 괜찮았지만 모든 UI에 쓰는 건 고민된다. UI 글꼴은 노토 산스로 한다.
- I-49. 가림 글자는 ○ 대신 ■.
- I-50. 첫 안(색면으로 나눈 편집실)은 너무 별로였다. 다른 스타일 세 가지 중 교정쇄가 일단 괜찮다.
- I-51. OG 이미지, 사이트 제목, 파비콘과 로고 같은 기본 브랜딩도 한다.
- I-56. 이름은 글자리. 글을 두는 틀, 글에게 맞는 자리, 별자리의 어감. 로고는 원고지 칸 안의 글·자·리와 빈 칸 하나, 그 칸 왼쪽 아래에 마침표. 파비콘은 지금의 ■□ 그대로. 넷리파이 주소도 바꿀 예정.
- I-57. 라이트 바탕에서 한지는 빼고 원고지를 넣는다. 다크에는 타자 화면을 넣는다.
1.9 소리
- I-52. 유튜브 삽입은 이번엔 하지 않는다. 기본 효과음과 아주 방해 안 될 정도로 잔잔한 배경음 몇 가지를 드롭다운으로 우선 제공해 볼까 한다. 아트리스트에서 크레딧 안 쓰고 받을 수 있으면 활용하고, 별로면 뺀다.
1.10 진행 방식
- I-53. 구현 방향을 정립한 다음 착수한다. 정리되면 마스킹한 글을 준다.
- I-54. 저장소를 깃허브에 올리고, 나머지는 클라우드 세션에서 고쳐 간다.
- I-55. 이 문서는 GPT에도 보여 검토와 제안을 받는다.
2. 해석 — Claude는 이렇게 읽었다
- R-1 (I-1, I-2, I-3). 핵심은 "글이 쓰이는 시간"을 보여 주는 것이다. 효과는 장식이 아니라 호흡(속도·쉼)의 시각화다. 그래서 판정 기준이 내용이 아니라 생김새(글자 수, 어절 길이, 띄어쓰기 수, 빈 줄 수, 문장부호)여야 한다.
- R-2 (I-5, I-36, I-39). "글을 주지 않는다"는 원칙이 서비스에서는 "서버도 관리자도 못 읽는다"로 이어진다고 봤다. 그래서 글을 여는 열쇠는 링크의
# 뒤에만 두고 서버로는 보내지 않는 구조를 전제했다.
- R-3 (I-8, I-16). 빈 줄 하나 = 한 페이지 안의 문단 사이(작은 간격), 빈 줄 둘 = 페이지 나눔. I-16의 "문단 간격은 쓰지 말고"는 큰 간격을 두지 말라는 뜻으로 읽어 지금은 0.9em만 띄운다. 확인 필요: 빈 줄 하나를 아예 간격 없이(줄바꿈과 같게) 둘 수도 있다.
- R-4 (I-10, I-30). 강조는 한 글에 몇 군데가 정상이고, 효과 종류가 많아도 기본(떠오름) 하나로 대부분 충분하다. 그래서 효과 목록은 숨기지 않되 기본을 앞세우고 나머지는 작게 둔다.
- R-5 (I-18, I-21). 유일하게 "휙" 빨라도 되는 움직임은 낮밤 반전이다. 나머지 움직임은 느리고 손을 따라온다.
- R-6 (I-27~I-34). 편집실은 "쓰는 자리"지 설정 화면이 아니다. 들어오면 바로 쓰고, 설정은 곁에 있다. 규칙은 설명이 아니라 편집창 안의 표시(쉼 표시, 페이지 선)로 보여 주는 게 "자세히 설명하지 말라"에 맞다.
- R-7 (I-33, I-47). 모노톤이 주력이 되면서 "주색 기준 테마"는 "먹 색 하나 고르기"(젖은 글자와 강조에만 쓰는 색)로 줄어든다고 봤다. 읽기 화면의 바탕(창빛·영사광 등 색이 있는 빛)은 글쓴이가 고르는 장면이라 모노톤 규칙 밖에 두었다. 확인 필요.
- R-8 (I-35~I-38). 저장 구조: 서버는
{id, 제목(평문), 암호문, 비밀번호 해시, 게시 여부, 날짜}만 가진다. 읽기 링크는 /t/{id}#{열쇠}. 비밀번호는 읽는 데 필요 없고 고치기·지우기·게시 끄기 권한에만 쓴다.
- R-9 (I-6). "다른 사람도 쓰게"는 계정·로그인 없이 링크와 비밀번호만으로 돌아가는 구조로 읽었다.
- R-10 (I-43). 문의는 익명이 기본이다. 답장은 같은 브라우저에서 창을 다시 열면 보이고, 이메일은 선택.
- R-11 (I-47). "마스킹 시그니처"를 두 갈래로 읽었다. 하나는 UI의 무늬(네모 칸, 공목, 결 막대, 칸 채우기 식 선택), 하나는 움직임(안 쓰인 글이 네모로 서 있다가 글자가 되는 것).
- R-12 (I-50). "일단 괜찮다"는 확정이 아니라 이 방향으로 더 다듬어 보라는 뜻으로 읽었다. 짜임새(여백·교정 열·교정쇄)는 가져가되 세부는 바뀔 수 있다.
- R-13 (I-25). 페이지별 폭·자리 변화는 글자 수에 따라 자동으로 정하되 같은 자리가 연달아 나오지 않게 흔드는 것으로 읽었다(지금 구현). 당시에는 손으로 고르는 메뉴가 없었다. 현재는 쪽 표시와 미리보기 배경 판에서 자리를 지정한다.
- R-14 (I-41). OG 이미지를 "직접 설정"할 수는 없어도 글마다 자동으로 다르게 그릴 수는 있다고 봤다.
3. 제안 — Claude가 덧붙인 것
3.1 채택된 것 [채택]
- P-1 (I-11). 블록 문법:
{{…}}는 기본 효과(떠오름), {{효과이름:…}}로 효과 지정, [[밤]]·[[낮]]로 장면 표시, [[밤:오로라]]처럼 바탕 지정. 효과 이름: 떠오름·번짐·타자·초점·모여듦·떨림·흘러내림·조명, 퇴장 사라짐·흩날림·지워짐·희미해짐·걷힘·가라앉음. 꾸밈은 {{굵게+빨강:…}}처럼 +로 잇는다(docs/효과-규칙.md).
- P-2 (I-21, I-22). 쓸기 반전: 바닥 가운데를 축으로 바늘이 180도 쓸고, 지나간 자리부터 새 장이 글과 함께 드러난다. 앞으로는 시계 방향, 되돌아가면 반시계. 장면이 같은 페이지끼리는 스밈(겹쳐 오며 글이 조금 밀림).
- P-3 (I-23). 바탕: 라이트 창빛·원고지·잎그늘·새벽, 다크 영사광·빛커튼·물빛·타자, 두 장면 모두 편지지·오로라. 셰이더·캔버스로 그리고, 오로라는 흐린 빛 덩이를 CSS로 흘리며, 편지지는 글 상자만 한 줄 그은 종이를 CSS로 깐다.
- P-4 (I-2, I-3, I-9). 자동 판정: 짧은 줄은 뜸 들여 천천히, 한 글자 어절이 이어지면 흘러내림, 띄어쓰기 두 칸부터 쉼(앞뒤 글자의 속도가 느려졌다 빨라지는 완급). 마침표 뒤 240ms 더 쉼.
- P-5 (I-18, I-19, I-26). 읽기 조작: 옆으로 끌기(놓는 속도로 넘길지 결정), 휠, 방향키, 아래 가운데 쪽 눈금(화면에 글자 단추는 없음). 마지막 쪽 뒤에는 끝 장(링크 카드, 다시 보기·새로 만들기). 길게 누르면 그 줄만 남고 바탕이 느려짐. 화면보다 긴 페이지는 안에서 스크롤한 뒤 넘김. 쓰는 중에 넘기면 먼저 다 쓴다.
- P-6 (I-7, I-35). AI는 자리만 남김. 공유는
/t/ 뷰어.
- P-7 (I-49). 가림 글자 ■. 가림판에서 복사해도 ■로 나간다.
3.2 시안으로 보여 준 것 [시안] — 결정 아님
- P-8 편집실 짜임(교정쇄): 왼쪽 여백에 교정 부호(규칙 셋)와 조판 지정(흐름·장면·바탕·속도·쉼·줄 간격·먹·소리), 가운데 재단선이 있는 교정 열(제목과 본문), 오른쪽 교정쇄(미리보기)와 견본 한 줄, 아래 막대에 글의 결·집계·가린 글 복사·미리보기·발행.
- P-9 표시 방식: 강조 = 빨간 연필 물결 밑줄 + 여백 메모(효과 이름). 쉼 = 빨간 빈 네모, 띄어쓴 수만큼. 페이지 = 겹줄 + 빨간 쪽 번호, 오른쪽에 넘김·장면·바탕 요약. 고르기는 모두 □→■.
- P-10 공목 모션: 안 쓰인 글은 빈 네모(□, 활자 사이 공목)로 서 있다가 제 시각에 글자가 된다. 젖은 글자는 옅다가 마르며 진해진다(모노톤에서의 "젖음"). 읽기 화면에서는 켜고 끌 수 있게.
- P-11 색: 종이
#E8E5DE, 교정쇄 #F1EFE9, 먹 #1B1A18, 납(흐린 글씨) #625E58, 선 #C9C5BC, 연필 #A63C33(표시에만). 먹 색 고르기: 검정·쪽먹·갈먹·회먹·직접. 읽기 바탕 색은 장면이 정한다.
- P-12 글꼴: 송명(본문·제목), 노토 산스 KR(조작·안내·단추), 나눔고딕코딩(쪽 번호·집계·교정 부호).
- P-13 발행 흐름: 제목(평문) → 비밀번호 두 번 → 바로 게시 스위치 → "링크 카드에 글의 결 보이기" → 경고 읽고 동의 → 발행 → 링크와 비밀번호를 한 번만 보여 주고 열쇠
.txt 내려받기 → 불러오기 창에 열쇠 파일을 끌어다 놓으면 둘 다 들어감. 불러온 뒤에는 편집실 위에 띠(제목·발행일·게시 스위치·지우기·고친 내용 발행).
- P-14 (I-41) 링크 카드 자동 생성: 제목 + 글의 결(글자 수와 띄어쓰기 자리만 ■로). 내용은 한 글자도 들어가지 않는다. 끄면 제목만. 서버 함수가 SVG→PNG로 그린다.
- P-15 (I-43) [과거 시안 — 외부 알림은 기본 구성에서 제외] 문의 창: 읽기 화면과 편집실에서 여는 작은 창. 보내면 디스코드 웹훅으로 알림, 관리실에서 답장, 답장은 그 브라우저의 창에 보임, 이메일은 선택. 글 내용은 보내지지 않는다.
- P-16 (I-44) 관리실: 현황 면(글·게시 중·중지·답장 대기·열린 횟수), 글 목록(제목·발행·고침·글자 수·열림·게시 스위치), 문의 목록과 답장 칸, 웹훅 주소·첫 인사말·관리자 비밀번호.
- P-17 모바일: 편집창 위·미리보기 아래, 설정은 아래에서 올라오는 서랍, 강조는 길게 눌러 고르기.
- P-18 (I-51, I-56) 브랜딩: 이름 글자리. 로고는 원고지 네 칸(글·자·리·빈 칸, 빈 칸 왼쪽 아래 마침표). 파비콘은 ■□ SVG 하나로 모든 크기. 사이트 설명 "글이 써지는 속도와 숨을 그대로 보여 주는 글 틀". 링크 제목 "{글 제목} · 글자리". 주소는 넷리파이 하위 주소(도메인은 사지 않는 방침에 맞춤), 새 이름으로 바꿀 예정.
- P-19 (I-52) 소리: 아트리스트는 지금 플랜(AI 생성 전용, 남은 크레딧 20, 갱신 취소)으로는 못 쓴다 — 30초 배경음 한 곡 생성이 150크레딧이고 카탈로그 음원은 플랜에 없다. 대신 코드로 내는 소리를 제안: 배경 네 가지(빗소리·바람·밤벌레·낮은 울림)와 효과음 둘(넘길 때 종이, 쓸기 때 바늘). 파일·라이선스 없음.
3.3 말로만 꺼낸 것 [아이디어]
- P-20 (I-42) 비밀번호 분실: 내용 복구는 구조상 불가(열쇠가 링크에만 있음). 관리자가 비밀번호를 새로 걸어 주면 제목만 아는 남이 남의 글을 가로챌 수 있어 반대. "문의하면 게시 끄기까지만 도와준다"를 제안. 경고문에도 그렇게 적는다.
- P-21 (I-45) 색·글꼴·부품을 디자인 시스템으로 등록해 두고 그 위에 화면을 만든다.
- P-22 (R-8) [폐기된 저장소 제안] 당시 Netlify Functions + Firestore를 제안했으나 사용자 확정이 아니었다. 2026-10-11 Netlify Functions + Netlify Blobs로 정정했다. 암호화·링크 조각 원칙은 유지한다. 현재 명세는 발행을 따른다.
- P-23 글자 수 같은 메타는 "결 보이기"를 켤 때만 평문으로 보낸다. 관리실의 글자 수 열도 그때만 채워진다.
- P-24 읽기 화면 맨 아래 오른쪽에 아주 작은 "글결" 표시 하나만 둔다(다른 사람이 찾아올 길). 낙관·제목·글자 수는 없다.
4. 결정 기록 — 사용자가 확정한 순서
- 낙관·제목·글자 수 표시 없음. 큰 문단 간격 없음. 마침표·쉼표에서 끊지 않음.
- 효과는 블록으로 지정. 말줄임표 점 효과 삭제.
- 떠오름은 줄·문장 단위. 마침표 뒤 조금 더 쉼. 초점 띠 기본. 손끝 추가. 쉼은 한 칸으로 보이고 속도 완급으로.
- 낮밤은 바닥선이 도는 쓸기. 글도 같이 넘어감.
- 바탕: 창빛·영사광 기본, 당시 한지·오로라·물빛(느리게) 유지. 이후 I-57에서 한지를 원고지로 교체하고 다크 타자를 추가했다. 안개·등고선·얼룩 제외.
- AI API는 자리만. 반전 두 방식 시험 후 쓸기. 읽기는 페이지 안 스크롤 + 넘김. 공유는
/t/ 뷰어.
- 가림 글자 ■.
- 빈 줄 둘 = 페이지. 빈 줄 하나는 페이지 안 간격.
- 디자인은 모노톤·마스킹 시그니처. 세 안(서류·점·교정쇄) 중 교정쇄로 진행. UI 글꼴 노토 산스, 송명은 본문.
- 깃허브 저장소로 옮겨 클라우드 세션에서 이어서 작업.
- 2026-10-11: 글자리 이름, 펼쳐지는 여백 색인과 헤더 단계 이동,
/t/ 발행을 확정.
- 2026-10-11: Netlify 안에서 구현하는 것을 우선하며, 저장소는 Blobs로 확정. 외부 서비스 연동 최소화.
- 2026-10-11 12:35: Claude 작업 종료. 최신 로고·효과를 합치고 Blobs 전환과 main 병합·배포를 함께 진행하도록 승인.
- 2026-10-11 밤: 화면 정리 3안 확정. 여백 색인 대신 미리보기 하단바 쪽 다듬기, 두 번 눌러 고치기와 상자 모서리 X·체크, 네모 눈금, 편집 하단바의 안내·쓰는 법, 안내 툴팁 없음. 효과 브랜치(원고지 칸 조판, 잠수·먹자국·RGB 글리치)와 합쳐 main 배포.
- 2026-10-11 밤: 편집 설정 칸을 하단바(분위기 축마다 값 단추·테마·글)로 옮기고, 안내·쪽/글자 수는 헤더로, 쓰는 법 세 줄은 본문 오른쪽(좁으면 편집창 위)으로. 폰에서는 쓰는 동안 하단바를 거둔다. 로고는 이어 붙은 원고지 네 칸(겹네모·글·자·리)으로, 끝 장 카드의 아래 줄에도 같은 로고. 파비콘은 ■□/□□. 쪽·글자 수는 쓰는 법 아래로.
5. 열린 질문 — 검토를 바라는 것
- Q-1. 비밀번호 분실 정책: 게시 끄기까지만? 지우기까지? 아무것도 안 함? (P-20)
- Q-2. 링크 카드의 "글의 결" 기본값(켬/끔)과, 글자 수를 평문으로 보내는 것을 어디까지 허용할지. (P-14, P-23)
- Q-3. 읽기 화면에서 공목 모션(안 쓰인 글이 빈 네모로 보이는 것)의 기본값. "읽기 화면은 깨끗하게"(I-16)와 겹칠 수 있다. (P-10)
- Q-4. 모노톤 규칙을 읽기 바탕(창빛·영사광 같은 색이 있는 빛)까지 적용할지. (R-7)
- Q-5. 다른 사람이 쓰게 될 때: 글 수·크기 상한, 만료, 신고·삭제 경로, 관리자가 내용을 못 읽는 상태에서의 운영 책임.
- Q-6. 문의 답장 전달이 브라우저 저장만으로 충분한지(폰에서 보내고 PC에서 못 봄). (P-15)
- Q-7. 관리자 로그인 방식(비밀번호 하나 vs 구글 로그인).
- Q-8. [구현으로 정리됨] 자동 자리와 쪽별 수동 지정을 함께 지원한다. 미리보기 배경 판·쪽 표시로 지정한다. (R-13)
- Q-9. 모바일에서 강조 고르기(길게 누르기)와 브라우저 기본 선택 메뉴의 충돌. (P-17)
- Q-10. 소리 기본값(없음이 기본인지)과 브라우저 자동 재생 제한(첫 터치 전엔 못 틂). (P-19)
- Q-11. [구현으로 정리됨] textarea와 뒤쪽 표시 레이어를 사용한다(
editor.js, compose.js).
- Q-12. 한 페이지 안의 빈 줄 하나를 "작은 간격"으로 둘지 "줄바꿈과 같게" 둘지. (R-3)
6. 저장소 안내
2026-10-11 반응형 후속 변경: 편집 기본 설정은 PC에서는 오른쪽에 보이고 모바일에서만 서랍으로 접힌다. 불러오기·안내·새로 쓰기와 본문 입력법 세 줄은 항상 보인다. 예시 글 버튼과 하단의 중복 미리보기는 제거했다. 미리보기 여백 색인은 가장자리 손잡이(누르기·안쪽으로 끌기)로 연다. 동작 줄이기에서는 손잡이의 모션을 끈다. 끝 장 카드는 편집 제목을 기본값으로 쓰되 문구·크기·폭·위치·정렬을 따로 저장한다. 카드 아래 날짜 안내는 없고 ‘이대로 발행하기’로 발행 단계에 간다. 발행 뷰어의 ‘작성자 수정’은 전체 링크를 편집실의 비밀번호 확인 창으로 이어 준다.
- 루트
index.html은 편집실. 편집·미리보기·발행 단계와 하단바 상세는 위 문서 안내를 따른다.
view.html: 편집실 미리보기. reader.html: 예시 글 읽기. published.html과 /t/ 함수: 발행 글 읽기.
publish.js, publish-crypto.js, server/, netlify/functions/: 발행 구현. 저장소 어댑터는 Netlify Blobs를 사용한다.
logo.svg: 편집실과 읽기 링크에 반영한 글자리 로고.
design/교정쇄-편집실.html, meokji/, codex-proposals/: 과거 시안·비교용. 현재 확정 기획과 구분하며 이번 문서 정리에서는 시안 파일을 고치지 않는다.
- 정적 화면:
python3 -m http.server 8000 뒤 http://localhost:8000/. 이 서버만으로 발행 API는 작동하지 않는다.
- 공개 파일 준비:
npm ci, npm run build. 프런트엔드를 번들하지 않고 dist/에 공개 파일만 복사한다.
- 점검: 읽기
tests/smoke.py, 미리보기 하단바 tests/tune-bar.cjs, 편집실 tests/studio-refinement.cjs·tests/editor-visibility.cjs, 효과 tests/accepted-effects.cjs·tests/smoke_brand_effects.cjs, 발행 npm test와 npm run test:publish-ui. 발행 검증의 범위와 남은 운영 확인은 발행에 적는다.
파비콘은 글자리 글자 로고와 분리한 같은 크기의 사각형 두 개(□■, favicon.svg)다. 저장·불러오기는 글 파일(.txt) 하나로 하고, 예전 관리 파일도 읽는다.