Files
planner.sori.studio/TODO.md

10 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 전환 초안을 적용한다.
  • 로그인 화면 문구와 관리자 정보 노출 지점을 일반 사용자 기준으로 정리한다.
  • 비로그인 사용자가 저장 없이 볼 수 있는 3일치 샘플 데모 화면을 추가한다.
  • 미완료 항목을 다음 날짜 빈칸으로 이월하는 버튼을 추가한다.
  • 이메일 인증 플로우를 설계하고 구현한다.
  • 비밀번호 찾기 / 재설정 토큰 흐름을 추가한다.
  • 로그인 및 인증 관련 rate limit / 잠금 정책을 추가한다.
  • 로그인 유지 여부를 사용자가 선택할 수 있게 한다.
  • 일정 시간 미사용 시 자동 로그아웃 옵션을 추가한다.
  • 설정 화면에서 현재 기기 로그인 상태와 저장 방식을 안내한다.
  • 서버 세션을 명시적으로 폐기하는 로그아웃 API를 추가한다.
  • 메일 발송 인프라와 발신 도메인 정책을 확정한다.
  • Resend 무료 플랜 대체 수단으로 SES 또는 일반 SMTP 연동 방식을 확정한다.
  • 관리자 페이지에서 계정 비활성화 / 강제 로그아웃 / 삭제 기능을 추가한다.
  • 관리자 페이지에서 사용자별 문서 상세 조회 기능을 추가한다.
  • 관리자 페이지에서 검색 / 정렬 / 필터 UX를 추가한다.

메모

  • 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.ymlpostgres + backend + frontend(nginx) 초안을 올릴 수 있게 정리했다.
  • 현재 환경에서는 Docker 데몬이 꺼져 있어 docker compose build 실검증은 아직 완료하지 못했다.
  • 프론트에는 로그인/회원가입 모달과 현재 사용자 상태 표시가 추가되었다.
  • 로그인 상태일 때는 서버 저장을 우선 사용하는 흐름으로 전환 중이다.
  • 로그인 전에는 플래너 본문을 사용하지 못하도록 막고, 인증 후 사용 흐름으로 정리했다.
  • 현재는 각 날짜 플래너가 대표 목표 하나를 선택해 D-DAY에 연결하는 구조다.
  • 목표는 별도 GOALS 화면에서 검색/생성/기간 설정을 관리하고, 플래너에서는 표시 ON/OFF만 다룬다.
  • 목표가 현재 날짜에 적용되지 않았거나 D-DAY 사용이 꺼져 있으면 본문 D-DAY 영역은 숨긴다.
  • 현재 날짜에 적용된 목표가 있으면 D-DAY는 기본적으로 보이고, 사용자가 해당 날짜에서만 OFF로 끌 수 있다.
  • 목표 생성 시 표시 시작일 기본값은 오늘, 표시 종료일 기본값은 목표일로 맞춘다.
  • 표시 기간이 다른 진행 중 목표와 겹치면 프론트와 백엔드 모두 저장을 막는다.
  • TASK LABELS는 버튼 묶음 대신 동일한 토글 패턴으로 단순화했다.
  • 구현할 때마다 완료된 항목은 체크하고, 큰 결정사항은 HANDOFF.md에도 함께 반영한다.
  • Resend 무료 플랜은 도메인 수 제약이 있으므로, 실제 인증 메일은 AWS SES 또는 별도 SMTP 서비스 전환을 전제로 설계하는 편이 안전하다.
  • 관리자 기능은 읽기 전용 대시보드부터 시작하고, 실제 정리 액션은 권한/감사 로그 정책을 정한 뒤 추가하는 편이 안전하다.
  • 관리자 아이디/비밀번호는 README나 HANDOFF에 실제 값으로 남기지 않고, Docker 배포용 비공개 .env에서만 관리한다.