Skip to content

커플 도메인 고민 & 커플 연동 기능정의서

sojung.kim edited this page May 20, 2024 · 1 revision

설계 스케치

도메인 설계

public class Couple {
    private int coupleId;
    private int userId1; // 요청자와 수신자로?
    private int userId2;

    // getters and setters
}

데이터베이스 설계

[ couples 테이블 ]

역할: 커플 정보를 저장하고 두 사용자 ID를 멀티 밸류 인덱스로 사용

CREATE TABLE IF NOT EXISTS couples (
    couple_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    user_id_1 INT NOT NULL,
    user_id_2 INT NOT NULL,
    UNIQUE KEY (user_id_1, user_id_2)
);

기능 정의서

1. 회원가입 시 partnerEmail 작성하여 자동 연동 요청 보내기

기능 설명: 사용자가 회원가입 시 partnerEmail을 입력하면, 시스템은 자동으로 해당 이메일 주소로 연동 요청을 보냄

프로세스:

  1. 사용자가 회원가입 양식에 partnerEmail을 입력하고 제출
  2. 시스템은 partnerEmail을 기반으로 해당 이메일 주소의 사용자를 검색
    • 사용자 존재: 연동 요청 이메일을 해당 사용자에게 전송
    • 사용자 미존재: 회원가입 초대 이메일을 partnerEmail로 전송
  3. 연동 요청 이메일에는 연동 요청을 수락하거나 거절할 수 있는 링크가 포함

필요한 기능:

  • 사용자 검색
  • 연동 요청 및 초대 이메일 전송
  • 연동 요청 상태 관리

2. 가입 후에 연동 요청 보내기

기능 설명: 기존 사용자가 자신의 계정 설정에서 partnerEmail을 입력하여 연동 요청을 보냄

프로세스:

  1. 사용자가 계정 설정 페이지에서 partnerEmail을 입력하고 연동 요청 버튼을 클릭
  2. 시스템은 partnerEmail을 기반으로 해당 이메일 주소의 사용자를 검색
    • 사용자 존재: 연동 요청 이메일을 해당 사용자에게 전송
    • 사용자 미존재: 회원가입 초대 이메일을 partnerEmail로 전송
  3. 연동 요청 이메일에는 연동 요청을 수락하거나 거절할 수 있는 링크가 포함

필요한 기능:

  • 사용자 검색
  • 연동 요청 및 초대 이메일 전송
  • 연동 요청 상태 관리

3. 연동 요청이 실패되는 경우 (상대방이 이미 다른 유저와 연동된 경우)

기능 설명: 연동 요청을 보낸 상대방이 이미 다른 유저와 연동되어 있어 요청이 실패하는 시나리오

프로세스:

  1. 사용자가 partnerEmail을 입력하고 연동 요청을 보냄
  2. 시스템은 partnerEmail을 기반으로 해당 이메일 주소의 사용자를 검색
  3. 상대방 사용자가 이미 다른 사용자와 연동되어 있는 경우:
    • 시스템은 요청이 실패했음을 사용자에게 알림
    • 실패 이유와 함께 적절한 안내 메시지를 표시

필요한 기능:

  • 사용자 검색
  • 연동 상태 확인
  • 연동 요청 실패 시 알림 및 안내

추가 고려 사항

  • 이메일 인증: 향후 이메일 인증을 구현하여 이메일의 유효성을 확보
  • 연동 관리 UI: 사용자가 연동 요청 상태를 확인하고, 수락/거절을 관리할 수 있는 UI 제공
  • 보안: 연동 요청 및 상태 변경에 대한 적절한 인증 및 권한 관리