개인사이트 설계와 운영의 의사결정 - Codex 대화

2026-09-1012 개인사이트의 목적·정보 구조·기술·배포·비용을 비교하며 채택한 이유와, 2026-09-1315 후속 적용에서 달라진 선택을 증류했다. 구체적인 결정과 구현·배포 상태는 프로젝트 결정 기록과 Current가 소유한다. 이 노트는 다른 프로젝트에서도 다시 물을 수 있는 판단을 연결한다. 2026-10-17 Mixdog 대화에서 정한 문서 영상의 소유는 마지막 후속 절에 이어 기록했다. 제목은 처음 증류한 대화를 따른다.

찾아온 사람이 읽는 구조

DanzzaN은 자신은 자리에 계속 있고 관심 있는 사람이 와서 보는 구조라고 설명했다. 발표 자료·광고 문구와 적극적인 PR을 기본으로 삼지 않는다. 이를 바탕으로 작성자가 차린 주제·문서 배치와 명시적 링크를 기본 동선으로 선택했다. 방문자 보기 전환의 가능성은 남겼고, 글 전개 선호와 시각 디자인은 별도 선택으로 두었다.

기업 기술 블로그를 참고한 것은 해당 기업을 선호해서가 아니라 구조와 글 구성을 관찰하기 위해서였다. 여러 작성자의 글과 글꼴·색감까지 조사한 결과를 개인 선호와 자동으로 합치지 않았다. 관찰, 재사용할 분석, 사용자가 고른 표현, 실제 채택 결정을 구분하는 사례다. 근거는 사이트의 태도와 분석 정리다.

링크 구조를 고른 뒤에도 관계 종류·이유·의미 방향을 별도 필드와 UI로 제공할 필요가 있는지는 다시 판단했다. DanzzaN은 파일명이나 본문에서 관계를 알 수 있으면 충분하다고 정정했다. 링크의 출발·대상을 유지하는 것과 관계의 의미를 별도 메타데이터로 입력하는 것은 서로 다른 요구다.

원천 Markdown을 그대로 읽는 문서 작성

2026-09-12 DanzzaN은 사이트에서 별도 이름을 덧씌우기보다 원천 Markdown의 제목과 본문을 그대로 보여준다는 점을 문서 작성에 반영하도록 요청했다. 관심 있는 사람이 정리된 내용을 찾아와 읽는 자리라는 태도를 유지하고, 방문자 유입·자기 홍보를 중심으로 구성하거나 발표 자료·광고의 표현을 쓰는 방향을 지양한다.

제목은 목록·검색·그래프·본문 링크에서 무엇을 읽게 될지 예상할 수 있게 쓴다. Atomic은 주장과 적용 범위를 드러내고, Map·Project·Source는 각 문서의 역할에 맞게 이름을 정한다. 도입·소제목은 다루는 내용과 문단 사이의 흐름을 드러내며, Map은 묶음·순서·링크 주변 설명을 함께 살핀다. 제목의 길이를 줄이는 것 자체를 목표로 삼거나 모든 글에 같은 전개·문체를 적용하지 않는다. 글 전개와 문체에 대한 개인 선호는 아직 정하지 않았다. 관계가 제목이나 본문으로 충분히 드러나면 별도 관계 필드를 추가할 필요도 없다.

문장을 다듬어도 주장·근거·인용·출처·불확실성과 개인 기록의 원래 목적을 보존한다. Markdown은 의미·문장·구조·연결을, 화면은 글자 크기·읽기 폭·여백·시각적 강조·같은 내용의 중복 표시를 맡는다. 화면에 맞추려고 원천을 과도하게 줄이거나 별도 사이트용 제목을 만들지 않는다. 기존 노트에서 효과를 확인할 범위부터 적용하고, 앞으로의 작성 기준은 [비공개 문서]에 둔다.

프로젝트의 읽기 흐름 원천의 「후속 선택과 문서 작성 방향」에서는 문서 작성 항목이 Codex의 검토 제안이었다. 이 절은 이번 Second Brain 반영 요청에서 DanzzaN이 직접 제시한 기준을 함께 대조해 정리한 채택 범위다. UI 원문의 저자 조언을 개인 취향으로 바꾼 것이 아니며, 읽기 흐름 A의 선택을 특정 글 전개·폰트·색의 승인으로 확대하지 않는다.

정본과 제공 경로

프로젝트의 코드·계획·운영 기록은 프로젝트 저장소, 개인 지식은 개인 Vault가 소유한다. 콘텐츠 입력·수정은 기존 AI·MCP 경로로 하고 사이트는 문서·그래프·현황 조회를 맡는다. 이 때문에 웹 편집기나 공개 MCP를 추가하는 것을 기본 요구로 삼지 않았다.

문서·링크·검색은 같은 버전의 게시 묶음으로 생성하고, 운영 관측은 별도 API로 읽는 C를 선택했다. 본문 갱신 주기와 운영 관측 주기를 한 주기로 묶지 않으면서, 본문과 검색의 버전이 섞이지 않게 하려는 선택이다. 갱신 실패 때 기존 문서를 유지하는 것과 최근 갱신이 성공했다고 표시하는 것도 구분했다.

처음에는 사이트 콘텐츠의 공개를 기본으로 하고 치명적인 정보만 예외로 두었다. 후속 D-023의 게시 범위 선택은 아래에 이어 기록한다. 미완성·개인적인 내용·공개 표시 부재를 자동 비공개 사유로 삼지 않으며, 홈에 배치하는 선택도 공개 여부와 별개다. 예외를 적용할 때에는 본문뿐 아니라 제목·첨부·검색·연결·과거 게시물의 제공 경로를 함께 본다. 이 원칙을 프로젝트 저장소의 공개 설정이나 PC의 임의 파일 공개로 확대하지 않는다. 데이터와 갱신 설계를 대조했다.

재사용할 기능과 새로 배울 책임

Next.js의 친숙함, Astro의 후보 적합성, Quartz의 Obsidian 문서 처리와 기존 링크·백링크·검색을 비교했다. 다른 도구에도 호환 수단이 있음을 확인한 뒤, 현재 요구에서 가져올 기능이 많은 Quartz를 선택했다. 이름난 도구나 호환 가능 여부 하나보다 실제 원천을 얼마나 그대로 살릴 수 있는지를 보았다.

Go 선택에는 다른 프로젝트의 경험도 들어갔다. DanzzaN은 FastAPI를 팀 프로젝트에서 충분히 사용할 예정이므로 개인사이트에는 Go를 골랐다. FastAPI가 부족하거나 모든 프로젝트에서 Go가 우월하다는 결론이 아니다. 직접 설치하는 EC2 운영도 구현·운영의 책임을 이해하며 배우려는 맥락에서 선택했다.

기술 비교를 대안 세 개로 임의 제한하거나 전체 조합을 한꺼번에 늘리는 대신, 문서 렌더링·운영 API·배포 책임처럼 선택이 달라지는 축으로 나눠 좁혔다. 채택한 방향 안의 일상적인 작업은 이어가고 계획과 달라지는 선택이 생길 때 다시 비교한다는 진행 방식도 확인했다.

운영 단계와 비용의 목적

v1 전에는 로컬 빌드·배포, 운영을 시작한 뒤 CI로 전환하기로 했다. 이는 자동화를 포기한다는 뜻이 아니라, 현재 단계와 반복 운영 단계에서 맡길 일을 구분한 선택이다. 실행 서버는 생성된 묶음을 제공하고 빌드 책임은 분리했다.

비용 우려를 처음에는 월 총예산처럼 다룰 수 있었지만 DanzzaN은 “자원비용은 상관 없지 요청 폭주에 대한 예방책이니까”라고 정정했다. 평소 유지비와 외부 요청에 따라 늘어나는 비용을 나눠야 한다. 필요한 경우 사이트 제공 중단도 허용했으므로 항상 제공하는 것만이 최우선 조건은 아니었다.

CloudFront 정액제 Free를 선택한 뒤에도 원본 우회, DNS 조회, 인증서 갱신·관리 경로를 따로 보았다. AWS 안에서 처리하는 Route 53 선택은 운영 도구를 늘리지 않으려는 판단이었고, DNS가 웹 차단의 보호 범위 밖이라는 점도 확인했다. 자동 중단·수동 재개를 채택했으며 제한 수치는 측정으로 정하기로 했다. 한 계층의 차단을 전체 비용 상한으로 표현하지 않는다.

t4g.small 한시 체험과 다른 사양에도 사용할 수 있는 계정 크레딧을 구분했던 과정은 ‘무료’의 조건을 읽는 사례다. 당시 금액·종료일·서비스 기능을 영구적인 지식으로 고정하지 않고 실제 사용할 시점에 공식 조건과 계정 적용을 확인한다.

측정이 답한 질문

실제 브라우저 탐색에서 첫 방문·문서 이동·검색·새로고침·상태 조회는 서로 다른 요청 수와 전송량을 보였다. 방문 횟수 하나로 모든 비용을 계산하지 않고 경로·캐시·전송량을 연결해야 한다. EC2 내부의 짧은 부하 시험 통과는 공개 인터넷 경로·TLS·CDN·장시간 처리량이나 차단·복구의 검증을 대신하지 않는다. 정확한 수치와 환경은 측정 기록에 둔다.

후속 선택과 실제 적용 — 2026-09-13~15

코드를 GitHub에 저장한 상태, 어느 원천으로 문서를 생성했는지, 실제 전달 묶음에 무엇이 들어 있는지, 그 묶음이 운영에 배포됐는지, v1 출시 기준을 만족했는지를 나눴다. D-021은 이 구분을 버전과 기록에 연결했다. 생성된 파일 400개가 있어도 Windows의 긴 경로 처리 때문에 실제 압축에는 392개만 들어가 문서가 빠진 사례가 있었다. 이후 전달할 압축 내용과 외부 제공 결과를 확인했다. 생성 목록·배포 성공·제품 출시를 하나의 완료로 취급하지 않는 근거다. 당시 파일 수와 보정·검증은 버전 관리 기록에 보존한다.

D-023에서 사용자는 10 Projects/와 30 Knowledge/만 게시하도록 범위를 좁혔다. 앞선 전면 공개 선택보다 이 후속 선택을 우선하며, 선택한 범위 안에서는 공개 표시 부재나 미완성만으로 제외하지 않는 원칙을 유지했다. 다른 폴더의 제외는 게시 범위 선택이지 문서의 위험 판정이 아니다. 과거 직접 주소·색인·자원·캐시와 복구 후보까지 철회 범위를 대조하면서 원천 기록은 보존했다. 운영에서 확인한 차단과 로컬 복구 거부 시험은 구분했고, 철회한 내용을 실제 운영에 다시 복구하는 시험은 하지 않았다. 공개 범위 적용 기록이 정확한 대상과 결과를 소유한다.

D-022의 검색 없는 링크 중심 탐색 이후에도 읽기와 조작의 순서를 다시 골랐다. 사용자는 발췌 위쪽의 조작이 내용을 읽기 전에 눌러 넘기게 한다고 설명했고, 이에 번호·이전·다음·원문 열기를 문단 아래에 두었다. 목록의 화살표와 행의 빈 공간까지 이동하는 방식도 정정해 제목 글자만 링크로 사용했다. ‘모든 기록’은 실제 폴더 계층을 보여주며, 문서에서 돌아오면 펼친 폴더와 읽던 위치를 복원한다. 이는 이 사이트에서 읽기·이동·복귀를 맞춘 선택이며, 모든 제품의 클릭 영역을 작게 만들라는 선호가 아니다. 발췌와 조작 순서, 글자 링크와 파비콘, 폴더와 복귀에서 선택 이유와 확인 조건을 이어 읽는다. 발췌 내용의 선정은 사용자가 이후 읽고 주는 피드백을 기다리며, 당시 선정 알고리즘을 고정 선호로 올리지 않는다.

D-024의 남색·파랑·라벤더와 그믐달 방향은 사용자가 제시한 이미지와 정정에서 나왔다. 모드별 정확한 색 값과 역할 배치는 Codex에게 맡긴 범위다. 색 계열에 대한 선택을 작은 글자나 낮은 대비의 선호로 확대하지 않는다. 이후 직접 요청한 파비콘은 제품 소개 분석의 이미지·영상 이용 범위와 별도의 실제 채택이다. 색상 선택 기록과 위 파비콘 원천에 구체적인 구현을 둔다. 기업 소개·OpenAI·GitHub·Thaki Cloud에서 관찰한 구성을 그대로 이 사이트의 요구사항으로 추가하지 않으며, 비교에서 다시 쓸 판단은 문서·제품·작업 화면의 설계 판단 - 개인사이트 비교 기록에서 연결한다.

사이트가 소유하는 문서 영상 — 2026-10-17

DanzzaN은 Mixdog 대화에서 한 프로젝트 문서에 소개 영상과 백엔드 영상을 함께 보여주기로 했다. 영상은 기존 사이트 전달 경로에서 직접 재생하고, YouTube는 임베드하지 않는 외부 링크로 둔다. 소리가 없는 영상은 음량 조절이 없는 컨트롤로 보여주며 자동재생하지 않는다. 어떤 문서에 어떤 영상을 붙일지는 사이트의 영상 목록이 정한다.

원천 프로젝트 노트에 영상 링크를 넣는 방식에 대해 DanzzaN은 영상을 사이트에서만 보여주고 원천 Markdown은 그대로 둔다고 정정했다. 또 Vault 쓰기 승인은 작업이 끝난 뒤의 증류를 뜻하며, 기능을 위해 프로젝트 노트를 고치는 승인이 아니라고 밝혔다.

원천 제목·본문을 그대로 보여준다는 기준은 원천이 작성한 내용에 적용된다. 이 사이트에서 원천에 없는 영상과 그 표시 제목·재생 설정은 사이트가 소유하며, 원천에서 생성하는 본문·그래프·발췌와 구분한다. 음량 조절을 뺀 것은 소리 없는 이 영상들에 맞춘 선택이며, 모든 재생기에서 음량 조절을 없애라는 선호가 아니다.

앞 절의 구분처럼 테스트·생성·로컬 확인, 원본 업로드, CI 실행, 공개 배포는 각각 다른 단계의 결과다. 단계별 확인 결과와 실제 브라우저의 전체 화면·기기별 재생 확인 범위는 프로젝트의 D-034와 Current가 소유한다.

원천과 연결