Skip to content

예술품을 실시간 경매로 거래하는 서비스 Wevre 리팩토링

Notifications You must be signed in to change notification settings

Chang9601/wevre

Repository files navigation

Wevre

소개

  • Wevre는 Kream이라는 사이트의 한정판과 경매라는 두 가지 방식을 차용해 예술품이라는 한정판을 거래하는 웹 서비스입니다(기획 의도).
  • WebSocket 프로토콜을 사용하여 실시간 경매방을 구현한 위코드 2차 프로젝트 Wevre를 HTTP 폴링을 포함한 Socket.IO 라이브러리로 리팩토링 했습니다.
  • 개발 시 Socket.IO 라이브러리의 HTTP 폴링으로 실시간 경매방을 구현했으며 배포 시 스케일 아웃을 염두해 어댑터를 구현했으며 스티키 세션 활성화를 위해 쿠키를 사용했습니다.
  • 또한 관계형 데이터베이스인 MySQL을 사용한 Wevre와 달리 리팩토링에서는 NoSQL 데이터베이스 MongoDB를 사용해서 NoSQL 데이터베이스의 특징과 쿼리를 체득하고 있습니다.

실행

main 브랜치의 docker-compose.yml 파일을 docker compose up --build 명령으로 실행.

테스트

  • 단위 테스트: 애플리케이션 실행 후 docker compose exec app1/app2 npm run test 명령 실행.
  • E2E 테스트: main 브랜치의 docker-compose.ci.yml 파일을 docker compose -f docker-compose.ci.yml up --build 명령으로 실행.

기술 스택

개발
TypeScript NestJS MongoDB Jest Redis Socket.io

API

애플리케이션 실행 후 http://localhost:3000/api

기록

https://whooa27.blogspot.com/search/label/wevre

시현

회원가입, 로그인 및 개인정보

Screencast.from.2024.01.29.09.36.36.webm

작품 목록, 작품 상세 및 경매방

Screencast.from.2024.01.29.17.28.16.webm

입찰:2개의 경매방(각각 2명)

Screencast.from.2024.01.29.11.58.34.webm

입찰: 1개의 경매방(4명)

Screencast.from.2024.01.29.12.00.18.webm

Redis 어댑터(Socket.IO 서버 스케일 아웃)

Screencast.from.2024.02.18.22.43.20.webm

낙찰

Screencast.from.2024.01.29.17.12.35.webm

주문 및 주문 목록

Screencast.from.2024.01.29.17.15.11.webm

로그아웃

Screencast.from.2024.01.29.17.30.24.webm

About

예술품을 실시간 경매로 거래하는 서비스 Wevre 리팩토링

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published