중복거래 이슈 해결방안에 대해 고민
yeoseon opened this issue · comments
Yun Yeoseon (Row) commented
기술, 운영 측면에서 이해해보는 시간 갖기.. (면접에도 도움될 것 같고)
Yun Yeoseon (Row) commented
서버 단 처리
- 서버단에서 분산 락 처리하기
- 두번째 거래가 인입되었을 때 Lock이 되어 처리되지 않으나, 어떤 오류메시지를 노출해야할 지 문제 (성공? 실패?)
- 이미 처리된 거래입니다. 중복요청입니다.. 라고 하기엔, 첫번째 거래가 이미 처리 진행중이거나 실패할 수 있기 때문에 ..
- 모든 거래에 대해서 분산락을 적용해야 하는지..
- 락걸린 후 타임아웃 거래는 어찌해야 할지..
로직으로 해결
- 시간 처리
- PK 단위로 매우 짧은 시간 (1초 미만 등)ㄷ 동안 중복인입되는 거래가 들어올 경우, 두번째 거래에 대해 exception 처리
- PK 정보 테이블을 Lock 하는 방식으로 방어할 수 있음
- 값 처리
- 동일한 PK, 동일한 금액 등이 연속적으로 들어올 경우, 중복거래 여부에 대한 고객 안내 (내가 실제로 이전 회사에서 처리했던 방법)
화면에서 해결
- 따닥- 하는 클릭이 없도록, 클릭되어도 처리되지 않도록 구현하기
Yun Yeoseon (Row) commented