먼저 찾아보자
메모와 일기 용도의 앱을 탐색해 봤다.
몇가지 쓸만한 앱 후보가 있었다.
하지만 나의 요구사항을 모두 충족하는 앱은 없었다.
Obsidian
- 설치하기 쉬운가? ✅
- 웹 기반인가? ⚠️(Electron)
- Markdown을 지원하는가? ✅
- 가벼운가? ❌
- 편리한가? ❌
- 예쁜가? ✅
- 연속성이 있는가? ❌
- 개발이 되고 있는가? ✅
Zettlr
이 글은 Zettlr를 통해 작성되고 있다.
- 설치하기 쉬운가? ✅
- 웹 기반인가? ⚠️(Electron)
- Markdown을 지원하는가? ✅
- 가벼운가? ⚠️(Obsidian 보다 가벼운 듯)
- 편리한가? ✅
- 예쁜가? ❌
- 연속성이 있는가? ❌
- 개발이 되고 있는가? ✅
위키 엔진
미디어위키
- 설치하기 쉬운가? ✅
- 웹 기반인가? ✅
- Markdown을 지원하는가? ⚠️(플러그인 필요)
- 가벼운가? ✅
- 편리한가? ❌
- 예쁜가? ⚠️(스킨 필요)
- 연속성이 있는가? ✅
- 개발이 되고 있는가? ✅
도쿠위키
- 설치하기 쉬운가? ✅
- 웹 기반인가? ✅
- Markdown을 지원하는가? ⚠️(플러그인 필요)
- 가벼운가? ✅
- 편리한가? ✅
- 예쁜가? ⚠️(스킨 필요)
- 연속성이 있는가? ✅
- 개발이 되고 있는가? ✅
블로그
Jekyll
- 설치하기 쉬운가? ⚠️(Ruby 필요)
- 웹 기반인가? ⚠️(생성 필요)
- Markdown을 지원하는가? ✅
- 가벼운가? ✅
- 편리한가? ❌
- 예쁜가? ⚠️(스킨 필요)
- 연속성이 있는가? ❌
- 개발이 되고 있는가? ✅
Hugo
- 설치하기 쉬운가? ⚠️(Go 필요)
- 웹 기반인가? ⚠️(생성 필요)
- Markdown을 지원하는가? ✅
- 가벼운가? ✅
- 편리한가? ❌
- 예쁜가? ⚠️(스킨 필요)
- 연속성이 있는가? ❌
- 개발이 되고 있는가? ✅
워드프레스
- 설치하기 쉬운가? ✅
- 웹 기반인가? ✅
- Markdown을 지원하는가? ⚠️(플러그인 필요)
- 가벼운가? ❌
- 편리한가? ✅
- 예쁜가? ❌
- 연속성이 있는가? ✅
- 개발이 되고 있는가? ✅
텍스트큐브
- 설치하기 쉬운가? ⚠️(PHP 5.x)
- 웹 기반인가? ✅
- Markdown을 지원하는가? ❌
- 가벼운가? ✅
- 편리한가? ❌
- 예쁜가? ❌
- 연속성이 있는가? ✅
- 개발이 되고 있는가? ❌
CMS
Rhymix
- 설치하기 쉬운가? ✅
- 웹 기반인가? ✅
- Markdown을 지원하는가? ⚠️(플러그인 필요)
- 가벼운가? ❌
- 편리한가? ✅
- 예쁜가? ❌
- 연속성이 있는가? ✅
- 개발이 되고 있는가? ✅
그누보드 5
- 설치하기 쉬운가? ✅
- 웹 기반인가? ✅
- Markdown을 지원하는가? ❌
- 가벼운가? ✅
- 편리한가? ❌
- 예쁜가? ❌
- 연속성이 있는가? ✅
- 개발이 되고 있는가? ⚠️(유지보수 수준)
왜 상용 서비스를 안 쓰는가?
개인정보 주기 싫어서이다. 편하다고 상용 플랫폼을 쓰면 내 소중한 글을 나쁜 목적으로 활용할 수 있기 때문이다.
그까이꺼 그냥 만들면 되지 않나?
그렇다. 은탄환은 없다. 간단하게 만들자.
준비
요구사항은 다음과 같다.
- 설치하기 쉬우면서
- 웹 기반이고
- Markdown 기반이고
- 가볍고
- 편리하고
- 예쁘고
- 크로스 플랫폼 지원으로 연속성이 있고
- 개발을 지속할 수 있도록 설계
그래서 스택은?
요구사항을 충족하면서 빨리 개발하고 싶다.
그러기 위해서 스택을 대충 정했다.
- Python Flask
- MySQL(우선), MongoDB(봐서 필요할지도 모름)
- JQuery(아 이거 가급적 쓰기 싫은데 어쩔 수 없는 선택)
- 프론트엔드는 귀차니즘으로 인해 템플릿 엔진을 사용.
- API 작성하기 귀찮다. 백/프 강결합 구조로 하자.
- 개인 사용목적이고 성능은 굳이...라서 Async는 사용 안함.
설계
우선 RDBMS를 사용하므로 컬럼이 많으면 관리하기 귀찮은 게 사실이다.
컬럼 최소화, 극강의 개발 효율성 중시가 목표이다. 그러므로 메타데이터 작성을 위해 MongoDB를 보조로 사용하게 될 수도 있다.
다음에 계속.