✏️기획 배경 및 동기
- 개발자들을 위한 명령어로 만들 수 있는 특별한 투두리스트를 제공하고 싶다.
🗒️스토리 보드(시나리오)
- cli명령어에 익숙한 개발자는 command todo list를 통해 작업의 생산성을 높일 수 있다.
- 마우스를 최소화하여 ToDo List를 작성할 수 있다.
📚기능 구현(요구 리스트)

- 일반 모드와 편집모드를 구분한다.
- esc버튼을 누르면 모드가 변환된다.
- 입력 모드는 입력 창이 화면에 표시된다.
- mkdir {그룹 이름}
- 하나의 그룹을 만든다.
- ex) mkdir EN Complete
- vi {그룹id} {게시글 id - optional}
- vi {그룹id}
- 그룹id에 새로운 todo를 추가한다.
- 비어있는 입력 창이 뜬다.
- vi {그룹id} {게시글 id}
- 그룹 id에 게시글 id를 수정한다.
- 해당 게시글의 수정 창이 뜬다.
- vi가 켜진 상태에서 esc 버튼이 눌리면 명령어 입력 창이 나온다.
- q! → 저장하지 않고 종료한다.
- wq! → 저장하고 종료한다.
- vi가 켜진 이후에는 단순 텍스트 입력
- 명령어 사용 x
- 너무복잡할 것 같음, 프론트에서 커서이동인식이 필요함.
- 가능하면 구현해도..
- mv {게시글 id} {그룹id or 게시글id}
- mv {게시글 id} {그룹id}
- 지정한 게시글을 다른 그룹의 최하위로 옮긴다.
- mv {게시글 id} {게시글 id}
- 지정한 게시글을 동일 그룹의 다른글과 순서를 바꾼다.
- 다른 그룹의 글과는 변경할 수 없다.
- rm {게시글 id or 그룹 id}
- 그룹 id또는 게시글 id를 지정하여 삭제한다.
- 그룹id를 삭제하는 경우에는 한번 더 알림한다.
Back
- 입력은 1개의 API 요청을 받는다.
- 요청받은 문자열을 파싱하여 명령어를 해석한다.
- 스페이스와 같은 포맷검사.
- 실행가능한 명령어인지 검사.
- 명령어에 맞는 서비스를 호출한다.
- 서비스를 처리하고 적절한 응답을 내려준다.
⇒ 문자열 파싱, 전략 패턴같은것을 도입해보기 좋을것 같다.
- 명령어에 대한 1개의 API요청은 다양한 응답을 가진다.
ex)
post
api/command
@RequestBody String command
- command:
mkdir group1
- 201
- command:
vi 1 1
- 200
- 1번 그룹의 1번 게시글 데이터 반환
- 소셜로그인과 같은 부가기능 제공
Front
- esc키 이벤트 관리
- 잘 몰라서 더 못적었습니다. 🥲
팀 이름
- 프로젝트 주제와 연관된 이름이면 좋을것 같다.