본문 바로가기

프로젝트25

[커뮤니티 서비스] 커뮤니티 서비스와 다른 서비스의 통신 커뮤니티 서비스커뮤니티 서비스는 FitTrip 프로젝트의 유저가 상시 접속한다고 해도 과언이 아니다. 유저가 채팅을 치기 위해선 서버, DM에 접속해야 하며,유저가 음성/화상 통화를 하기 위해서도 서버, DM에 접속해야 한다. 처음 FitTrip 서비스를 방문해도 유저에게 서버, DM 목록을 전송해주며,유저는 다양한 채널을 생성하고 포럼 채널에 포럼을 통한 챌린지를 진행한다.  즉, 커뮤니티 서비스에서 일어난 변경은 항상 모든 유저에게 실시간으로 업데이트 되어야 한다.그렇기에 관련 작업을 위해 커뮤니티 서비스는 `Kafka`로 처리한다.  커뮤니티 서비스의 카프카 이벤트 처리앞서, 설명한 것처럼 커뮤니티 서비스는 카프카로 다양한 이벤트를 전송한다. 서버UPDATE, DELETEDMUPDATE채널CREAT.. 2024. 8. 7.
[커뮤니티 서비스] 포럼 조회시 페이징 반환 Slice로 처리 커뮤니티 서비스의 포럼 채널FitTrip의 커뮤니티 서비스에는 서버가 존재한다.서버 안에는 또 여러 개의 채널들이 존재한다. 채널채팅 채널음성 채널포럼 채널 여기서, 포럼 채널은 사용자의 일상, 챌린지 등 다양한 사진과 함께 간단 포스팅이 가능한 채널이다.(서버에 접속한 사람들끼리의 채팅도 가능하다.) 인스타그램, 페이스북 포스팅이라고 생각하면 간단할 것이다.  포럼 채널 페이징포럼 채널에는 카테고리마다 수많은 포럼이 존재할 수 있기 때문에 굉장히 많은 포럼들이 존재한다.따라서, 커뮤니티 서비스는 해당 포럼 채널을 적절히 페이징 처리를 해서 보내줘야 한다. 페이징을 해야하는 이유수많은 데이터가 DB에 있을 때 페이징 처리를 하지 않으면 데이터들을 DB로 가져오는데 너무 많은 비용과 시간 소모많은 데이터를.. 2024. 7. 18.
[MSA] FitTrip에서 MSA 설계 With Spring Cloud 📄 Describe사전 설명우리 FitTrip은 프로젝트 초반 제가 진행한 MSA 세미나를 통해 MSA에 관해 알아보았고,해당 내용을 프로젝트에 적용했습니다. MSA FitTrip의 MSA 적용API GatewayService DiscoveryContainer ManagementBacking ServicesDB(Redis, MySQL, MariaDB, MongoDB)Kafka CI/CD AutomationTelemetryGrafanaLokiConfig Store와 관련하여 Spring Cloud Config Server를 이용하고 싶었습니다.하지만, Github Actions 사용시 발생하는 보안적인 문제가 있었습니다.-> Config Server를 외부에서 접속하는 위험우리 도메인과 Config Se.. 2024. 7. 14.
[커뮤니티 서비스] Redis를 활용한 초대코드 구현 커뮤니티 서비스커뮤니티 서비스는 우리 FitTrip 프로젝트에서 제일 중요한 뼈대가 되는 서비스이다. 서버가 있고 채널이 있어야 채팅/음성/화상이 가능하다.DM이 있어야 채팅이 가능하다.사용자는 커뮤니티 서비스로부터 수많은 오픈서버에 접속하여 다양한 챌린지가 가능하다.각종 이벤트 처리를 담당한다.친구가 아니여도 오픈서버나 서버에서 유저는 서로의 존재를 알 수 있다.프론트가 수많은 정보를 커뮤니티 서비스로부터 받아 처리한다.이외에도 수많은 CRUD 기능들이 존재하며 사용자에게 FitTrip 환경을 제공한다. 프론트에게 수많은 데이터를 전송하기에 최대한 많은 정보를 전달하는것과관련된 예시로 서버 READ API 예시가 있다. 서버 READ API 예시해당 채널의 초기 채팅 정보서버에 속해있는 유저 정보유저 .. 2024. 7. 5.
[FitTrip] DELETE IN을 사용한 배치 처리로 얻을 수 있는 성능 향상 DELETE시 IN 사용트러블 슈팅에서 DELETE IN 사용에 관한 내용을 다뤘다.하지만, 해당 작업이 실제로 의미가 있는지가 중요하다. 따라서, 직접 서비스 구동시 DB에 데이터를 추가하여 성능이 얼마나 향상되었는지 확인하기 위한 작업을 진행했다. 작업 대상으로 삼은 API는 채널 삭제 API이다.포럼 채널에 속해있는 포럼 100개각 포럼과 연관되어 있는 파일 100개포럼 100개, 파일 10000개로 구성  서비스 구동시 DB Init 코드@Slf4j@Component@RequiredArgsConstructorpublic class BatchTest { private final UserRepository userRepository; private final ServerRepository .. 2024. 7. 2.
[커뮤니티 서비스] 커뮤니티 서비스 기능정리 구현한 커뮤니티 서비스의 기능 커뮤니티 서비스서버서버서버 CREATE서버 프로필, 서버 이름, 서버 설명서버 READ서버 조회시 보낼 데이터서버에 속해 있는 유저/채널/카테고리 정보서버 조회 시점 유저의 채널 위치 정보유저상태(온/오프라인) → 상태관리 서비스에 요청처음 제공된 채널의 채팅 데이터 → 채팅 서비스에 요청서버 UPDATE서버 프로필, 오픈 서버, 서버 이름, 서버 설명 변경서버 DELETE프로필 삭제, 서버 삭제, 서버에 속한 유저 삭제서버 기능서버에 속한 유저/채널/카테고리 관리서버 초대서버마다 고유의 랜덤 초대코드(1일 유지)공개서버 초대코드 필요X, 비공개서버 초대코드 필요O유저마다의 서버 목록 제공서버마다의 유저 닉네임 조정채널채널 CREATE포럼 채널음성 채널채팅 채널채널 READ.. 2024. 6. 29.