Git Product home page Git Product logo

sago's Introduction

❗클라우드 서버 비용으로 인한 운영 중지❗

sago 🎨

  • Rest API를 활용한 실시간 온라인 경매 거래 플랫폼 애플리케이션입니다.
  • 회원가입 후 이용 가능하며 실시간 채팅창을 통해 경매에 참여할 수 있습니다.
  • 해당 프로젝트는 Spring boot & MyBatis를 활용한 백엔드 기술 학습을 목적으로 만든 프로젝트입니다.
  • 프론트앤드의 경우 프로토타입 화면으로 대체하였습니다.
  • 개발 시 IntelliJ IDE, DataGrip IDE를 사용하였습니다.(Database IDE인 DataGrip 권장)
  • Business Rule 및 기술 이슈 해결사항은 Wiki 페이지를 참고해주세요.

Architecture 🏛

sago application architecture drawio

ERD 💿

sago_database_schema drawio

Reporting Issues 👩‍💻

  • 실시간 경매 채팅에서의 채팅 메시지 처리 성능 이슈(RedditMQ, Kafka 등 메시지 큐잉 기술 도입 검토)
  • DB 장애 대응(Master-Slave)
  • Redis Sharding

Prototype 🏙

실제 테스트 화면: https://ovenapp.io/view/3S6tipmCwIm8jLibBCRX2yekB9PndvhP/oMnl5

sago's People

Contributors

annemayor avatar f-lab-bot avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

qqq-tech

sago's Issues

🛠️ Redis 캐싱 전략 🛠️

  • DB와의 데이터 정합성을 위한 최적의 캐싱 전략 적용 필요 👩‍🚀

선택한 전략:

  • 채팅 서비스 : 🆗
    • Write-Around 전략
  • 결제 서비스 : ❌
    • Redis 사용 안함

🛠️ 프로젝트 Datasource 인터페이스화 🛠️

  • 현재 코드는 DBMS 종속적인 코드. 만약, DBMS 제품을 바꾸게될 경우 소스코드를 수정해야하는 번거로움이 생김(결합도가 높고 응집도가 낮은 상태)
  • 적용 가능한 디자인 패턴: Adaptor 패턴 💊

🛠️ ZonedDateTime 직렬화 🛠️

  • Java DTO 객체에서 필드값으로 Java.Time 혹은 Java.Date API 객체를 사용할 경우, Json 직렬화 이슈로 인하여 MySQL에서 해당 타입을 TIMESTAMP 타입으로 인식하지 못하는 이슈 발생.

🛠️ Redis Clustering 🛠️

  • Redis Day 발표 자료에서 공유한 확연한 성능 차이로 인한 클러스터링 작업
  • ❗포인트는 단순 클러스터링으로 노드를 추가해봤자 메시지 처리량이 증가하지 않음. Service Directory 노드로 살아있는 발행-구독자를 먼저 찾은 다음 그 수에 맞게 Redis 클러스터링 노드를 통해 메시지를 브로드캐스팅해야 처리량이 증가함

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.