✏️ 2023-03-03 Today I Learn

@mitoconcrete · March 03, 2023 · 3 min read

효율적으로 더미데이터를 만들기

이제 도메인 배포도 했고, 점차 프로젝트 마무리를 향해 달려가고 있다. 하지만, 우리의 서비스가 실제로 구동되고 있는 서비스가 아니기 때문에, 더미 데이터들을 우선적으로 셋팅해야했다. 위치 기반으로 근처에 있는 레스토랑 목록을 가져오는 것이기 때문에, 최대한 많은 데이터를 수집하여야 고객 피드백도 받고 우리의 부하테스트도 진행 할 수 있는 상태였다. 따라서, 팀원 분께서 제작하신 더미생성 api를 이용하려고 했는데, 퍼포먼스가 너무 좋지 않았다. 긁어온 데이터가 총 9만개 였는데, 그걸 불러와서 반복문을 돌려가며 업데이트하는 방식이었는데, 불러오는 것 자체가 1분이상이 되는 현상이 발생하였고, 가장 중요한 건 생성 쿼리가 날라가지 않고 영속성 컨텍스트에 쌓이기만 한다는 것이었다.

따라서, 1개의 데이터만 가져와서 업데이트하는 식으로 만들어보았는데, 위의 로직보다 성능이 꽤 좋았다. 그래서 해당 api를 postman으로 계속 호출하면서 더미를 업데이트 했는데, 이렇게 9만개의 데이터를 만드는것이 말이 안된다고 생각하여 자동화를 위한 방안을 고민했다.

결론적으로, 아래와 같이 쉘스크립트를 사용하여, curl을 통해 더미 api로 호출하게 만들었고, 이것을 레코드 수 만큼 반복하게 하여 자동화를 할 수 있었다.

COUNT=1
while [ $COUNT -le 90876 ]; do
        echo 누적 전송 횟수 : $COUNT
        let COUNT=COUNT+1;
        curl --location --request POST 'http://localhost:8080/api/general/seller-managements/dummy';
done;
echo 완료

기술을 갖고 있다는게 편하게 느껴지는 순간이었다.

@mitoconcrete
어제보다 조금 더 성장하기 위해 기록합니다.