개발 일기

[사이드 프로젝트] 기능 분석: 약관 도메인

Pleasant Pain 2025. 3. 27. 13:18

개요

  • 숙박 예약 서비스의 가장 첫 번째 기능 개발로 회원 가입 기능 중 약관 관리 기능을 분석한다

 

목표

  • 최대한 기능을 단계별로 작게 쪼개어, 적절한 작업 범위를 설정한다

 

회원 가입 기능 흐름

  • 회원 가입시 아래와 같은 비니스 흐름이 존재한다

1. 약관 동의

 

2. 휴대폰 인증

 

3. 이메일, 비밀번호 작성

  • 이미 가입을 해놔서 회원가입 화질이 좋지 못하다..

 

→ 위와 같이 회원 가입 절차는 매우 간단하게 보인다
하지만 비즈니적으로 중요한 사항들을 제대로 파악하지 않는다면, 매우 불안정한 서비스가 되어버린다
따라서 먼저 약관에 대해 작은 기능 단위로 쪼개어 하나씩 분석해보자

 


 

약관 동의

▶ 회원 가입 시 가장 첫 단계로 약관 동의가 필요하다 

 


 

● 약관 관리 기능의 필수 요구 사항은 다음과 같다

  • 약관 관리는 기본적으로 관리자가 담당한다
  • 각 약관들은 대표 약관 제목을 나타내야한다
  • 각 약관들은 [필수 동의/선택 동의]라는 동의 타입을 나타내야한다
  • 각 약관마다 시행일을 나타내야한다
    • 같은 시행일에 여러번 업데이트 될 수도 있으니 버전 관리로 확대하는 것이 좋겠다
  • 각 약관마다 조문 항목들의 조문 번호 및 제목, 조문 내용등을 나타내야한다
  • 약관의 정렬 순서를 고려해서 나타내야한다
    • 현재 UI처럼 필수 → 선택 순으로 정렬되거나, 약관 그룹 내에서 순서를 정의해야 할 수도 있다
  • 약관 정보는 특정 날짜에 반영되어야 하거나, 또는 반영되지 말아야한다
    • 이에 따라 노출일(또는 시행일)과 미노출일이 설정되어야 한다
  • 약관의 상태가 관리되어야한다 (ACTIVE, INACTIVE, DEPRECATED)
    • 등록해뒀던 사용되지 않아야하는 상황도 올 것이라 판단함

 

◆ 이제 약관 정보를 시스템에서 관리할 데이터로 정리해본다

📦 약관 정보 (Terms)

필드명 설명
id 고유 ID
code 고유 코드값 (ex. TERMS_USE)
title 약관 제목
type 필수/선택
version 버전 명 (v1.0 등)
status 사용 중, 미사용 상태 (ACTIVE, INACITVE, DEPRECATED)
effectiveDate 시행일
exposedFrom 노출 날짜
exposedTo 미노출 날짜
sortOrder 노출 순서
clauseList 조문 리스트 (연결된 정보)
  • 시스템 내부에서 약관 정보를 효율적으로 관리하기 위해 약관 정보에 고유 코드 값을 부여했다

 

📄 조문 정보 (Clause)

필드명 설명
clauseNo 조문 번호 (ex. 제 1조)
clauseTitle 조문 제목
clauseContent 조문 본문

 

추가 고려 사항

  • 약관 동의 과정에서 회원이 약관에 동의한 시점과 약관 버전 정보를 관리해야한다
    • 어떤 버전의 어떤 약관에 언제 동의했는지 기록이 남아야 법적 분쟁을 피할 수 있다

✅ 약관 동의 이력 (Agreement)

필드명 설명
memberId 회원 ID
termsCode 약관 코드
version 동의한 약관 버전
agreedAt 동의 시각
  • 위 도메인 설계는 회원 가입 기능 v2에서 정리한다

 

관련 작업 반영

https://github.com/f-lab-edu/hotel-reservation-platform/pull/7

 

약관 생성 기본 API 구조 세팅 by Pablo730 · Pull Request #7 · f-lab-edu/hotel-reservation-platform

#️⃣연관된 이슈 회원 가입 기능 Flow 정리 #3 기본 레이어 및 패키지 구조 설계 #4 약관 관련 기본 요구 사항 분석 #5 약관 생성 API 기본 구조 세팅 #6 📝작업 내용 약관 생성 기본 API Spec 설계 ad

github.com

 

https://github.com/f-lab-edu/hotel-reservation-platform/pull/9

 

약관 & 조항 도메인 모델 설계 by Pablo730 · Pull Request #9 · f-lab-edu/hotel-reservation-platform

#️⃣연관된 이슈 약관 & 조항 도메인 모델 설계 #8 약관 생성 기본 API 구조 세팅 #7 📝작업 내용 common 모듈 JPA 세팅 약관 도메인 엔티티 설계 조항 도메인 엔티티 설계 모듈 순환 참조를 방지하

github.com