일기 slecs

개인 블로그 관리 시스템 뼈대를 처음부터 직접 설계해 띄운 이야기

목차

새 프로젝트를 처음부터 차려 올렸다. 개인 블로그 운영을 위한 간단한 관리 시스템을 만들기로 결심하고, 깔끔한 프로젝트 구조 위에 첫 커밋을 띄웠다.

프로젝트 초기화의 작은 신중함

initial commit 이라고 해서 아무렇게나 파일을 던지는 건 아니다. 특히 1인 개발이지만, 나중에 협업하거나 코드를 공개할 가능성을 염두에 두고 처음부터 정리정돈하는 습관이 중요하다고 생각한다. .env.example.gitignore 를 먼저 준비한 건 그 때문이다.

환경 설정과 보안:
- .env.example 은 실제 환경 변수가 아니라, "어떤 변수들이 필요한가"를 다른 개발자(혹은 미래의 나)에게 알려주는 문서 역할을 한다
- 실제 .env 파일은 .gitignore 에 등록해서 깃허브에 올라가지 않도록 차단
- DB 비밀번호, API 키, 서명 토큰 같은 민감 정보가 버전 관리 히스토리에 남지 않도록 하는, 가장 기초적이지만 절대 빠뜨려선 안 될 수습

구조부터 생각한 백엔드와 프론트엔드

app/main.py 에 플라스크나 유사한 경량 웹 프레임워크의 진입점을 만들었다. 블로그 운영용이라 복잡한 기능은 필요 없겠지만, 나중에 포스트 추가/수정/삭제 기능이 늘어날 때를 대비해 app/ 디렉토리 아래로 모듈을 정리하는 구조를 잡았다.

파일 역할
main.py 라우팅, 요청 처리 진입점
templates/ HTML 템플릿 (Jinja2 등)
static/style.css 스타일시트

프론트엔드는 최소한의 CSS로 시작했다. 나중에 디자인을 개선할 여지를 남겨두되, 처음부터 과하게 꾸미려 하지 않았다. 개발 초기엔 기능 완성이 최우선이니까.

관리자 대시보드와 포스트 폼

admin_dashboard.htmladmin_post_form.html 을 미리 템플릿으로 준비했다. 이건 내가 혼자 쓸 블로그지만, UI/UX 를 생각해서 "관리자용" 페이지를 분리한 것이다. 포스트를 작성/수정하는 폼과, 전체 포스트 목록을 한눈에 보는 대시보드를 별개로 구성하면 나중에 기능 추가도 수월할 것 같았다.

Initial commit 의 의미

요즘은 create-react-app 같은 스캐폴딩 도구가 알아서 파일을 만들어 주지만, 이렇게 손으로 차린 initial commit 은 "프로젝트의 철학"을 담는다.

  • 환경 설정을 먼저 신경 쓰는 습관
  • 파일 구조를 사전에 설계하는 사고
  • 나중의 나 또는 다른 사람을 배려하는 마음

특히 이런 개인 프로젝트에선 이런 규율 없이 시작하다 보면 며칠 뒤 스파게티 코드가 되곤 한다. 처음 30분을 더 투자해서 skeleton 을 다져 놓으니, 지금 기분이 훨씬 낫다.

앞으로의 계획

이제 main.py 에 실제 라우트를 구현하고, DB(아마 SQLite 정도)를 붙일 차례다. 템플릿들도 기능이 들어갈수록 살이 붙을 것 같다. 작고 소박하지만, 탄탄한 기초 위에 올린 프로젝트가 되도록.

댓글 0

첫 댓글 달아줘.