8.6 KiB
8.6 KiB
할 일 목록
10 Minute Planner를 단계적으로 구현하기 위한 작업 체크리스트다.
현재 방향
- 기본 레이아웃은
1페이지 + 우측 정보 패널을 유지한다. 2페이지 펼침 보기는 비교용 보조 모드로 유지한다.- 스타일은 Vue + TailwindCSS 기준으로 구현한다.
- D-DAY는 목표 관리 패널과 연결하는 구조로 전환했고, 세부 확장은 계속 진행한다.
1단계: 플래너 핵심 상호작용
- 상단 날짜를 시스템 날짜 기준으로 자동 표시한다.
COMMENT를 자유 입력 가능한 입력 필드로 바꾼다.TASKS각 줄을 텍스트 입력 + 체크박스 토글 가능하게 만든다.MEMO각 줄을 텍스트 입력 가능하게 만든다.TIME TABLE을 마우스 드래그로 칠할 수 있게 만든다.TIME TABLE드래그가 여러 줄을 지나가더라도 시간 흐름 기준으로 연속 선택되도록 처리한다.- 선택된
TIME TABLE구간을 기준으로TOTAL TIME을 자동 계산한다.
2단계: 달력과 이동 기능
- 달력에 연/월 이동 기능을 추가한다.
- 선택 날짜를 클릭하면 해당 날짜 플래너 데이터로 이동되게 한다.
- 입력값이 하나라도 있는 날짜에는 달력 하단에 빨간 점 표시를 추가한다.
PREV DAY/NEXT DAY이동 시 현재 편집 중 데이터와 연결되도록 정리한다.
추가 반영 메모
- TASKS 왼쪽 라벨은 자유 입력 가능해야 한다.
- 우측 패널에서 TASKS 번호를 한 번에 채우는 빠른 액션이 있어야 한다.
- 달력 상단은 좌우 화살표로 월 이동하는 구조가 더 적합하다.
- 연도 클릭 시 연도 선택 UI가 열려야 한다.
- 오늘 날짜로 즉시 돌아가는 버튼이 필요하다.
3단계: 목표와 회고 기능
- 목표 관리 패널 기본 구조를 설계한다.
- 선택한 목표 기준으로
D-DAY가 자동 계산되게 한다. - 우측 요약 패널의
PREV SNAPSHOT,READ NEXT를 실제 데이터 기반으로 연결한다. - 다음날 할 일 자동 제안 규칙을 정리한다.
- 오른쪽 패널에
D-DAY 사용토글과 목표 검색/선택 UI를 추가한다. - 목표를 여러 개 생성하고 날짜별 대표 목표를 선택할 수 있게 한다.
- 목표 관리 화면을 별도로 분리하고, 플래너에서는 D-DAY 표시 ON/OFF만 제어한다.
- 목표별로 D-DAY 표시 시작일과 종료일을 설정할 수 있게 한다.
- 목표 표시 기간이 서로 겹치면 저장되지 않도록 막는다.
- 목표 완료 처리와 보관 상태를 구분한다.
- 목표 편집/삭제 UI를 추가한다.
- 목표 목록 정렬 규칙과 검색 UX를 다듬는다.
4단계: 데이터 구조와 저장
- 플래너 데이터 구조를 날짜별 상태 중심으로 정리한다.
- 입력 데이터의 저장 위치를 결정한다.
- 로컬 저장 또는 외부 저장 방식 중 우선 구현 방식을 정한다.
- 입력 상태가 새로고침 후에도 유지되도록 만든다.
- DB 전환 시점을 잡을 수 있도록 저장 레이어를 분리한다.
- 회원 가입 및 로그인 구조를 고려한 사용자별 데이터 모델을 설계한다.
- 사용자별 문서 저장/조회 흐름을 정리한다.
- 출력용 문서 포맷과 프린트 흐름을 고려한 데이터 구조를 정리한다.
추가 반영 메모
- 상단 날짜 표시에서 토요일 요일 텍스트만 파란색으로 표시한다.
- 상단 날짜 표시에서 일요일 요일 텍스트만 빨간색으로 표시한다.
5단계: 확장 화면
- 통계 페이지 요구사항을 정리한다.
- 통계 페이지 라우팅 또는 화면 전환 구조를 설계한다.
- 집중 시간, 완료율, 연속 기록 같은 핵심 지표를 정의한다.
- 사용자가 시작일과 종료일을 선택해서 기간별 통계를 볼 수 있게 한다.
- 사용자 개인 통계 화면 기준을 정리한다.
6단계: 계정 및 서비스 확장
- 회원 가입 / 로그인 방식 후보를 정리한다.
- 사용자 설정 화면에서 닉네임 / 이메일 / 비밀번호 수정 흐름을 분리한다.
- 상단 헤더를 왼쪽 사이드 내비게이션 구조로 재배치한다.
- 본문과 오른쪽 패널이 각각 독립 스크롤되도록 조정한다.
- 사용자별 문서 분리 저장 구조를 설계한다.
- 공유가 아닌 개인 보관용 서비스 흐름으로 요구사항을 정리한다.
- 향후 출력 기능을 위한 인쇄 레이아웃 요구사항을 정리한다.
- A4 가로 기준 2장 출력 모드를 지원한다.
1-UP세로 인쇄 /2-UP가로 인쇄 기준을 분리한다.- 공유를 위한 이미지 저장 기능을 추가한다.
- Docker 배포 구조를 정리한다.
- UGREEN NAS 기준
docker-compose.yml초안을 작성한다. - 백엔드 기본 스캐폴딩을 추가한다.
- PostgreSQL 전환 초안을 적용한다.
- 이메일 인증 플로우를 설계하고 구현한다.
- 비밀번호 찾기 / 재설정 토큰 흐름을 추가한다.
- 로그인 및 인증 관련 rate limit / 잠금 정책을 추가한다.
- 메일 발송 인프라와 발신 도메인 정책을 확정한다.
메모
- D-DAY는 현재 보류 상태다. 목표 패널 설계 후 연결한다.
- D-DAY는 본문에 직접 입력하는 방식보다, 별도 목표 목록에서 선택한 대표 목표를 보여주는 구조가 더 적합하다.
- 목표가 없는 경우 본문 D-DAY 영역은 숨기고, 오른쪽 패널의
D-DAY 사용메뉴에서 검색/선택하도록 유도한다. TIME TABLE드래그는 단순 사각형 선택이 아니라 시간 셀 단위의 연속 선택으로 해석한다.- 현재는
localStorage로 개발을 진행하지만, 적절한 시점에 DB를 붙여 사용자별 저장 구조로 확장해야 한다. - 현재
localStorage저장 로직은 분리 가능한 형태로 정리 중이며, 이후 API/DB adapter로 교체하기 쉽게 유지한다. - 최종적으로는 회원 가입 후 각자 자신의 문서를 작성/관리하고, 개인 통계를 확인하며, 특정 날짜 문서를 출력할 수 있어야 한다.
- 실제 인쇄는 HTML/CSS 기반 프린트 레이아웃으로 유지하고, 공유용으로는 별도의 이미지 저장 기능을 추가하는 방향이 적합하다.
- 최종 배포는 UGREEN NAS에서 Docker 기반으로 동작할 예정이며, 포트와 실제 서비스 구성은 추후 확정한다.
- 백엔드는 빠른 목업이면 PocketBase도 가능하지만, 현재 방향상 커스텀 로직과 확장성을 생각하면 전용 Node.js API + DB 조합을 우선 검토한다.
- 현재 백엔드는
backend/폴더에Fastify + Drizzle + PostgreSQL기준으로 전환 중이다. - 현재 백엔드는 회원가입, 로그인, 현재 사용자 확인용 기본 인증 API까지 포함한다.
- 현재 백엔드는 사용자별 플래너 단건 저장/조회와 범위 조회 API까지 포함한다.
- 현재 백엔드는 사용자별 목표 목록 조회와 목표 생성 API까지 포함한다.
- 현재는
docker-compose.yml로postgres + backend + frontend(nginx)초안을 올릴 수 있게 정리했다. - 현재 환경에서는 Docker 데몬이 꺼져 있어
docker compose build실검증은 아직 완료하지 못했다. - 프론트에는 로그인/회원가입 모달과 현재 사용자 상태 표시가 추가되었다.
- 로그인 상태일 때는 서버 저장을 우선 사용하는 흐름으로 전환 중이다.
- 로그인 전에는 플래너 본문을 사용하지 못하도록 막고, 인증 후 사용 흐름으로 정리했다.
- 현재는 각 날짜 플래너가 대표 목표 하나를 선택해
D-DAY에 연결하는 구조다. - 목표는 별도 GOALS 화면에서 검색/생성/기간 설정을 관리하고, 플래너에서는 표시 ON/OFF만 다룬다.
- 목표가 현재 날짜에 적용되지 않았거나
D-DAY 사용이 꺼져 있으면 본문D-DAY영역은 숨긴다. - 현재 날짜에 적용된 목표가 있으면 D-DAY는 기본적으로 보이고, 사용자가 해당 날짜에서만 OFF로 끌 수 있다.
- 목표 생성 시 표시 시작일 기본값은 오늘, 표시 종료일 기본값은 목표일로 맞춘다.
- 표시 기간이 다른 진행 중 목표와 겹치면 프론트와 백엔드 모두 저장을 막는다.
- TASK LABELS는 버튼 묶음 대신 동일한 토글 패턴으로 단순화했다.
- 구현할 때마다 완료된 항목은 체크하고, 큰 결정사항은
HANDOFF.md에도 함께 반영한다.