프로젝트명 : 커플 모임 통장 금융 서비스 웹사이트 개발환경 : Java 21, Spring Boot 4.x, Thymeleaf, Oracle, Gradle
작성일 : 2026.04.11
작성자 : 김병현(기술 리더)
| 항목 | 내용 |
|---|---|
| 프로젝트 명 | 모담(돈을 모으고 추억을 담는다) : MODAM |
| 목적 | 모담은 커플이 함께 계획적으로 소비하고 저축하며, 소비 내역을 추억으로 기록할 수 있는 서비스로, 공동 재정 관리의 불편함과 소비 기록의 단절을 해소하는 서비스 |
| 범위 | 회원 관리(일반 사용자, 관리자), 계좌 관리(개설, 초대, 해지, 지분), 금융 거래(입금, 출금, 결제, 소비 제한), 사용자 소비 관리(내역, 추억 기록, 분석), 저축, 마이페이지(정보, 수정, 탈퇴), 공통 기능(네비게이션 바, 알림, 오류 화면) |
| 주요 사용자 | 일반 사용자(USER) : 커플이 모임 통장을 중심으로 함께 돈을 모으고 소비를 기록, 분석함 |
관리자(ADMIN) : 회원 목록 조회, 계좌 해지 승인, 정산 처리 확인, 이상 거래 모니터링, 회원 승인, 탈퇴 관리 기능으로 관리 | | 플랫폼 | 웹 브라우저(PC, 모바일) 기반 |
| 역할 | 설명 | 할 수 있는 일 | 인증 방식 |
|---|---|---|---|
| 비회원(GUEST) | 로그인하지 않은 방문자 | 메인 페이지 보기(서비스 소개) | 없음 |
| 일반회원(USER) | 회원가입 후 로그인한 사용자 | • 비회원의 모든 기능 | |
| • 계좌를 만들었을 때와 만들지 않았을 때 기능 제한 | • 세션으로 인증(유저 아이디) | ||
| • Spring Security | |||
| 관리자(ADMIN) | 시스템 운영자 | • 회원의 모든 기능 + 등록/수정/삭제 | |
| • 전체 관리자 기능 | • 세션으로 인증(유저 아이디) | ||
| • Spring Security |
| 기능 그룹 | 최소 개수 | 예시 |
|---|---|---|
| 회원 관리 | 4개 | 회원가입, 로그인, 로그아웃, 권한 관리 |
| 계좌 관리 | 5개 | 계좌 개설, 사용자 초대, 권한 관리, 계좌 해지, 계좌 비밀번호 설정 |
| 금융 거래 | 4개 | 입금, 출금, 결제, 소비 제한, 기록 |
| 소비 내역 및 기록 | 5개 | 소비 내역 조회, 소비 기록, 커뮤니티 기능, 수정 |
| 소비 분석 | 3개 | 월간 리포트, 주간 리포트, 소비 패턴 분석 |
| 저축 및 목표 관리 | 4개 | 저축 및 목표 생성, 목표 달성, 자동 저축, 진행률 표시 |
| 기여도 및 지분 | 2개 | 지분 비율 표시, 정산 기능 |
| 포인트 및 감성 | 3개 | 포인트 적립, 상점, 배경/테마 변경 |
| 마이페이지 | 3개 | 회원정보 수정, 보기, 탈퇴 |
| 알림 관리 | 9개 | 알림 설정, 입금, 출금, 결제, 소비 제한, 주간 리포트, 월간 리포트, 포인트 적입, 오류 |
| 공통기능 | 3개 | 네비게이션 바, 알림, 오류 화면 |
| 기능 ID | 기능명 | 설명 | 입력값(검증 규칙) | 결과 | 우선순위 |
|---|---|---|---|---|---|
| MEM-01 | 회원가입 | 아이디, 비밀번호, 이메일, 주민등록번호, 전화번호, 집주소, 개인정보 수집 동의(알림 동의) | |||
| 새 계정을 생성 | 아이디(6 ~ 20자) 필수, 비밀번호 (8 ~ 20) 필수, 이메일 (50자) 필수, 전화번호 (13자)필수, 집주소 (255자) 필수, 개인정보 수집 동의(bool) 필수, 알림 동의(bool) 선택, 영문이름(성, 이름) | 성공: 로그인 페이지 이동실패: 에러 메시지 표시(이미 사용 중인 이메일) | 높음 | ||
| MEM-02 | 로그인 | 아이디와 비밀번호로 인증 후 세션처리 | 아이디 (6자 이상) 필수, 비밀번호 (8자 이상) 필수 | 성공 : 메인 페이지 이동 및 세션 생성 | |
| 실패 : 에러 메시지 표시(팝업) | 높음 | ||||
| MEM-03 | 로그아웃 | 현재 세션을 종료 | 없음 | 메인 페이지로 이동 | 높음 |
| MEM-04 | 권한 관리 | ADMIN은 관리자 기능 접근, USER는 일반 기능만, | |||
| 비회원은 일부 기능만 읽기 가능 | 없음 (세션에서 판별) | ADMIN : 계좌 CRUD 가능 | |||
| USER : CRD가능 | |||||
| 비회원 : CR가능 | 높음 |
| 기능 ID | 기능명 | 설명 | 입력값(검증 규칙) | 결과 | 우선순위 |
|---|---|---|---|---|---|
| ACC-01 | 계좌 개설 | 사용자가 계좌를 생성함 | 배송 주소, 직장 정보(직업), 거래목적 및 자금출처(거래목적, 자금출처), 금융상품이 본인 소유임을 확인하는 동의서(체크) | 성공 : 계좌 대시보드로 이동 | |
| 실패 : 계좌 개설 화면으로 이동 | |||||
| • 메시지 전달(에러) | 높음 | ||||
| ACC-02 | 계좌 비밀번호 설정 | 사용자가 계좌를 개설하고 비밀번호를 설정함 | 비밀번호(6자리, 사용자의 생년월일과 전화번호 중복 금지) | 성공 : 계좌 개설 성공 화면 이동 | |
| 실패 : 계좌 비밀번호 설정 화면 이동 | 높음 | ||||
| ACC-03 | 사용자 초대 | 초대할 사용자의 이메일을 입력하여 초대함 | 이메일(한 명에게만 보낼 수 있게) | 성공 : 초대화면 이동 | |
| • 초대한 사람이 초대를 받았는지 안 받았는지 확인 | |||||
| 실패 : 초대화면 이동 | |||||
| • 메시지 전달(에러) | 높음 | ||||
| ACC-04 | 계좌 해지 | 계좌 해지 화면에서 두 사용자가 해지 버튼을 누르고 모두 동의시 관리자가 다시 확인해서 해지하는 기능 |
한 명이 해지 버튼을 눌렀을 시 계좌의 입출금을 정지하는 기능 | 없음 | 성공 : 관리자에게 해지 요청 전달 실패 : 예외처리 | 높음 |
| 기능 ID | 기능명 | 설명 | 입력값(검증 규칙) | 결과 | 우선순위 |
|---|---|---|---|---|---|
| FIN-01 | 입급 | 개인 통장에서 모임통장으로 입금하는 기능 | 계좌번호, 입금액 | 성공 : 입금 성공 화면 이동 | |
| • 현재 잔액 표시 | |||||
| 실패 : 입금 화면 이동 | |||||
| • 동시에 입금할 시 | |||||
| • 잔액부족일 시 | 높음 | ||||
| FIN-02 | 출금 | 모임 통장에서 개인 통장으로 출금 | 계좌번호, 출금액, 비밀번호 | 성공 : 출금 성공 화면 이동 | |
| 실패 : 출금 화면 이동 | |||||
| • 출금 실패 알림(메시지) | 높음 | ||||
| FIN-03 | 결제 | 가상의 가게로 입금되는 시스템 | 계좌번호, 결제액 | 성공 : 결제 완료 화면 이동 | |
| 실패 : 결제 실패 화면 이동 | 높음 | ||||
| FIN-04 | 소비 제한 | 사용자가 소비 제한을 걸면 결제할 때 제한 금액에 가까워지거나 넘을거 같으면 현재까지 쓴 값과 소비 제한 금액을 출력하는 화면을 표시하고 최종 결제창 띄워주기 | 없음 | 성공 : 결제 화면 이동 | |
| 실패 : 칭찬 화면 이동 | |||||
| • “얼마만큼 소비를 아꼈어요” | |||||
| • 포인트 보상 주기(한 달에 받을 수 있는 포인트 제한 걸기) | 높음 | ||||
| FIN-05 | 거래 내역 기록 | 입금, 출금, 결제 발생 시 거래 내역을 자동으로 기록한다, 사용자는 일, 주, 월별로 조회할 수 있다. | 없음 | 거래 발생 시 거래 유형, 금액, 거래 일시, 거래자 정보 자동 저장 및 내역 목록에 표시 | 중간 |