본문 바로가기
프로젝트/FitTrip

[커뮤니티 서비스] 커뮤니티 서비스 기능정리

by 진꿈청 2024. 6. 29.

구현한 커뮤니티 서비스의 기능

 

커뮤니티 서비스

서버

  • 서버
    • 서버 CREATE
      • 서버 프로필, 서버 이름, 서버 설명
    • 서버 READ
      • 서버 조회시 보낼 데이터
        • 서버에 속해 있는 유저/채널/카테고리 정보
        • 서버 조회 시점 유저의 채널 위치 정보
        • 유저상태(온/오프라인) → 상태관리 서비스에 요청
        • 처음 제공된 채널의 채팅 데이터 → 채팅 서비스에 요청
    • 서버 UPDATE
      • 서버 프로필, 오픈 서버, 서버 이름, 서버 설명 변경
    • 서버 DELETE
      • 프로필 삭제, 서버 삭제, 서버에 속한 유저 삭제
    • 서버 기능
      • 서버에 속한 유저/채널/카테고리 관리
      • 서버 초대
        • 서버마다 고유의 랜덤 초대코드(1일 유지)
        • 공개서버 초대코드 필요X, 비공개서버 초대코드 필요O
      • 유저마다의 서버 목록 제공
      • 서버마다의 유저 닉네임 조정
  • 채널
    • 채널 CREATE
      • 포럼 채널
      • 음성 채널
      • 채팅 채널
    • 채널 READ
      • 채널 READ는 포럼 채널 전용
      • 포럼 제목 검색
      • 포럼 목록을 반환
        • 각 포럼의 댓글 수 → 채팅 서비스에 요청
        • 포럼 정보(제목, 작성자, 사진)
    • 채널 UPDATE
      • 채널 이름 변경
    • 채널 DELETE
      • 채널 삭제
    • 채널 기능
      • 카테고리 지정 여부
    • 포럼 채널
      • 포럼 CREATE
        • 포럼 카테고리(챌린지), 제목, 첨부사진, 내용
      • 포럼 READ
        • 포럼 세부 정보
      • 포럼 UPDATE
        • 제목, 첨부사진, 내용
      • 포럼 DELETE
        • 연결된 사진 삭제, 포럼 삭제

DM

  • DM
    • DM CREATE
      • DM 이름, DM 유저 선택
    • DM READ
      • DM 조회시 보낼 데이터
        • 유저상태(온/오프라인) → 상태관리 서비스에 요청
    • DM UPDATE
      • DM 이름
      • DM 프로필
    • DM DELETE
      • 프로필 삭제, DM 삭제

커뮤니티 서비스 카프카 이벤트

  • 실시간 처리
    • 서버 UD 이벤트
    • DM U 이벤트
    • 채널 CUD 이벤트
    • 카테고리 CUD 이벤트
    • 포럼 CUD 이벤트
  • 유저 위치 정보 이벤트
    • 유저 최근 채널 위치 정보 카프카 이벤트
      • 서버 생성 및 가입시
      • 포럼 채널 클릭시

이미지 기능

  • 커뮤니티 프로필 이미지 CRUD
  • 포럼 이미지 CRUD

 

상세설명

커뮤니티 서비스는 우리 FitTrip 프로젝트에서 제일 중요한 뼈대가 되는 서비스이다.

 

  1. 서버가 있고 채널이 있어야 채팅/음성/화상이 가능하다.
  2. DM이 있어야 채팅이 가능하다.
  3. 사용자는 커뮤니티 서비스로부터 수많은 오픈서버에 접속하여 다양한 챌린지가 가능하다.
  4. 각종 이벤트 처리를 담당한다.
  5. 친구가 아니여도 오픈서버나 서버에서 유저는 서로의 존재를 알 수 있다.
  6. 프론트가 수많은 정보를 커뮤니티 서비스로부터 받아 처리한다.

이외에도 수많은 CRUD 기능들이 존재하며 사용자에게 FitTrip 환경을 제공한다.

 

프론트에게 수많은 데이터를 전송하기에 최대한 많은 정보를 전달하는것과

관련된 예시로 서버 READ API 예시가 있다.

 

서버 READ API 예시

  • 해당 채널의 초기 채팅 정보
  • 서버에 속해있는 유저 정보
  • 유저 ON/OFF 정보
  • 유저가 접속한 시점 서버에서의 유저 채널 위치 정보
  • 카테고리/채널 정보
  • 서버 기본 정보(프로필, 이름 등)

유저 READ API 예시

  • 유저가 속해있는 서버 목록의 정보(프로필, 이름)
  • 유저가 속해있는 DM 목록의 정보(프로필, 이름)

 

위 안에서도 OpenFeign을 통해 다른 서비스들로부터 정보를 받아온다.

이 밖에도 수많은 데이터를 전달하는 API가 존재한다.

 

이처럼 커뮤니티 서비스는 많은 기능을 내포하고 있다.

 

 

ERD

 

 

API 명세서

 

API 명세서 깃허브 주소

 

정리

이 밖에도 유저/서버의 권한 관리 기능, 이모지 기능이 존재했지만

프로젝트 마감 관계상 진행하지 못했다.

 

앞으로 있을 블로그 FitTrip 카테고리에서 위에 나열한 기능들을 토대로,
세부 구현 내용과 메인 기능이라고 생각되는 것들에 관해 포스팅할 예정이다.

 

이번 FitTrip 프로젝트에서 인프라 역할과 커뮤니티 서비스를 맡으며 굉장한 많은 작업을 했기에

블로그로 다 담을 수 있을지 걱정이 된다.