Skip to content

fresh-trash-project/fresh-trash-backend

Repository files navigation

🌱 중고 상품 플랫폼 Fresh Trash

로고 클릭시 노션페이지로 이동합니다.

fresh-trash-logo

spring-boot mariadb redis

Fresh Trash는 중고 상품을 판매, 구매, 경매 할 수 있는 온라인 플랫폼입니다.

  • Fresh Trash에 가입해서 집안에 안쓰고 자리만 차지했던 중고상품을 등록하고 판매, 나눔하세요.
  • 판매하고 싶은 상품의 가치를 잘 모르겠다면 경매를 등록해보세요.
  • 다른 유저가 등록한 중고상품를 살펴보고 구매해 보세요.
  • 마음에 드는 중고상품를 하세요.
  • 중고상품에 대해 궁금한 점이 있으면 실시간 채팅으로 물어보세요.

Project Architecture

architecture

Tech Stacks

Spring Framework

spring_boot Spring Security RabbitMQ query_dsl websocket

  • Spring Boot 로 애플리케이션 서버를 구축했습니다.
  • Spring Data JPA(Hibernate) 로 객체 지향 데이터 로직을 작성했습니다.
  • Spring Security 를 통해 권한 관리를 하고, JWT 인증방식을 사용했습니다.
  • OAuth2 를 사용하여 구글, 네이버, 카카오를 통한 간편 로그인합니다.
  • Spring Mail(+ Email Validation API) 를 사용하여 이메일을 전송 및 유효성 검사를 합니다.
  • QueryDSL 로 컴파일 시점에 SQL 오류를 감지합니다. 더 가독성 높은 코드를 작성할 수 있습니다.
  • Spring WebSocket(+ STOMP) 로 유저간에 채팅을 할 수 있습니다.
  • Spring AMQP(RabbitMQ) 로 서버간의 의존성을 제거하고 고가용성을 보장합니다.
  • SSE(Server-Sent Event) 를 사용해서 서버에서 클라이언트로 알림을 전송합니다.

Database

mariadb redis

  • 데이터베이스는 MariaDB를 사용합니다.
  • 캐싱을 위해 NoSQL 데이터베이스인 Redis를 사용합니다.

AWS

ec2 s3 s3 s3

  • Amazon EC2 로 서버를 구축했습니다.
  • Amazon S3 를 사용하여 이미지를 저장, 관리합니다.
  • Amazon RDS 에서 데이터베이스를 관리합니다.
  • Amazon ElastiCache 로 메모리 데이터베이스 캐싱을 관리합니다.

CI / CD

github_action code_deploy

  • GithubAction, CodeDeploy 으로 빌드, 테스트 및 지속적 배포를 진행합니다.

Network

nginx

  • Nginx를 리버스 프록시로 활용하고 있습니다.

ERD

ERD

주요 기능

  • 로그인
  • 회원가입
  • 사용자 정보
  • 중고상품 조회/등록/수정/삭제
  • 알림 기능
  • 1:1 채팅 기능
  • 경매 조회/등록/삭제
  • 경매 입찰/낙찰

About

fresh-trash 프로젝트의 backend 파트입니다.

Resources

Stars

Watchers

Forks

Languages