Coder Social home page Coder Social logo

matching-taxi's Introduction

1. Background

실시간 택시승차를 위한 승객-기사 매칭 서비스 프로젝트

Documentation : Notion

2. Goal

  • 동시접속 유저 10만명일 때 트래픽을 처리할 수 있는 서버 구조 설계
  • Scale-out에 유리한 서버 구조 설계
  • 실시간 위치 데이터 처리 알고리즘 설계
  • 승객유저-택시기사유저간 거리기준 매칭방식 설계
  • SOA기반 서버 분리 형식의 서버 구조(MSA) 설계

3. Architecture

matching-taxi-architecture

4. Collaboration

  • Git-flow 브랜치 전략 적용
  • pull-request 방식으로 코드리뷰

git branch naming

  • 브랜치 타입 이슈 번호를 브랜치 이름의 prefix로 적용하고 뒤에 브랜치 이름을 연결한다. ex) feature/{number}-{name}

git commit

  • 메시지는 추가 및 변경된 내용을 기반으로 알기 쉽게 정리하여 작성한다

  • 제목과 본문은 행을 나눠 분리하여 작성한다

  • commit Type을 제목 서두에 적어 분별하기 쉽도록 작성한다

      feat : 기능 개발 추가
      fix : 버그 수정
      style : 코드 스타일 수정
      refactor : 코드 리팩토링, 디자인 패턴 적용 등
      comment : 주석 처리
      test : 누락된 테스트 코드 추가
    

Issue Register

  • 해당되는 비즈니스 요구사항을 작성한다
  • 기술적 목표의 어떤 부분인지 명시한다
  • 개발 Task들을 리스트로 정리하여 작성한다

Pull Reqeust

  • 등록된 issue와 연결되도록 PR 작성

    #{issueNumer} {issueTitleName}

matching-taxi's People

Contributors

mataelee avatar whywhale avatar

Watchers

 avatar  avatar

Forkers

mataelee kimtae

matching-taxi's Issues

택시 유저의 지속적인 위치 데이터 업데이트

개요

택시 유저의 지속적인 위치 데이터 업데이트 기능 개발
지리 데이터 처리 기능 개발

Task

  • 택시 유저의 지리 데이터 업데이트 API 호출 처리
  • 지리 데이터 관리 및 CRUD 개발
  • 택시 유저의 매칭 채널과 지리 데이터 논리적 연결

서비스 완료된 매칭에 대한 상호 평가

개요

승차 서비스 완료 후 택시 유저와 승객 유저의 크로스 평가 기능 개발

Task

  • 서비스 완료 후 서비스 및 상대 유저의 평가를 유도하는 알림 메시징
  • 완료된 서비스 데이터 저장
  • 승객 유저의 해당 채널 구독 해제
  • 택시 유저의 매칭 상태 변경 유도 알림 메시징

서버간 메시징 기능 구축

개요

Scale-out에 유리하게 설계하여 서버간 메시징 기능을 개발
Redis pub/sub을 이용하여 메시징

Task

  • Redis 연결 설정
  • pub/sub 구현
  • 통신에 이용되는 Dao, Service layer 구현
  • 서버간 통신 메시지 도메인 구현

사용자 인증 처리

개요

사용자 인증 단계 구현

Task

  • Access token 방식의 사용자 인증 방식 설정
  • 사용자가 전송한 Message를 Interceptor하여 token을 인증하는 단계 구현

승객 유저의 택시 매칭 요청

개요

승객 유저의 매칭 요청 이벤트 처리 기능 개발
승객 유저의 출발지 기준 인근에 있는 택시 유저 매칭 알고리즘 개발

Task

  • 승객 유저의 매칭 요청 API 호출 처리
  • 출발지 데이터 기준 인근에 있는 매칭 가능한 상태의 택시 유저 탐색 알고리즘
  • 탐색된 택시 유저에게 알림 처리 및 승객 유저 정보 알림 메시징
  • 탐색된 택시 유저의 매칭 수락/거절 이벤트 처리

택시 유저의 매칭 상태 변경

개요

택시 유저의 매칭 상태 설정(On/Off) 이벤트 처리 기능 개발

Task

  • 매칭 상태 변경 API 호출 처리
  • 해당 유저의 Redis pub/sub 채널 구독 상태 관리

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.