
이 사이트를 만들면서 정한 것들
글을 쌓기 전에, 사이트를 세팅하면서 내린 판단을 먼저 남겨 둔다. 나중에 “왜 이렇게 해 놨지?” 싶을 때 다시 찾아보기 위한 기록이다. 정답이라기보다는 당시 조건에서 이렇게 판단했다에 가깝다.
출발점: 고정비가 나가지 않을 것
가장 먼저 정한 원칙은 매달 나가는 비용을 없애는 것이었다. 글이 쌓이는 속도와 상관없이 서버비가 계속 나가면, 사이트를 오래 유지하기 어렵다. 그래서 도메인 비용 말고는 들지 않도록 정적 사이트 생성기와 무료 호스팅 조합을 골랐다.
판단 1. DB 없는 정적 사이트로 간다
회원가입, 로그인, 댓글 저장 같은 기능은 서버와 DB를 요구한다. 서버가 생기면 비용과 관리 부담이 같이 생긴다.
이 사이트에 필요한 건 “글을 읽는 것”이라 정적 사이트로 충분했다. 나중에 댓글이나 검색이 필요해지면, 외부 서비스 기반 댓글이나 빌드 시점에 색인을 만드는 검색처럼 정적 사이트와 맞는 방식만 검토하기로 했다.
판단 2. 카테고리는 URL에 넣지 않는다
가장 고민한 부분이다. 글 주소를 /주제/글-제목/ 처럼 나누면 보기엔 깔끔하다.
하지만 두 가지가 걸렸다.
- 한 글이 두 주제에 걸칠 수 있다. 어느 경로에 넣을지부터 애매해진다.
- 분류 체계는 바뀐다. 카테고리를 쪼개거나 합치면 기존 글 주소가 전부 바뀌고, 검색엔진에 잡혀 있던 주소마다 리디렉션을 걸어야 한다.
그래서 글 주소는 /blog/<slug>/ 로 평평하게 두고, 분류는 글 안의 값으로만 관리한다.
카테고리별 목록은 별도 페이지에서 보여 준다. 분류를 바꿔도 글 주소는 그대로 남는다.
판단 3. 서브도메인으로 나누지 않는다
주제별로 서브도메인을 따로 두는 방법도 있었다. 하지만 검색엔진은 서브도메인을 사실상 별개 사이트처럼 다룬다. 글이 적은 초기에 유입이 여러 곳으로 흩어지면 어느 쪽도 힘을 받지 못하므로, 한 도메인 아래 경로로 묶는 쪽을 택했다.
판단 4. 빈 카테고리는 메뉴에 띄우지 않는다
메뉴를 눌렀는데 아무 글도 없다면, 방문자 입장에서는 미완성 사이트다. 그래서 글이 한 편도 없는 카테고리는 목록 페이지도 만들지 않고 메뉴에도 표시하지 않도록 했다. 글이 생기면 그때 메뉴가 나타난다.
판단 5. 이름과 주소를 분리한다
카테고리마다 URL에 쓰이는 slug와 화면에 보이는 이름을 따로 둔다.
표시 이름은 언제든 바꿔도 되지만, slug는 주소이므로 한번 정하면 바꾸지 않는다.
이름은 한 파일에서만 관리해서, 바꿀 때 메뉴·페이지 제목·설명이 한꺼번에 따라 바뀌게 했다.
처음부터 지키기로 한 규칙
- 레이아웃이 나중에 밀리지 않게 한다. 콘텐츠가 늦게 끼어들며 본문이 아래로 밀리면(CLS) 페이지 품질 지표가 떨어진다. 나중에 들어갈 요소는 자리를 미리 고정 높이로 잡아 둔다.
- 남의 이미지를 쓰지 않는다. 공식 아트워크나 다른 사이트 캡처 대신 직접 만든 이미지만 쓴다.
- 이미지는 빌드 과정에서 최적화되는 위치에 둔다. 원본을 그대로 올리면 페이지가 느려진다.
- 파일명은 영문 소문자와 하이픈으로만 짓는다. 한글이나 공백이 들어간 파일명은 배포 후 깨지는 경우가 있다.
일부러 미룬 것
다국어 지원은 지금 하지 않는다. 번역되지 않은 빈 페이지가 쌓이면 오히려 사이트 품질이 낮아 보인다. 기존 주소를 건드리지 않고 나중에 붙일 수 있는 구조라서, 글이 충분히 쌓인 뒤에 다시 판단하기로 했다.
디자인 손질도 뒤로 미뤘다. 해 두면 좋지만, 사이트에 먼저 필요한 건 디자인보다 글이다.