-
Notifications
You must be signed in to change notification settings - Fork 10
11.10(수) 데일리스크럼 & 회의록
nawhes edited this page Dec 2, 2021
·
1 revision
- 깃 플로우 재가공
- 프로젝트 아키텍처 회의
- mongodb 설계
- Auctioneer 동작 기초
- 프로젝트 시나리오 작성
- 시나리오 구체화
- 유저 소켓 접속 시 필요한 기초 데이터 제공 API
- 소켓 open, close message event 모듈화
- 매수/매도 주문 전달 API 수정
- 프로젝트 시나리오 작성
- 소켓 API 구현
- Auctioneer 서버 프로젝트 생성
- Mongoose 의존성 추가
- 거래체결 로직 구현
- 파일 중복 문제
- 가격 > 시간 > 수량 > 위탁 (레퍼런스)
- 시간외 거래, 위탁 거래가 없으므로 수량, 위탁은 고려할 필요 없음
- 주문에 트리거하여 처리되므로 가격 > 시간 우선순위도 지켜짐
(트랜잭션 시작)
- 주문 발행자의 잔고가 주문 금액보다 부족하면 주문이 생성되지 않는다.
- 잔고가 충분할 경우 주문 발행자의 잔고를 주문 금액만큼 낮춘다. (트랜잭션 끝)
- 주문처리 프로세스에 매수 주문이 발생했음을 알린다.
(트랜잭션 시작)
- 주문 발행자의 보유 수량이 주문 수량보다 부족하면 주문이 생성되지 않는다.
- 보유 수량이 충분할 경우 주문 발행자의 보유 수량을 주문 수량만큼 낮춘다.
- 유저_보유종목 테이블의 해당 유저의 보유 수량 = 보유 수량 - 주문 수량
- 주문 테이블의 amount(주문 수량), value(주문 금액), type(매수/매도), status(취소, 결제 성사 여부), create_at(주문 발생 시간(매우 중요)) 초기화 후 insert
(트랜잭션 끝) 3. 주문처리 프로세스에 매도 주문이 발생했음을 알린다. - 어떤 종목의 매도 주문인지 알린다.
- 00초에 종목 테이블의 price_low, price_high price_start, price_end 초기화
- 59.99초에 종목 테이블의 데이터를 mongoDB로 insert
API 서버로부터 주문이 발생했음을 확인했을 때 수행한다.
- 가장 낮은 금액의 매도 주문을 확인한다.(가격 우선의 원칙)
- 매도 주문이 여러개일 경우 시간순으로 처리한다.(시간 우선의 원칙)
- (트랜잭션 시작)
- 주문이 체결될 경우
- 매수주문자의 보유 수량을 반영한다. (보유수량+ 주문수량-)
- 주문의 주문 수량을 반영한다.
- 매도주문자의 잔고를 반영한다.
- mongoDB에 거래체결을 반영한다.
- mysql의 거래 종목에 거래량, 거래금액을 반영한다.
- mysql trigger
- volume = volume + 거래량;
- price_low = Math.min(price_low, 거래금액);
- price_high = Math.high(price_high, 거래금액);
- price_end = 거래금액;
- if (price_start == 0) price_start = 거래금액;
- (트랜잭션 끝)
- 매도 주문이 여러개일 경우 시간순으로 처리한다.(시간 우선의 원칙)
- 주문 금액보다 낮은 금액의 매도 주문이 없을 때까지 1번 프로세스를 반복한다.
- 가장 높은 금액의 매수 주문을 확인한다.(가격 우선의 원칙)
- 매수 주문이 여러개일 경우 시간순으로 처리한다.(시간 우선의 원칙)
- (트랜잭션 시작)
- 주문이 체결될 경우
- 매도주문자의 잔고를 반영한다.
- 주문의 주문 수량을 반영한다.
- 매수주문자의 보유 수량을 반영한다. (보유수량+ 주문수량-)
- mongoDB에 거래체결을 반영한다.
- mysql의 거래 종목에 거래량, 거래금액을 반영한다.
- mysql trigger
- volume = volume + 거래량;
- priceLow = Math.min(priceLow, 거래금액);
- priceHigh = Math.high(priceHigh, 거래금액);
- priceEnd = 거래금액;
- if (priceStart == 0) priceStart = 거래금액;
- (트랜잭션 끝)
- 매수 주문이 여러개일 경우 시간순으로 처리한다.(시간 우선의 원칙)
- 주문 금액보다 높은 금액의 매수 주문이 없을 때까지 1번 프로세스를 반복한다.
🏠 Home
📄 Ground Rules
📄 Branch & PR Rules
📄 Coding Conventions
📖 Backlog
🖥️ Wireframe
⚙️ Architecture 및 시나리오 흐름
📋 ER-Diagram
📋 API 문서
📄 Ground Rules
📄 Branch & PR Rules
📄 Coding Conventions
📖 Backlog
🖥️ Wireframe
⚙️ Architecture 및 시나리오 흐름
📋 ER-Diagram
📋 API 문서