커뮤니티를 만들면서 게시글에 관한 CRUD 기능을 개발하였는데, 마땅히 넣을만한 게시글 데이터가 없어서 게시판이 굉장히 휑하였고 페이징 등의 기능을 테스트하기가 마땅치 않았다.
그렇다고 내가 모든 INSERT문을 하드코딩하기에는 50~100개의 쿼리를 직접 짜는 게 말이 안된다고 생각해서 방법을 찾아보다가 더미 데이터를 생성해주는 서비스가 있다는 것을 알게 되었다.
검색을 통해 내가 알게 된 더미 데이터 생성 서비스는 Mockaroo, generatedata.com 이 2개이다. 둘 중에는 Mocakroo가 더 인지도가 높은 것 같았는데, 나는 둘 다 써보다가 Mockaroo를 쓰기로 결정했다.
사용하기에 Mockaroo가 더 좋다고 느꼈던 게, 생각보다 생성할 수 있는 데이터의 타입도 굉장히 다양했고, 무엇보다 Formula 라는 조건식 설정을 통해 세부적으로 데이터 포맷을 설정할 수 있다는 점이 큰 메리트였다. 한 번 이미지로 확인해보자.
이것은 나의 게시글 DB 스펙에 따른 더미 데이터 생성 설정이다. 보이는 것과 같이 Field Name, Type, Option 항목으로 기본적인 데이터 설정을 할 수 있고 우측에 보이는 시그마(∑) 모양의 버튼을 통해 상세한 설정을 추가할 수 있다.
Mockaroo에서는 이러한 상세 설정을 Formula라고 하는데, 기본적인 데이터 설정에서 설정할 수 없는 사용자만의 커스텀 설정을 추가할 수 있다. 우측 문법에 따라 Formula를 작성할 수 있다.
나의 경우에는 게시판에 날짜 오래된 순으로 데이터를 주입하기 위해 무작위로 설정된 날짜를 정렬할 필요가 있었다. 이에 대한 Formula는 다음과 같다.
"2023-01-01".to_date + (post_id - 1).days
그런데 나는 여기서 추가적으로 "yyyy-mm-dd" 포맷의 날짜를 "yyyy.MM.dd HH:mm:ss"라는 포맷으로 바꾸고 싶었다. 이에 따라 앞의 Formula를 좀 더 수정하였다. 이렇게 했더니 날짜가 깔끔하게 나오게 되었다.
("2023-01-01".to_date + (post_id - 1).days).strftime("%Y.%m.%d %H:%M:%S")
사실 뒤쪽이 00:00:00 으로 통일되어서 뭔가 인위적인 느낌이 드는 게 마음에 안 들었다ㅋㅋㅋ. 이 부분을 랜덤한 시간이 표시되도록 바꾸고 싶었지만, 기능의 한계로 더 이상의 디테일은 설정할 수 없었다. 하지만 애초에 목표였던 날짜 정렬은 완료했기 때문에 아쉽지만 만족했다.
생각보다 조건식 문법이 많이 복잡하긴 했다. 솔직히 더미 데이터 하나 넣으려고 이걸 일일히 짜고 있는 건 너무 시간 낭비인 것 같아서 바로 챗 지피티에 물어봤는데 바로 해결이 돼버려서 좀 놀랐다ㅋㅋㅋ.
이제 사용방법을 어느정도 파악했으니 다른 테이블에 더미 데이터를 넣을 때도 유용하게 써보려고 한다.