generated from pricelees/issue-pr-template
<!-- 제목 양식 --> <!-- [이슈번호] 작업 요약 (예시: [#10] Gitea 템플릿 생성) --> ## 📝 관련 이슈 및 PR **PR과 관련된 이슈 번호** - #46 ## ✨ 작업 내용 <!-- 어떤 작업을 했는지 알려주세요! --> - 전체 더미 데이터 추가(관리자 약 2,400건 / 회원 100만건 / 예약, 일정 약 197만건 / 결제 및 결제 상세 196만건(대략 충전식 간편결제 29.3만건, 카드 147만건, 계좌이체 19.6만건) / 테마 500건 / 매장 263건 - 로컬 애플리케이션 실행 후, 가장 병목이 되는 메인 인기 테마 쿼리만 성능 개선(5회 측정시 API 응답 시간 평균 3300 -> 90ms) ## 🧪 테스트 <!-- 어떤 테스트를 생각했고 진행했는지 알려주세요! --> 변경된 기능은 모두 테스트 반영 ## 📚 참고 자료 및 기타 <!-- 참고한 자료, 또는 논의할 사항이 있다면 알려주세요! --> 취소 데이터 등이 들어가있지 않아, 일부 컬럼에서의 Cardinality가 훨씬 낮게 나오는 상황이긴 함. 예약을 예로 들면, 현재는 확정 예약인 데이터만 추가하여 확정 예약이 100%지만, 실제 도메인의 특성상 예약 데이터는 8~90%는 확정 예약일 것으로 생각하여 큰 차이가 없다고 판단하였음. Reviewed-on: #47 Co-authored-by: pricelees <priceelees@gmail.com> Co-committed-by: pricelees <priceelees@gmail.com>
36 lines
957 B
Kotlin
36 lines
957 B
Kotlin
package roomescape.supports
|
|
|
|
import kotlin.random.Random
|
|
|
|
inline fun <T> initialize(name: String, block: () -> T): T {
|
|
println("초기화 작업 시작: $name")
|
|
return block().also {
|
|
println("초기화 작업 완료: $name")
|
|
println("===================================")
|
|
}
|
|
}
|
|
|
|
fun randomPhoneNumber(): String {
|
|
val prefix = "010"
|
|
val middle = (1..4).map { (0..9).random() }.joinToString("")
|
|
val last = (1..4).map { (0..9).random() }.joinToString("")
|
|
|
|
return "$prefix$middle$last"
|
|
}
|
|
|
|
fun randomString(length: Int = 10): String {
|
|
val chars = ('a'..'z') + ('0'..'9')
|
|
return (1..length)
|
|
.map { chars.random() }
|
|
.joinToString("")
|
|
}
|
|
|
|
fun randomEmail(): String = "${randomString()}@test.com"
|
|
|
|
fun randomBusinessRegNum(): String {
|
|
val part1 = Random.nextInt(100, 1000)
|
|
val part2 = Random.nextInt(10, 100)
|
|
val part3 = Random.nextInt(10000, 100000)
|
|
return "$part1-$part2-$part3"
|
|
}
|