개인 일기장
Dex 안녕. 솔직히 임무가 너무 벅차서 기록을 남겨두려고 했어. 간단한 일기 앱을 만들어 줄 수 있어? 새 항목을 입력하면 날짜와 함께 저장되고, 예전 항목들을 다시 읽을 수 있게 하고 싶어. 복잡할 필요는 없어. 그냥 머릿속 생각을 꺼내놓을 수 있는 정도면 돼 ✍️
만들 결과물
Commands: new / read / quit
> new
2026-05-24
Had a productive morning. Finished the inventory manager project.
Figured out how JSON serialisation works properly.
[press Enter on an empty line to save]
Entry saved.
> read
--- 2026-05-24 ---
Had a productive morning. Finished the inventory manager project.
Figured out how JSON serialisation works properly.
--- 2026-05-23 ---
...
> quit필요한 것
- 파일과 예외 처리 — 새 항목을 위한 추가(append) 모드, 전체 파일 읽기, 첫 실행 시 파일이 없는 경우 처리
- 모듈과 표준 라이브러리 — 오늘 날짜를 문자열로 얻기 위한
datetime - 문자열 — 날짜 헤더 포맷팅, 파일 내용을 항목별로 다시 나누기
- 제어 흐름 — 명령 루프, 항목 작성을 위한 여러 줄 입력 루프
- 출력과 입력
힌트
추가(append) 모드가 핵심입니다. 파일을 "a"로 열면 기존 내용을 건드리지 않고 끝에 덧붙입니다. 이렇게 하면 기존 항목을 삭제하지 않고 새 항목을 넣을 수 있습니다.
datetime.date.today()는 오늘 날짜를 제공합니다. str()이나 f-string을 사용해 문자열로 변환하면 항목 헤더로 사용할 수 있습니다. datetime 모듈은 표준 라이브러리에 포함되어 있습니다.
작성 전에 항목을 모으세요. 사용자가 여러 줄을 입력할 수 있게 하고, 각 줄을 리스트에 추가하세요. 빈 줄을 입력하면 리스트를 합쳐서 항목 전체를 한 번에 작성합니다.
더 나아가기
핵심 일기 기능이 동작하면:
read가 보여주는 양을 제한하세요. 항상 전체 파일을 출력하면 금세 다루기 어려워집니다. 기본적으로 최근 세 항목만 보여주고, 더 보고 싶을 때 옵션을 주세요.- 항목 검색. 키워드가 포함된 항목을 출력하는
search명령을 추가하세요. - 항목별 단어 수. 항목을 표시할 때 몇 개의 단어가 들어 있는지 함께 보여주세요.

