회고모음

uuid를 잘못 설정하여 오류를 만나다.

악분 2023. 1. 9. 21:53
반응형

상황

어떤 서비스에서 오류가 발생하여 코드를 살펴봤습니다. uuid를 이용한 로직이 있었는데 uuid 생성을 tiemstamp로 되어 있었습니다. 처음 봤을 떄는 timestamp이기 때문에 아무 문제가 없을 거라고 생각했습니다.

 

분석

시간을 갖고 생각을 해보니 uuid를 생성하는 시점이 사용자 요청이 올 때입니다. 사용자 요청은 api가 호출되었을 때를 의미합니다. 만약 여러 사용자가 동시에 요청하면, 시간이 같으니 timestamp가 중복되는 상황이 발생할 수 있을 것 같았습니다.

 

테스트

동시 요청을 테스트하기 위해 부하 테스트를 진행했습니다. 도구는 locust를  사용했습니다. 초당 10 user로 테스트해보니 곧바로 오류가 발생했습니다.

 

결국, uuid를 timestamp로 설정해서 같은 시각에 uuid를 생성할 경우 중복 오류가 발생했던 것입니다. uuid를 timestamp로 하지 않고 다른 로직으로 수정하니 오류가 발생하지 않았습니다.

반응형