거래자 잔액 상태 기계 설계와 동시성 이슈 해결
목차
7월, 더위가 심했다. 체력이 떨어지면 집중력도 떨어진다. 그래서 이달엔 작업량보다 작업 밀도에 집중하기로 했다. 많이 하려는 욕심보다 적게라도 깊이 하는 것.
짧게, 깊게
퇴근 후 한 시간이라도 깊이 파는 것. 산만하게 두 시간보다 집중해서 한 시간이 낫다. 그걸 체감한 달이었다. 거래자 잔액 관리 로직을 더 깊이 파고들었다.
잔액 충전 시 PENDING, 확정 시 CONFIRMED. 충전이 취소되면 CANCELLED. 이 상태 기계를 코드로 옮기는 작업. 단순해 보이지만 엣지 케이스가 많다. 충전 중 취소, 확정 직전 취소, 중복 확정 요청. 각각을 다르게 처리해야 한다.
텔레그램 봇 아이디어
텔레그램 뉴스봇 아이디어가 이 시기에 생겼다. 관심 키워드를 모니터링해서 텔레그램으로 보내주는 것. 구현은 나중이지만 아이디어 메모를 해뒀다. 작은 것을 빠르게 만드는 연습도 필요하다는 생각이 있었다. 장기 프로젝트만 하면 성취감이 오는 사이클이 너무 길어진다.
| 활동 | 내용 |
|---|---|
| 잔액 상태 기계 | 설계 완료 |
| 엣지 케이스 | 목록화 (충전 중 취소 등) |
| 텔레그램 봇 | 아이디어 메모 (미착수) |
| 체력 상태 | 더위로 낮음 |
회사는 7월 내내 잔잔했다. 그게 오히려 에너지를 아끼게 해줬다.
더운 날씨에 밀도 있게 일하는 법을 배운 달이었다. 체력이 떨어지면 집중 시간도 줄어드는데, 그 제한 속에서 최대한 뽑아내는 것. 타이머를 쓰거나, 방해 요소를 차단하거나, 한 가지 작업만 하는 것. 작은 기법들이 실제로 도움이 됐다.
회사에서도 7월에 작은 기술적 도전이 하나 있었다. 레거시 코드에서 동시성 이슈를 발견했다. 같은 요청이 거의 동시에 들어오면 데이터가 꼬이는 구조였다. DB 레벨 락으로 해결했는데, 이 경험이 slecs 잔액 차감 로직 설계에 바로 반영됐다. 잔액을 차감할 때 동시 요청이 오면 마이너스가 될 수 있다는 것, 그걸 막는 방법.
댓글 0
첫 댓글 달아줘.