Skip to content

01 Project Plan

이현민 edited this page Jun 15, 2026 · 4 revisions

01 · 프로젝트 기획서

1. 서비스 한 줄

뮤런(Murun) 은 애니뮤 러닝 소모임의 정기 운동을 한 페이지에서 기록하고, 시즌이 쌓일수록 아카이브로 자라나는 동아리 내부용 웹 서비스다.

2. 문제 정의

정기 운동의 기록이 다음과 같이 흩어져 있다.

  • 운영진의 메모장 / 카카오톡 단톡방 공지
  • 개인 스트라바·런데이 앱 (본인만 접근 가능)
  • 단체사진은 단톡방 사진첩에 흘러감

시즌이 끝나거나 운영진이 바뀌면 사실상 소실. 신입 부원은 "지난 시즌 우리가 어떻게 뛰었는지" 확인할 방법이 없다.

3. 사용자 모델 (게시글 + 댓글 구조)

뮤런의 핵심 모델은 그날의 운동 페이지(Session) = 게시글, 각자 본인이 적는 기록(Participation) = 댓글 에 가깝다.

역할 설명 권한
호스트(Host) 그날의 운동을 주최한 멤버 1명 세션(게시글) 생성·수정. 본문(날짜·장소·사진·메모) 작성.
참여자(Participant) 그날 함께 뛴 멤버 N명 본인 행만 추가/수정/삭제. 거리·기록·노트 입력.
관리자(Admin) 서버 운영자 (스스로 본인) 회원 가입 승인, 모든 데이터 수정 가능.

가입 흐름: SNU 구글 계정(@snu.ac.kr) OAuth → 화이트리스트 대기 → 관리자 승인 → 정상 사용.

비로그인 접근: 없음. 모든 페이지가 로그인 + 승인된 회원만. 단톡방 공유 미리보기(OG 이미지)만 비로그인에서 보임.

4. 타깃 사용자

  • 호스트(주 1명/주): 운동 직후 5분 안에 세션 페이지를 만든다. 모바일에서 빠르게.
  • 참여자(주 10명/주): 본인이 직접 자기 거리·기록을 적는다. 30초 이내.
  • 신입/예비 부원: 가입 전엔 못 들어옴. 가입 후 아카이브를 둘러본다.

5. 핵심 가설

  1. 호스트가 페이지 생성을 1분 안에 끝낼 수 있어야 매주 지속된다.
  2. 참여자 본인이 자기 기록을 직접 적는 게 "운영진 일괄 입력" 보다 누락이 적고 정확하다.
  3. 단체사진 1장 + 본인 페이스 1줄이 매주 쌓이는 것 자체가 가치.

6. MVP 범위 (Week 2 종료 시점)

다음만 동작하면 MVP.

  • 로그인: Google OAuth, @snu.ac.kr 도메인 강제
  • 가입 승인 흐름: 신규 사용자는 approved=false, 관리자 페이지에서 승인
  • 세션 생성 (호스트): 날짜·장소·시작 시간·날씨·단체사진·코스 메모
  • 세션 페이지 (참여자 진입): 본인 행이 없으면 "내 기록 추가", 있으면 본인 행만 수정 가능
  • 참여 기록: 거리(km), 기록(분:초), 노트 — 모두 optional
  • 세션 아카이브 리스트: 최신순 카드. 참여 인원 수 표시.
  • OG 이미지: 세션 URL을 단톡방에 던지면 단체사진 미리보기
  • 모바일 375px 정상 동작 (dogfooding 기준)
  • N100 prod 배포 완료 (murun.duckdns.org + HTTPS)

7. Week 3 확장 (Stretch)

  • 개인 페이지: 누적 거리, 참여 횟수, 평균 페이스, 페이스 추이 차트
  • 검색·필터: 참여 인원 수, 장소, 멤버, 기간
  • 시즌/월별 그룹화 — 후속 TODO
  • duckdns 도메인 연결 + HTTPS
  • 회원 가입 승인 대기 알림 (관리자 페이지 배지) — 후속 TODO
  • PWA 매니페스트 (홈화면 추가)

8. 비목표 (Non-goals, 3주 안에는 안 한다)

  • 실시간 GPS 트래킹 / 스트라바 연동
  • 푸시·이메일 알림
  • 호스트가 아닌 사람이 다른 멤버 행을 임의 추가/수정 (위임 기능)
  • 본인 인증 후 화이트리스트 자동 통과 (관리자 승인 1단계는 유지)
  • 결제, 회비 관리, 다국어, 다크모드, 댓글/반응

9. 성공 지표 (3주 끝 시점에 스스로 평가)

지표 목표
실제 시즌 기록 입력 횟수 ≥ 3건 (지난 3회 운동)
호스트의 세션 생성 시간 (모바일) ≤ 90초
참여자의 본인 기록 입력 시간 ≤ 30초
Lighthouse Performance (모바일) ≥ 80
빌드·배포 자동화 main push → prod 자동 배포, dev push → image build 안전망
내 워크플로우로 구현한 feature 비율 ≥ 70%

10. 리스크와 대응

리스크 영향 대응
Google OAuth 콜백이 도메인 없이 안 됨 prod 로그인 실패 로컬은 localhost 콜백, prod는 https://murun.duckdns.org/api/auth/callback/google 등록
가정 회선 다운/정전 서비스 중단 UPS는 추후. 우선 백업(주 1회 cron으로 SQLite 파일·uploads dir 외부 복사)
단체사진 원본 크기 큼 (모바일 5~10MB) 업로드 느림 클라이언트 리사이즈 X, 대신 업로드 상한 15MB + 진행률 UI. next/image가 서빙 시 webp 변환.
호스트 승인 대기 중 부원이 로그인해도 못 씀 운영 부담 "승인 대기" 안내 페이지로 명확히 → 관리자가 단톡방 보고 1분 내 승인
Agent가 권한 체크를 빠뜨림 보안 사고 Server Action 첫 줄 인증·권한 체크를 SKILL.md에 명시, 06-Checkpoints로 사람 검증

Clone this wiki locally