왜 블로그를 시작했나
Flutter + Firebase로 학교 앱을 1인 개발하면서 수많은 문제를 만났고, 그때마다 구글링으로 해결했다. 그런데 같은 문제를 두 번째 만났을 때 “이거 전에 어떻게 해결했더라?” 하며 또 검색하고 있는 나를 발견했다.
코드에 주석을 남기면 되지 않냐고 할 수 있지만, 주석은 “어떻게"만 남기지 “왜"는 남기지 않는다. 왜 이 구조를 선택했는지, 어떤 대안을 시도해봤고 왜 실패했는지, 그 과정을 기록하려면 코드 바깥에 공간이 필요했다.
그리고 한 가지 더. 학교 앱을 만들면서 겪은 문제들 — NEIS API의 시간표 구조를 파싱하는 법, flutter_local_notifications에서 matchDateTimeComponents로 주간 반복 알림을 설정하는 법, Firestore에서 n-gram 검색을 구현하는 법 — 은 나만 겪는 문제가 아닐 거다. 누군가는 똑같은 상황에서 검색하고 있을 테니, 내가 삽질한 기록이 그 사람의 시간을 아껴줄 수 있다.
기록하지 않으면 사라진다. 그래서 블로그를 만들기로 했다.
블로그에 쓸 내용
크게 세 가지 카테고리로 운영할 예정이다.
서비스 개발기
직접 만든 서비스의 기획부터 개발, 운영까지의 과정을 기록한다. 첫 번째는 Flutter + Firebase로 만든 학교 앱. Java 프로토타입 159커밋을 버리고 Flutter로 전환한 이유, Riverpod을 선택한 과정, 급식 알림 하나를 제대로 만드는 데 1년이 걸린 이야기 같은 것들.
단순히 “이렇게 했다"가 아니라 “왜 이렇게 했고, 다른 방법은 왜 안 됐는지"를 커밋 히스토리와 함께 복기하는 게 목표다. 앞으로 다른 서비스를 만들게 되면 그 과정도 여기에 쓸 예정이다.
기술
Flutter, Firebase에 국한하지 않고 개발하면서 배운 것들. 풀스택 개발자가 되고 싶은 사람으로서 새롭게 접하는 기술들도 다룰 예정이다.
이 블로그 자체를 만든 과정 — Hugo 정적 사이트 생성기 선택, Stack 테마 커스터마이징, Intersection Observer 기반 스크롤 애니메이션 구현, GitHub Actions 배포 — 도 여기에 속한다.
TIL (Today I Learned)
짧지만 기록할 가치가 있는 것들. 에러 해결법, 새로 알게 된 패턴, 유용한 도구 등. 블로그 글 하나로 쓰기엔 가볍지만 머릿속에서 사라지기엔 아까운 것들을 모아두는 공간.
꾸준히 쓰는 게 목표다. 완벽한 글보다 기록하는 습관이 우선이니까.