Skip to content

[12/09] 프론트–백엔드 3차 회의 #11

Description

@yoorli

회의 개요

  • 날짜: 2025.12.09(화)
  • 회의 안건
    • 프론트/백엔드 개발 진행 현황 공유
    • API 명세 변경 사항 및 확정 일정 논의
    • 모임 관련 필드(joinedCount, 태그 정책 등) 정의 정리
    • 이미지 업로드 방식 및 S3 디렉터리 구조 결정
    • 알림 기능 구현 방식(SSE vs 폴링 등) 논의
    • 모임 종료 시간(endTime) 처리 방식 협의

회의 내용 요약

  1. 인증/인가는 완료, 유저 도메인은 이번 주 내 마무리 예정, 모임 관련 API를 토요일까지 끝내는 것이 목표
  2. joinedCount 필드는 isJoined와 의미가 겹쳐 제거, 태그는 단순 텍스트/필터링 등 정책 정리 필요
  3. 공통 응답 스펙의 필드는 백엔드가 내부 정리 후 다시 공유
  4. 모임 생성 시 이미지 처리 방식은 “이미지 먼저 업로드하여 URL을 받은 뒤, 모임 생성 JSON에 URL을 포함해 보내는 방식”으로 정하고, S3 구조는 규모를 고려해 도메인/그룹 디렉터리 없이 단순 경로(After2안)로 가기로 함.
  5. 이미지 업로드 API는 한 개 엔드포인트를 유지
  6. 알림 숫자 증가를 SSE로 처리할지, 폴링/진입 시 패치로 처리할지는 재논의, SSE는 연결 유지·안정성 이슈가 있어 재검토.
  7. 모임 종료 시간(endTime)은 nullable 필드로 처리.

회의 내용

프론트/백엔드 진행 현황 및 일정

프론트엔드

  • 메인 화면, 스케줄러 화면, 모임 생성 화면, 마이페이지, 팔로잉 유저 목록 등 기본 기능에 해당하는 화면 UI가 대부분 구현된 상태
  • API 명세와 실제 응답이 확정되면, 곧바로 연동 작업에 들어갈 수 있는 수준

백엔드

  • 인증/인가 도메인은 이미 개발 완료.
  • 유저 도메인 API는 이번 주 내 개발 완료를 목표로 진행 중이며, 구현되는 대로 프론트에 바로 알릴 예정.
  • 모임 관련 남은 API는 약 7개 정도로 파악하고 있으며, API 수정·추가 및 명세 최신화를 포함해 이번 주 평일~토요일까지 모두 마감하는 목표로 설정.
  • MVP 일정에 맞춰 백엔드 API도 완성될 수 있도록 진행하기로 함.

API 명세 변경 사항 및 공통 응답 스펙 논의

API 명세 변경 범위

  • 유저 쪽 명세는 현재 기준으로 큰 문제 없을 것 같음.
  • 모임 쪽은 아직 검토가 덜 되어 있어 내일까지 정리 후 확정된 스펙 전달

공통 응답 형식

  • 백엔드에서는 공통 응답 타입을 내부에서 다시 정리한 뒤,
    • 필드명(code vs status)과 타입(숫자/문자열)을 일관되게 맞춰서 재공유

모임 필드: joinedCount 제거 및 태그 정책

joinedCount 필드

  • joinedCount는 중복 필드에 가깝다는 의견에 동의, 삭제하기로 결정.

태그 정책

  • 단순히 문자열 배열로만 저장할지,
  • 향후 태그 기반 필터링/검색까지 고려해 구조를 설계할지 등이 아직 명확하지 않음.
  • 모임 명세 정리 내에 포함해 주기로 함.

이미지 업로드 방식 및 S3 구조 결정

요구사항·전제

  • 모임에는 썸네일/이미지가 필요하고,
  • 프로필에도 이미지가 들어갈 예정이므로 S3에 다양한 이미지가 쌓이게 됨.

모임 생성과 이미지 업로드 순서

  • 초기 구현 방향:
    • “모임 JSON을 먼저 받아 모임 ID를 생성 → 그 ID를 기준으로 디렉터리를 만들어 이미지를 저장” 구조.
    • S3에서 groups/{groupId}/... 형태로 디렉터리를 나누어, 대량 이미지(수천·수만 개)에서도 검색/관리 효율을 높이려는 목적.
  • 프론트:
    • “이미지를 먼저 업로드하고, URL을 받아 모임 생성 요청(JSON)의 images 필드에 해당 URL들을 넣어서 한 번에 보내자”는 방식.
    • URL만 일관되게 주고받으면 되고, 서버 내부 구조는 상관없음
  • 논의 후 결정:
    • 기능 구현 난이도와 일정(MVP) 우선 순위를 고려해,
    • 이미지 선 업로드 → URL 반환 → 모임 생성 시 URL 포함 구조로 진행.

S3 디렉터리 구조(After2 선택)

  • 여러 안 비교:
    • Before: 도메인·그룹별 디렉터리를 세분화(groups/{groupId}/...)
    • After1: 도메인별 구분은 유지하되, 방식 조정
    • After2: 도메인 명 없이 단일 디렉터리에 파일만 저장(경로 단순화)
  • 백엔드:
    • 도메인별·그룹별 디렉터리를 두면 관리(벌크 삭제, 정리)는 편하지만,
    • 엔드포인트를 유저/그룹별로 나누거나, 도메인 정보를 파라미터로 받아야 하는 등 오버헤드가 생김.
  • 프론트:
    • 어떤 구조로 저장되든 URL 문자열만 그대로 받았다가 다시 보내면 되기 때문에, 경로 구조는 신경 쓰지 않아도 됨.
  • 서비스 규모가 크지 않은 점, 일정 등을 고려해,
    • After2 (도메인/그룹 디렉터리 없이 단일 폴더에 저장) 방식으로 결정.
  • After2 구조를 선택하면서,
    • 우선은 하나의 이미지 업로드 API를 사용하는 방향으로 합의.
    • 향후 필요 시 도메인 파라미터 추가나 엔드포인트 분리는 추후 리팩터링 단계에서 검토.

알림 기능 및 SSE 사용 여부

알림 동작 요구사항

  • 기본 요구:
    • 알림 목록(페이지/모달)에서 알림 내역을 조회할 수 있어야 하고,
    • 홈 상단 벨 아이콘 옆 숫자 뱃지가 “새 알림 발생 시 증가”하는 모습을 보여주고 싶음.

SSE(Server-Sent Events) 논의

  • SSE는 HTTP 연결(TCP)을 한 번 열어 계속 유지하는 방식이라,
    • 수신자가 접속 중이어야만 이벤트를 실시간으로 받을 수 있음.
    • 연결이 언제 끊길지 명확하지 않고, 서버·클라이언트 모두에 연결 유지 오버헤드가 존재.
  • “오프라인이어도 나중에 알림 목록에서 볼 수 있는 것”은
    • SSE가 아니라 알림 리스트 API + 로그인/진입 시 패치로 충분히 구현 가능.
  • 단순히 숫자 뱃지를 올리는 정도라면,
    • SSE 대신 폴링(주기적 요청)이나 화면 진입 시 fetch로도 “거의 실시간처럼” 보이게 만들 수 있음

결론

  • 벨 아이콘 옆 숫자가 “가능한 한 실시간에 가깝게” 증가해야 한다는 요구 자체는 유지.
  • 다만, 이를 SSE로 할지 폴링/기타 방식으로 할지는
    • 기술적 리스크와 구현 복잡도를 고려해 프론트/백엔드가 재검토 후 다시 결정

모임 종료 시간(endTime) 처리

  • 디자인 시안 변경으로 “모임 종료 시간(End time)”이 UI에서 빠진 상태,
    • 일부 모임은 종료 시간을 쓸 수도 있어 백엔드 필드를 완전히 없애기보다는 nullable로 처리해 달라는 요청.
  • 시작 일자/종료 일자 중 종료 일자가 없는 경우도 충분히 처리 가능하며,
  • 종료 시간을 nullable 필드로 정의해 문제없이 지원할 수 있다고 확인.

후속 액션

  1. 일정 및 진행
    • 백엔드: 유저 도메인 + 모임 관련 API(7~8개) 및 명세 최신화를 이번 주 토요일까지 완료 목표.
    • 프론트: 현재 구현된 화면들을 기준으로, 명세 확정 후 바로 API 연동 진행.
    • 공통: MVP 목표일 12월 16일(화)에 맞춰 기능을 수렴.
  2. API 및 도메인 스펙
    • joinedCount는 제거하고, 태그 정책은 내일 정리된 문서로 공유.
    • 공통 응답 스펙은 백엔드에서 일괄 정리 후 타입/필드명 기준을 다시 전달.
    • 모임 상태·참여자 상태(호스트/참가자, 참석 여부) 설계 및 응답 모델을 문서로 공유.
  3. 알림 구현 방향
    • 실시간성 구현 방식(SSE vs 폴링/기타)은 SSE의 장단점(연결 유지, 불안정성 등)을 감안하여 팀 내부에서 재논의 후 확정.
  4. 추가 문서화/공유
    • 태그 정책, 모임 상태 모델, 이미지 업로드 방식, 응답 스펙 정리본을 내일까지 공유.
    • 이후 개발 중 발견되는 추가 쟁점은 Discussion/정기 회의에서 수시로 업데이트

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions