====== LifeMotif: GMail-based Private Diary System ====== 구글 코드: http://code.google.com/p/lifemotif-desktop/ \\ Git 사용하기: http://rogerdudler.github.io/git-guide/index.ko.html ===== Desktop ===== ==== Concept ==== === 플랫폼 선택에 있어 === LifeMotif는 일단 '오픈(open)'되게 나갈 생각이다. 그러므로 가능한 한 여러 플랫폼을 지원할 수 있도록 만들었으면 좋겠다. 이것은 빌드된 바이너리 뿐만 아니라 소스 코드에도 해당된다. 그러므로 어떤 특정한 플랫폼만 지원하는 기술은 사용하지 않았으면 좋겠다. C#의 경우 문법적으로도 깔끔하고, 여러 좋은 점이 많지만 Microsoft에 묶여 있다는 인상을 접기 어렵다. 여러 플랫폼을 아우를 수 있는 라이브러리로 Qt가 있으므로 Qt를 사용하고, C++를 사용하도록 하는 것이 좋다고 판단하였다. OAuth나 이메일 데이터를 가져오는 네트워킹 파트에서는 Python을 사용하는 것이 간결하고 더 효율적인 것으로 생각한다. 또한 네트워크가 아닌 부분 있어 왠만한 부분들은 표준 C++ 기능을 이용하여 Qt를 이용하지 않더라도 큰 문제 없이 동작하도록 하자. Qt를 사용해보니, 상당한 이점이 많으므로 Qt를 주된 라이브러리로 사용하도록 한다. Qt 라이브러리는 많이 사용한 경험이 없어 계속 새로 알아낸 것들은 문서화를 진행하고 있다. 해당 항목은 [[qt:start]]에 기록하도록 하자. 현재 Visual Studio에 많이 의존하여 코드를 작성하였지만 빌드, 배포 보두 여러 플랫폼을 고려하도록 작성하도록 한다. ===== 주요 기능 ===== - 인증 기능 (authenticate) * Gmail로부터 사용자의 이메일 계정에 접근할 수 있도록 허락받는 기능 * Gmail 서버로부터 access token, refresh token을 받아 오는 기능 - 이메일 리스트 가져오기 (email listing) * 이메일 서버로부터 유저가 정한 메일함으로부터 이메일 목록을 가져오는 기능 * 이메일이 전달된 날짜를 바탕으로 언제 쓰여진 일기인지 파악 - 이메일 데이터베이스 * 이메일을 날짜별로 분류함. GMail은 이메일을 제목을 기반으로 하나의 대화로 묶는 기능이 제공되므로 대화 단위로 데이터베이스를 작성함. - 일기 보기 * 이메일, 즉 일기 하나를 가져와서 출력하는 기능 * 이메일 raw data의 파싱이 필요함. ===== Web ===== 별도의 웹 인터페이스를 만들어서 사용하고 싶기도 하다. 그러므로 이 경우에는 Python django, flask 혹은 PHP 생짜 기반의 웹 인터페이스도 좋고, 별도의 워드프레스 플러그인화 해도 무방할 듯하다. ==== Django ==== 파이썬을 기반으로 웹프레임워크 생성. ==== 워드프레스 플러그인화 ==== 워드프레스 플러그인에서의 기능 * 지메일 인증 기능 * 이메일 로드 기능 * 이메일 쓰기 기능 * 이메일 쓰고 나중에 답신하기 기능... * 여러 플러그인...