Skip to content

[회의록] #9

@yoorli

Description

@yoorli

회의 개요

  • 날짜: 2025.12.10 (수)
  • 회의 안건
    • 모임 노출/만료 및 채팅방 종료 정책 정의
    • 이메일/닉네임/제목/장소/인원/이미지/상세 설명 등 필드별 유효성 규칙 확정
    • 태그·프로필 상태 메시지·MBTI 등 회원/프로필 필드 제약 논의
    • 텍스트 영역 줄바꿈 처리, 채팅 메시지 길이 및 “더 보기” UX 논의
    • 프론트·백엔드 유효성 “크로스 체크” 전략 합의

회의 내용 요약

  1. 모임은 시작 시간(startTime)을 기준으로 관리하며, 시작 시간이 지나면 목록·검색에서 더 이상 노출하지 않고, 참여도 불가능하게 처리하기로 함(참가자 수 0인 경우도 동일 정책 적용).
  2. 채팅방은 별도의 endTime 필드 없이 “startTime + 24시간” 후 자동 종료(참가자 전체 unsubscribe)하는 방식으로 운영하고, 그 전까지는 지각/연락용으로 채팅을 유지하기로 함.
  3. 이메일·닉네임·제목·인원·태그·상태메시지 등 주요 필드의 길이/형식 제한을 구체적으로 합의함
    • 이메일: 필수, 전체 주소 기준 최대 50자
    • 닉네임: 최소 2자, 최대 14자, 공백 허용 안 함
    • 모임 제목: 최소 2자, 최대 50자
    • 최대 인원: 1~12명
    • 태그: 1개당 최대 8자, 최대 10개
    • 상태 메시지: 최대 20자
  4. 모임 상세 설명은 최대 300자, 줄바꿈 허용 + white-space: pre-wrap으로 렌더링하며, 연속 줄바꿈에 대한 별도의 제한은 두지 않기로 함.
  5. 모임/프로필 이미지는 최대 3장까지 업로드 가능, 필수는 아니며, 업로드가 없을 경우 프론트 정적 디폴트 이미지를 노출하는 방식.
  6. 지난 모임은 “모임 이력”으로 이동하되, 카드 클릭 시 상세 페이지 진입은 허용하고, 내부 액션 버튼은 비활성화 + “종료된 모임”임을 알 수 있는 별도 스타일을 디자이너와 논의하여 적용하기로 함.

회의 내용 상세

모임 노출/만료 및 채팅방 종료 정책

  • 모임 생성 후 아무도 참가하지 않은 채 시작 시간이 지나가는 경우를 포함해 startTime 기준으로 모임을 만료 처리하기로 정함.
  • 참가자 수와 관계없이 startTime을 넘긴 모임은
    • 모임 목록·검색 결과에서 더 이상 노출하지 않고,
    • “참여하기” 요청은 프론트에서 먼저 막고, 서버도 4xx로 차단하는 방향으로 제안.
  • 채팅방 종료 기준은 endTime 필드를 두지 않고 단순화:
    • startTime 이전: 모임 준비/채팅 가능
    • startTime 이후: 실제 만남 진행 + 늦는 사람 연락 등을 고려하여 startTime + 24시간까지 채팅 유지
    • 그 이후: 서버에서 강제 unsubscribe 처리(모든 참가자 채팅방 해지)로 처리

지난 모임 상세 페이지 및 이력 처리

  • 지난 모임(=startTime이 지난 모임)은 모임 이력으로 이동:
    • 카드 클릭: 상세 페이지 진입은 허용 (상세 내용 확인 필요)
  • 상세 페이지 내부:
    • 모든 참여/채팅 관련 버튼은 비활성화
    • 클라이언트에서 “이미 시작/마감된 모임입니다” 등을 표기
    • 서버도 동일하게 요청을 차단해 브라우저/포스트맨/콘솔 요청 우회를 막는 이중 방어 적용
  • 디자인 측면에서:
    • 썸네일 그레이스케일, 검은 띠, 회색 톤 등으로 카드/상세에서 한눈에 보이도록 인디케이터를 추가하자는 의견.
    • 구체적인 스타일은 디자이너와 별도 논의 후 확정.

이메일, 닉네임, 비밀번호 등 회원 필드 유효성

  • 이메일
    • 필수 입력 필드로 유지.
    • 전체 주소(로컬 + 도메인) 기준 최대 50자로 제한하기로 합의.
    • 로컬 파트만 따로 검사하거나 별도의 길이 제한을 두지는 않음.
  • 닉네임
    • 리스트/카드 UI를 깨지 않도록 길이 제한 필요.
    • 공백은 허용하지 않기로 하고,
      • 최소 2자 (1자 닉네임은 허용하지 않음)
      • 최대 14자 로 결정.
    • 너무 긴 닉네임은 목록·친구·채팅 리스트 등에서  처리.
  • 비밀번호
    • 구성 규칙: 영문/숫자/특수문자 조합,
    • 대문자 강제는 사용자 피로가 크므로 지양
    • 특수문자 1개 이상 포함

모임 정보 필드 (제목, 장소, 인원, 이미지, 상세 설명)

  • 모임 제목
    • 목록: Tailwind line-clamp-2로 최대 2줄까지 노출, 이후는  처리.
    • 상세: 제목 전체 노출을 위해 클램프 제거
    • 길이 제한: 최소 2자, 최대 50자로 결정.
  • 장소
    • 실제 사용자의 대부분은 선택 기반으로 입력하므로, 주소 포맷에 대한 정규식 검증은 하지 않고 자유 문자열로 허용하기로 함.
  • 최대 인원
    • 1~12명 범위로 제한(최대 12명).
  • 이미지
    • 모임 이미지는 최대 3장, 필수는 아님.
    • 이미지가 하나도 없으면:
      • 모임용 디폴트 이미지, 프로필용 디폴트 이미지 두 종류를 프론트 public 정적 리소스로 관리하고, 서버에서는 빈 배열을 그대로 유지(별도 S3 디폴트 삽입 X).
  • 모임 상세 설명(본문)
    • 상세 설명은 최대 300자로 제한.
    • 줄바꿈은 허용하며, 렌더링 시 white-space: pre-wrap 적용으로 입력한 개행/스페이스를 그대로 반영.
    • 연속 줄바꿈(테러성 줄바꿈)을 정규식으로 제한하는 방법도 검토했으나,구현 복잡도·서버 동기화 이슈를 고려해 최대 길이(300자)만 서버/프론트에서 공통으로 체크하는 쪽으로 정리.

태그, 프로필 상태 메시지, MBTI

  • 태그
    • 태그 1개당 길이: 최대 8자 (기존 결정 유지).
    • 태그 개수: 최대 10개로 확정.
    • 목록: 한 줄만 노출, 나머지는  또는 “+N” 형태로 축약.
    • 상세: 등록된 태그는 모두 노출, flex-wrap으로 자연스럽게 줄바꿈.
  • 프로필 상태 메시지(한 줄 소개)
    • 친구/채팅/프로필 등 여러 화면에서 노출되므로, UI 보호 차원에서 길이 제한 필요.
    • 최대 20자
  • MBTI
    • 기본 규칙: 4자 고정 (E/I, S/N, T/F, J/P 조합).
    • 입력은 소문자/대문자 모두 허용하되, 저장 시에는 대문자로 변환.

텍스트 영역 줄바꿈 및 채팅 메시지 길이

  • 텍스트 영역(모임 상세 설명 등)
    • textarea에서 엔터 입력 시 \n 뉴라인 캐릭터가 실제 값에 포함되고, white-space: pre-wrap 적용 시 줄바꿈/스페이스가 시각적으로 유지된다는 점을 확인.
    • 줄바꿈 자체를 제한하기보다는, 맥스 길이(300자)를 서버·클라이언트에서 공통으로 검증하는 것이 구현 단순성과 유지보수 측면에서 더 낫다는 의견으로 정리.
  • 채팅 메시지
    • 카카오톡처럼 너무 긴 메시지는 “더 보기”로 축약하는 UX를 참고.
    • 1회 전송 가능한 메시지 길이를 약 300자 수준으로 제한.
    • 악의적 대용량 메시지를 방지하기 위해 서버에서도 동일한 맥스 길이로 검증하는 크로스 체크 필요
    • 정확한 디테일은 추후 별도 논의 후 최종 확정하기로 함.

후속 액션

  1. 모임/채팅 수명 정책 확정
    • 지난 모임 상세는 조회 가능하되, 액션 버튼 비활성화 + “종료된 모임” 스타일은 디자이너와 협의.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions