박도영 · Web Service Developer

서비스

모바일 초대장 운영 플랫폼

관리자가 초대장을 만들고 고객 계정과 공개 URL을 연결해 운영하는 웹 플랫폼입니다.

기간
2025.07–현재
운영 상태
운영 중
역할
기획·개발·운영
프로젝트 미리보기: 모바일 초대장 운영 플랫폼
프로젝트 개요 이미지
문제
초대장을 만드는 관리자, 내용을 수정하는 고객, 공개 링크를 보는 하객의 접근 범위를 나눠야 했습니다.
해결
관리자·고객 API에서 로그인 토큰을 검증하고, 고객 UID와 초대장 소유권을 대조했습니다. 공개 조회는 별도 경로로 분리했습니다.
결과
초대장 생성 → 고객 계정 연결 → 고객 수정 → 공개 URL 조회의 운영 흐름을 구현했습니다.
상세 목차 보기

문제

같은 초대장 데이터를 관리자와 고객이 수정하고 하객이 조회하므로, 화면을 숨기는 것과 별개로 서버에서 역할과 소유권을 확인해야 했습니다.

제약

  • 하객은 로그인 없이 공개 초대장을 조회하고, 관리 작업은 인증된 계정의 권한에 따라 처리
  • 공개 샘플은 초대장 화면을 보여주는 예시이며 실제 고객의 관리 화면이나 운영 데이터를 공개하지 않음

주요 사용자

  • 관리자
  • 고객
  • 하객

핵심 결정

  • 관리자 API는 ID 토큰과 관리자 권한을 확인하고, 고객 API는 인증된 UID와 초대장의 ownerUid를 대조
  • 고객의 수정 요청은 소유권과 대상 초대장 주소를 서버에서 다시 확인한 뒤 저장
  • 공개 조회는 공개 상태·노출 기간을 확인하고 계정·결제·보안·운영 필드를 제외한 데이터만 반환

구현

  • 관리자 초대장 생성과 고객 계정 연결, 소유 고객의 콘텐츠 수정 화면 구성
  • 고객 관리 API와 하객 공개 조회 API를 분리하고 공개 초대장 URL 제공

주요 화면

모바일 초대장 운영 플랫폼의 실제 서비스 화면

검증 방법

  • 2026.10 소스 검토에서 관리자·고객 API의 토큰 검증, ownerUid 대조와 비소유자 저장 거부, 공개 조회의 상태·기간 확인과 반환 필드 분리를 확인했습니다.
  • 공개 샘플 링크는 하객 조회 화면의 예시로 제공합니다. 고객·관리자 권한 검증의 실행 결과와는 구분합니다.
  • 운영 계정으로 비소유자 접근·저장을 시도하는 권한 테스트는 이번 확인 범위에 포함하지 않았습니다.

현재 개발 상태

관리자 생성, 고객 소유권과 공개 URL을 연결한 웹 운영 흐름을 구현했습니다.

기술 기록과 근거

사용 기술

  • Next.js 15
  • React 19
  • TypeScript
  • Firebase Auth
  • Firestore
  • Firebase Storage