MiniMoku

쓰면서 만드는
개인용 웹앱

필요한 기능이 생길 때마다 하나씩 만들어 붙였습니다. 지금은 링크를 모아 두는 LinkLocker 와 가계부 PigMoney 가 들어 있고, 매일 쓰고 있습니다.

코드 보기

LinkLocker

나중에 읽을 링크를 폴더로 모아 둔다.

  • 폴더·태그로 분류하고 제목으로 검색한다
  • 읽음·즐겨찾기를 표시해 읽을 것만 남긴다
  • 링크마다 메모를 붙여 왜 저장했는지 남긴다
LinkLocker 화면 — 폴더별로 분류된 링크 목록

PigMoney

수입과 지출을 날짜별 장부로 적는다.

  • 날짜별로 묶어 하루 소계와 함께 본다
  • 카테고리별로 어디에 얼마나 썼는지 줄 세워 본다
  • 월 시작일과 주 시작 요일을 쓰는 방식에 맞춘다
PigMoney 보고서 화면 — 일별 지출 추이와 카테고리별 순위

만든 방식

기능보다 오래 남는 건 결정입니다. 이 프로젝트에서 내린 것 중 네 가지를 적어 둡니다.

조회도 서버 액션에서 직접
데이터 조회용 API 경로를 두지 않고 서버 액션이 Prisma 로 바로 읽는다. 사용자 식별자를 세션에서만 얻으므로, 외부 입력으로 조회 범위를 정할 수 있는 경로가 애초에 생기지 않는다.
색은 팔레트에서 한 번만
라이트·다크 값을 팔레트에 한 벌로 두고 토큰 이름은 매핑만 한다. 색을 바꿀 때 고칠 곳이 한 군데이고, 두 모드가 따로 놀지 않는다.
배포 키를 두지 않는 자동 배포
주기 실행용 Lambda 는 GitHub Actions 가 OIDC 로 역할을 빌려 배포한다. 저장소에 AWS 키를 보관하지 않고, 스키마가 바뀌면 재배포가 필요한 함수를 자동으로 가려낸다.
체험 계정은 매일 되돌린다
로그인 없이 들어온 방문자는 하나의 계정을 공유한다. 매일 새벽 4시에 지우고 같은 샘플로 다시 채워, 빈 화면 대신 쓰이는 모습을 보게 한다.