todo 프로그램들 너무 불편한데..?

Jaehong Hwang·2022년 6월 9일
3
post-thumbnail

오해하지 마시기 바랍니다, 지금 시중에 있는 프로그램들은 전부 훌륭합니다.

판사님 저는 아무 말도 하지 않았습니다... 😂

불편함, 아이디어

시작은 항상 소소합니다, 이번에는 제 사소한 불편함이 시작이였습니다.
저는 외관을 굉장히 중요시 하면서 쉽게 질려 합니다
(디자인은 못하면서 이쁜 프로그램 너무 좋아합니다. 😎)

그리고 할 일에 대해서 혼자 정리를 잘 못해 프로젝트의 issue list와 별개로
개인의 todo list를 관리 했는데
언제나와 같이 todo 프로그램도 이쁜걸 항상 찾아나갔습니다.

todoist, Microsoft todo, trello, Notion 등등.. 여러가지 다양한 프로그램을 써본 결과.
제 할일은 어디에도 온전치 못한 상태로 이곳 저곳에 뿌려지는 결과만 남았습니다.

음.. 이런걸 원한게 아니였는데..

결국 남은 결과를 보고 생각난건 하나였습니다.
아.. 파일 시스템에 git처럼 투두 목록이 남아있으면 좋겠다..

그래서 실행애 옮겼습니다.

시작이 반이다

저는 cli 프로그램을 만들어 본 적이 없습니다. (shell script로 놀며 작업한건 제외 했습니다)
서버 작업을 하면서 Docker로 한번에 세팅 하거나 Apache나 Nginx로 직접 설치해서 서버 관리 뚱땅뚱땅 대충 하고
PHP나 Node.js로 Backend 개발과 함께 React나 Vue로 Frontend 개발을 하는 흔한 잡종 개발자입니다.
이도저도 아닌 그냥 하고싶은대로 살았습니다..

이전에도 사이드 프로젝트로 Golang을 써본적이 있었기 때문에
cli 프로그램? Go로 가자~ 라고 단순히 시작을 했고

git을 따라 프로젝트 내부에 존재하는 .todo 파일 일 테니 .todo로 프로젝트 이름도 정했습니다.

전부다 대충대충인것 같은데..

어찌저찌 기본적인 구상과 구현 방식을 생각 해놓고
작업을 시작을 했습니다...만

구현하다 중단되는 일이 너무 많았습니다.

변명하는 시간

저는 SI 회사에서 근무하고 있습니다, 그러다 보니 일이 바빠서 잊고 있다가 끝나면 친구들과 잠시 놀기 바쁘고
어느새 잊혀진걸 다시 작업 하다보면 스스로 구조를 다시 고민하게 되고의 반복이였습니다.

그렇게 아 이 아이디어는 뺏기면 안된다 라며 private repository로 깃헙에 파놓은지 3년이란 시간이 지났고
작업 진척이 아직도 늦어지고 있는걸 느끼던 중.. 최근 public 으로 변경을 했습니다.

public으로 바꾼 이유는?

큰 이유는 없었습니다.
최근 너무 혼자 갇혀 산다는 생각이 들었고 여러 사람들에게 평가를 받으며 제 시장 가치가 어느정도 되는지
스스로 느끼고 싶기도 했습니다.

크게 정리하면 딱 세가지 겠네요
1. 내 소스에 대한 평가를 받아보고 싶다.
2. 혼자 private로 끙끙 앓으면서 만들다 보니 더 속도가 느려지는것 같다
3. 오픈 소스 프로젝트를 만들어보고 싶다 (단순 토이 프로젝트가 아닌 실재 오픈소스 프로젝트)

그래서 뭘 만들었다는 건데?

제가 만든 .todo의 슬로건은 이렇습니다.

당신의 인생은 당신의 것 입니다.
인생을 프로그램에 맡기지 마세요.

음.. 너무 거창한것 같기는 한데
할일에 대한 관리를 프로그램 서버에 다 맡기고 이도저도 아닌 todo list를 가지게 된 저는
이 슬로건 밖에 생각이 안나더군요..

뭐 일단 지나가서 나머지에 대한 설명을 추가적으로 하면

.todo는 단순한 폴더 입니다. 할일 목록을 json 형태로 저장하고 있으며
그 구조를 todo collectionCRUD 작업이 되는것이 목표이죠

# 파일 구조

.todo
- main.json
- logs
- 등등 추가 예정

아래는 간단한 명령어 실행 화면 입니다.


뭐 위와 같은 형태로 각 collection, task에 대한 처리가 가능한 프로그램을 구상 하고 있습니다.
gui는 그럼 Fork, GitKraken, Source tree와 같은 역할이 되는것 이죠

앞으로의 구상?

아직 .todo는 많이 부족한 프로그램입니다.
현재 목표로 하고 있는 0.1.4 버전에서 추가될 반복 작업에 대한 처리가 되더라도
예시 GUI 프로그램이 없으면 작업하기도 어렵고 애매한 프로그램이 되지 않을까 생각 합니다.

개인적인 목표로는 여러 기능과 최적화를 포함한 .todo, gui, .todo-example-server 와 같은 리포를 여러개 추가해
많이 활성화를 시키고 싶은 프로젝트 입니다.

진행하면서 학습한것

우선 cli 프로그래밍에 대해 여러가지 생각을 하게 된 것 같습니다
이전에도 간단한 phpto 라는 사이드 프로젝트를 진행하면서 쉘 스크립트에 대한 학습과 처리를 진행 해봤지만
.todo를 진행 하면서는 파일 내에 데이터를 저장할때 어떻게 효율적으로 관리를 할지 여러 방면으로 고민을 했던 것 같습니다.

12-factor-app의 개념과 viper,
cobra 같은 cli golang framework도 알게 되었고
golang에 대한 학습도 조금은 더 되지 않았나 생각 합니다.
혼자 큭큭대며 수익 구조도 생각해보는 계기가 된 것 같습니다.

글을 마치고 제 글을 제가 볼때 다른분들이 읽으면서 얻으실 건 없는것 같긴 하지만..
.todo 프로젝트 많은 관심 부탁드립니다 ㅎㅎ

감사합니다 🙇‍♂️

profile
DNDLAB Full-Stack Developer

2개의 댓글

comment-user-thumbnail
2022년 6월 12일

오.. 화이팅입니다!!

1개의 답글