Blog

개발하면서 배운 것들을 기록합니다.

백엔드#블록체인#비동기#설계

DB는 동기, 블록체인은 비동기 — 인센티브 2단계 패턴

사용자가 10,000원 결제하면, 결제 처리 후 인센티브(캐시백)를 지급해야 한다. 인센티브 지급도 블록체인 트랜잭션이니까, 결제 응답이 돌아오기까지 "결제 온체인 처리 + 인센티브 온체인 처리" 두 번의 블록체인 대기가 필요했다.

3
백엔드#블록체인#비동기#성능

블록 확정 대기를 제거했더니 결제가 2배 빨라졌다

블록체인 개발할 때 보통 이런 조언을 듣는다.

1
백엔드#블록체인#결제#설계

3개 지갑에서 자동으로 차감하는 Waterfall 결제

→ Waterfall(폭포수) 패턴이란 우선순위가 높은 항목부터 순서대로 소진하고, 남은 금액을 다음 항목으로 넘기는 방식이다. 물이 위에서 아래로 흐르듯이 처리된다.

백엔드#블록체인#EIP-2612#Web3j

사용자 가스비를 0원으로 만든 이야기

블록체인에서 거래를 보내려면 수수료(가스비)가 필요하다.

3
백엔드#블록체인#동시성#Web3j

블록체인 Nonce 충돌, DB 락으로 잡았다

결제 시스템을 운영하다 보면 당연히 동시 요청이 들어온다. 일반 DB라면 트랜잭션 격리 수준으로 해결되지만, 블록체인은 좀 다르다.

2
백엔드#Spring#보안#암호화

API 요청/응답을 통째로 암호화하는 필터를 만들었다

HTTPS는 클라이언트와 서버 사이 통신을 암호화한다.

3