프로그래밍 기초는 끝났습니다. 너무 조금만 하고 끝난 것 같다면 따로 배워도 좋지만, 무언가 만들고자 하는 목적 없이 배우면 흥미가 금방 떨어지는 것 같습니다. 계속 이야기하듯, 만들고 싶은 게 생기면 이 코스를 잠시 벗어나서 만들어보고 오길 바랍니다. 저는 계속해서 만들고 고민할 거리들을 쥐어주는 역할을 할 예정입니다.
저는 무엇이든 아주 작게 시작하는 걸 좋아합니다. 코스에서도 이처럼, 작지만 동작하는 프로그램을 키워나가는 방식으로 학습을 이어나가도록 할 예정입니다.
좋은 글이 하나 있어서 공유합니다.
작게 쪼개고 정복하라(ft. 분할정복법)
작지만 동작하는 To-do List
아직은 “서버”라고 부를 수 없는 작은 프로그램으로 시작해 봅시다. 앞으로 이 코스가 끝날 때까지, 이 프로그램을 계속해서 개선하게 될 것입니다.
과제
- CLI 기반 To-do List 프로그램을 개발합니다. 모든 '할 일'은 제목과 내용으로 이루어집니다. **'할 일 추가'**와 '할 일 목록 조회' 기능을 구현합시다.
힌트
- 고민하고 있는 내용을 그대로 검색하면 생각보다 좋은 결과가 많이 나옵니다. ‘목록을 어떻게 다루지?’라는 고민을 하는 중이라면, ‘Java 목록’, ‘Python 목록’ 처럼 검색해 보세요.
- ‘할 일 추가’와 ‘할 일 목록 조회’ 중 어떤 기능을 사용할 지 선택하는 단계가 있어야 합니다.
여담
주제로 무엇이 적합할지 고민을 많이 했습니다. 작게도 만들 수 있고, 키우려면 키울 수도 있고, 백엔드 공부에도 적합한 것이어야 했습니다. 후보는 이 정도였습니다.
- 게시판 (커뮤니티)
- To-do List
- SNS
- 메신저
고민 끝에 To-do List로 결정하게 되었습니다. 그 배경은,
- 게시판은 너무 재미가 없습니다. 기능을 이것저것 얹을 수야 있겠지만, 아무리 학습이라고 하더라도 억지스러운 기능인 경우가 많을 것이라고 생각했습니다. (익명 채팅방이 있는 커뮤니티 사이트를 보신 적이 있을 겁니다)
- SNS는 서비스마다 기질이 너무 크게 달라서, 과제로 내는 기능이 크게 납득되지 않을 것이라고 생각했습니다. 또, 주요한 기능에 대한 시스템 디자인을 저조차도 잘 모르는 것이 큰 문제였습니다.