2021년의 평평한 파일 목록이 2026년 1월에 폴더 구조로 바뀐 것을 비교한 그림
재시작 첫날의 변화. 왼쪽이 5년 동안 그대로였던 상태, 오른쪽이 그날 밤의 상태다.Day one of the restart. On the left is how the repo sat for five years; on the right is how it looked that night.

이 저장소의 첫 커밋은 2021년 1월 10일이고, 그해 마지막 커밋은 4월 12일이다. 그 뒤로 오늘까지 5년이 지났는데, 그 사이에 쌓인 커밋은 다섯 개뿐이다.

The first commit in this repository was on January 10, 2021, and the last commit of that year was on April 12. Five years passed between then and now, and across all five of those years, there were only five commits.

좌우로 밀어서 표 전체 내용을 확인하세요
날짜커밋바뀐 것
2022-03-11Delete CNAME → Create CNAME → Update CNAMECNAME 만
2023-05-27Update CNAMECNAME 만
2025-06-0325_06index(1).html 추가, index.html 수정
Swipe horizontally to view the full table
DateCommitsWhat Changed
2022-03-11Delete CNAME → Create CNAME → Update CNAMECNAME only
2023-05-27Update CNAMECNAME only
2025-06-0325_06Added index(1).html, modified index.html

군 복무와 학업으로 손을 놓았다. 도메인이 끊기지 않게 CNAME 을 손본 게 전부였고, 2025년 6월에 한 번 열어 봤다가 index(1).html 이라는 파일 하나를 남기고 다시 닫았다.

Military service and university coursework kept me away from the project. All I did was touch CNAME so the domain would not expire—except once in June 2025, when I opened the repo, dropped a file named index(1).html into the root, and closed it again.

첫날 한 일은 만드는 게 아니라 지우는 것이었다Day One Was About Deleting, Not Building

다시 시작한 날은 2026년 1월 17일이다. 그날 하루에 커밋이 여덟 개 있다(26.0.1 ~ 26.0.8). 그중 첫 번째 커밋의 내용 대부분이 삭제다.

I came back to the site on January 17, 2026. I made eight commits that day (26.0.1 through 26.0.8), and almost the entire first commit was deletions.

38c18b1  2026-01-17 18:26  26.0.1
  A  CarOpenWorld/index.html
  A  EscapeForCar/index.html
  A  NuclearSurvive/index.html
  M  index.html
  D  project-1.html   D  project-2.html   D  project-3.html   D  project-4.html
  D  script-body.js   D  Website-1.css
  D  Test.html        D  Test copy.html   D  Test copy 2.c    D  test2.html
  D  index(1).html
  D  ex/ex1.html … ex/ex10.html          ← 10개
38c18b1  2026-01-17 18:26  26.0.1
  A  CarOpenWorld/index.html
  A  EscapeForCar/index.html
  A  NuclearSurvive/index.html
  M  index.html
  D  project-1.html   D  project-2.html   D  project-3.html   D  project-4.html
  D  script-body.js   D  Website-1.css
  D  Test.html        D  Test copy.html   D  Test copy 2.c    D  test2.html
  D  index(1).html
  D  ex/ex1.html … ex/ex10.html          <- 10 files

한 커밋에서 파일 21개가 사라졌다. 남은 건 index.html 하나와, 그날 새로 만든 폴더 세 개다.

Twenty-one files disappeared in a single commit. All that remained was index.html and three new directories created that evening.

지우는 게 아깝지 않은 이유5년 전에는 실험한 흔적을 Test copy 2.c 같은 이름으로 남겨 뒀다. 그런데 git 을 쓰고 있으면 지워도 사라지지 않는다. 지금 이 글에 그때 파일 목록을 그대로 옮겨 적을 수 있는 것도 그 덕분이다. 작업 폴더에서 치우는 것과 기록에서 없애는 것은 다른 일이다.
Why Deleting Old Files Is Easy in GitFive years ago, I kept scratch files around under names like Test copy 2.c just in case. When you use Git, deleting a file from the working tree does not erase it from history. The only reason I can list those exact filenames in this post today is that Git still remembers them. Cleaning up your workspace and destroying history are two very different things.

파일 이름이 폴더가 됐다Filenames Became Folders

2021년의 project-1.html ~ project-4.html 은 파일 이름만 봐서는 무슨 페이지인지 알 수 없었다. 열어 봐야 "게임설명"인지 "사이트 업데이트 내용"인지 알 수 있다. 그걸 폴더 이름으로 옮겼다.

In 2021, names like project-1.html through project-4.html told you nothing about what was inside; you had to open the file to see whether it was "Game Overview" or "Site Update Log." I replaced those numbered files with named directories.

좌우로 밀어서 표 전체 내용을 확인하세요
20212026.01주소
project-1.htmlCarOpenWorld/index.html/CarOpenWorld/
(없음)EscapeForCar/index.html/EscapeForCar/
(없음)NuclearSurvive/index.html/NuclearSurvive/
project-4.htmlSiteHistory/index.html/SiteHistory/
LYSC+개인+정보+처리+방침.htmlInformation/LYSC개인정보처리방침.html/Information/…
CarOpenWorld-Image.PNGimage/CarOpenWorld-Image.PNG—
Swipe horizontally to view the full table
20212026.01URL
project-1.htmlCarOpenWorld/index.html/CarOpenWorld/
(none)EscapeForCar/index.html/EscapeForCar/
(none)NuclearSurvive/index.html/NuclearSurvive/
project-4.htmlSiteHistory/index.html/SiteHistory/
LYSC+개인+정보+처리+방침.htmlInformation/LYSC개인정보처리방침.html/Information/…
CarOpenWorld-Image.PNGimage/CarOpenWorld-Image.PNG—

공백이 + 로 치환된 채 5년을 버틴 LYSC+개인+정보+처리+방침.html 도 이때 정리됐다. 이미지도 루트에 널려 있던 것을 image/ 로 옮겼다. 커밋 로그에 R100 으로 찍혀 있다 — 내용은 한 글자도 안 바뀌고 위치만 옮겼다는 뜻이다.

LYSC+개인+정보+처리+방침.html—which had survived five years with literal + signs in its filename—was finally cleaned up too. Loose images in the repository root were moved into image/, showing up as R100 in the git log (100% rename, zero bytes changed).

폴더 이름이 곧 주소다project-1.html 은 파일 이름을 바꾸면 링크가 깨진다. CarOpenWorld/index.html 은 폴더가 주소라서 안쪽을 통째로 갈아엎어도 /CarOpenWorld/ 는 그대로다. 이름을 잘 짓는 게 나중에 안 깨지는 조건이 된다.
A Folder Name Is a Stable URLIf you rename project-1.html, every link pointing to it breaks. With CarOpenWorld/index.html, the directory name itself is the URL (/CarOpenWorld/), so you can completely replace the files inside without breaking external links.

검색에 잡히게 만드는 데 하루가 걸렸다Spending a Day on Search Engine Indexing

2월 9일 하루에 커밋이 여섯 개 있다. 시간 순서가 그날 무엇을 했는지 그대로 보여 준다.

On February 9, I pushed six commits. Their timestamps show the exact order of what I wired up that night:

좌우로 밀어서 표 전체 내용을 확인하세요
시각추가된 것
22:06Information/index.html · partnership/index.html
22:25ads.txt
23:16robots.txt · sitemap.xml · generate_sitemap.py · SITEMAP_README.md
Swipe horizontally to view the full table
TimeAdded
22:06Information/index.html · partnership/index.html
22:25ads.txt
23:16robots.txt · sitemap.xml · generate_sitemap.py · SITEMAP_README.md

다음 날에도 커밋이 열 개 있고, 그 안에 네이버 소유 확인용 빈 페이지 두 개가 들어온다(naver…html). 검색 등록에 필요한 파일들이다.

Ten more commits followed the next day, including two verification HTML files (naver…html) required to register the domain with Naver Search Advisor.

여기서 하나 짚어 둘 게 있다. generate_sitemap.py 가 이 저장소에 들어온 첫 스크립트다. 그전까지는 전부 손으로 만든 HTML 이었다. sitemap.xml 은 페이지가 늘 때마다 URL 을 하나씩 더해야 하는데, 그게 손으로 하기 가장 짜증나는 종류라서 제일 먼저 스크립트가 됐다.

One milestone is worth pointing out here: generate_sitemap.py was the very first script added to this repository. Up to that point, every file was hand-edited HTML. Because sitemap.xml required manually appending a new <url> entry every time a page was added—the most tedious kind of busywork—it became the first thing I automated.

자동화는 가장 지루한 곳에서 시작된다무엇을 스크립트로 뺄지 미리 설계한 게 아니다. 손으로 하기 제일 싫은 것이 먼저 스크립트가 됐고, 그게 sitemap.xml 이었다. 설계보다 짜증이 먼저였다는 게 정직한 순서다.
Automation Starts Where the Busywork Hurts MostI did not sit down and design a build pipeline up front. The task I hated doing by hand the most became a script first, and that happened to be sitemap.xml. Annoyance came before architecture.

그리고 블로그를 붙였다Adding the Blog Section

2월 18일, 커밋 하나에 blog/ 전체와 about/ 이 들어온다. 목록 페이지(blog/index.html)와 글 페이지용 스타일(blog/assets/post-style.css)이 이때 생겼고, 2월 26일 커밋에서 사이드바(sidebar.js)와 목록 스타일이 붙었다. 여기까지가 지금의 블로그 뼈대다.

On February 18, a single commit added the entire blog/ directory and about/. The post index (blog/index.html) and post stylesheet (blog/assets/post-style.css) landed that day, followed on February 26 by the sidebar script (sidebar.js) and list styles—forming the skeleton of the current blog.

한 달 반 만에 달라진 것What Changed in a Month and a Half

다음에 손볼 것도 커밋 로그가 알려 준다. sitemap.xml 은 스크립트가 만들지만 글과 페이지 목록은 여전히 손으로 넣어야 한다. 그리고 blog/index.html 의 글 카드도 글을 추가할 때마다 직접 복사해 붙이고 있다. 2021년에 헤더 45줄을 다섯 번 복사하던 것과 구조가 같다. 파일 개수만 늘었을 뿐이다.

The commit log also points out what needs fixing next. Although generate_sitemap.py outputs sitemap.xml, the list of pages inside the script is still maintained by hand. And every time I write a new post, I still copy-paste a card block into blog/index.html. Structurally, it is no different from copying the 45-line header across five files back in 2021—there are just more files now.

같은 문제가 규모만 바꿔서 돌아온다5년 전에는 페이지가 다섯 개라 손으로 버텼다. 지금은 페이지가 마흔 개가 넘는다. 손으로 버티는 구조 자체는 안 바뀌었고, 버텨야 할 양만 여덟 배가 됐다. 여기를 고치지 않으면 다음에 또 같은 글을 쓰게 된다.
The Same Problem Returns at a Larger ScaleFive years ago, I got by with manual edits because there were only five pages. Now there are over forty. The manual workflow has not changed—only the number of files has multiplied by eight. If I do not fix that next, I will end up writing this exact same retrospective again.