YoungSoo

Furry_Friend_v2 변경사항 본문

프로젝트

Furry_Friend_v2 변경사항

YoungSooSoo 2023. 5. 22. 23:28

Furry_Friend_v2의 개발 중인 기능

Furry_Friend_v2의 원래 계획은 대략적으로 아래와 같은 기능을 구성하고 코드를 변경하는 것이었습니다.

  • 인증/인가 (구현 완료)
    • 로그인하지 않는다면 댓글, 장바구니, 결제 등의 기능을 사용할 수 없음.
  • 상품 서비스(구현 중)
    • 카테고리 별로 상품을 볼 수 있음.(구현 완료)
    • 검색 기능을 활용하여 상품을 검색할 수 있음.
    • 상품에 대한 댓글을 작성하고 수정 및 삭제가 가능.(구현 완료)
    • 장바구니를 통해 물건을 담아둘 수 있음.(구현 완료)
    • 카카오 페이를 통해 물건을 결제할 수 있음.

Furry_Friend_v2의 변경점

단순 쇼핑몰의 형태가 아닌 개인 회원이 올릴 수 있는 애완 중고 거래 쇼핑몰로 계획을 변경하려고 합니다.

1. 중고 거래 시스템을 도입함에 따라 중고 거래를 위한 1:1 채팅 서비스를 개발하는 과정이 필요

2. 채팅 서비스를 기존의 모놀리식 아키텍처로 만든 애플리케이션에 추가하는 것이 아닌 별도의 애플리케이션으로 구성(약간의 MSA 형태)

3. 채팅 서비스를 다른 애플리케이션으로 도입함에 따라 하나의 프로젝트가 아닌 여러 프로젝트의 공통 인증/인가가 필요

  • Spring Cloud Gateway를 구성하고 기존의 Spring Security를 구성.

4. 채팅 서비스에 대한 고민

  • WebSocket를 사용할 것인가 Kafka와 같은 MQ를 사용할 것인가(Kafka 선택)
  • 대용량의 데이터 처리 시 CQRS 패턴을 도입한다면 성능이 향상될 것이라고 생각이 들었습니다. (명령은 MySQL, 조회는 MongoDB 사용)

5. 기본적으로 위치 기반의 게시판으로 수정해야 합니다.

  • 현재 위치 데이터를 기반으로 게시판을 보여줌
  • 게시글 작성 시 위치를 받아 입력
  • 위치를 통해 해당 범위 내에 있는 게시판을 보여줄 수 있도록 설정(예를 들어 인천, 이후에 사용자가 많아져 게시글이 증가한다면 위치를 세부적으로 나누는 것으로 증가시킬 계획)

 

  • 인증/인가
    • 로그인하지 않는다면 댓글, 장바구니, 결제 등의 기능을 사용할 수 없음.
    • Spring Cloud Gateway를 사용해 인증/인가를 해주어야 함.
    • JWT 인증 추가
  • 상품 게시글 서비스(구현 중)
    • 카테고리 별로 상품을 볼 수 있음.(구현 완료)
    • 검색 기능을 활용하여 게시글을 검색할 수 있음.
    • 상품에 대한 댓글을 작성하고 수정 및 삭제가 가능.(구현 완료)
    • 장바구니를 통해 물건을 담아둘 수 있음.(구현 완료)
    • 위치 기반 게시판 필요(근처에 있는 중고 거래 물품 조회)
  • 채팅 서비스
    • 1:1 기반 채팅 서비스
    • 채팅 서비스(CQRS) -> 명령은 MySQL, 조회는 MongoDB 사용