Post

๐Ÿ—‚๏ธ Faker ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ

๐Ÿ—‚๏ธ Faker ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ

Faker ๋„์ž… ๊ทผ๊ฑฐ

  • ํ•„์ž๋Š” ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋Š” ๋งŒ๋“ค์–ด์ง„ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.
  • ๊ธฐ์กด Sequence์— ์˜ํ–ฅ์„ ์ฃผ๊ฑฐ๋‚˜ ํŠน์ • ๊ธฐ๋Šฅ์— ์—ฐ์‡„ ๋˜์–ด ์ƒ์„ฑํ•ด์•ผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— SELECT ์ฟผ๋ฆฌ ์™ธ์—๋Š” DB๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์กฐ์ž‘์„ ์ง€์–‘ํ•ด์™”๋‹ค.
  • ๊ทธ๋Ÿฐ๋ฐ, ๋ฐ˜๋Œ€๋กœ ์ƒ๊ฐํ•˜๋ฉด ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋‚˜ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š” ์„ ์—์„œ๋Š” DB ์กฐ์ž‘์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.
  • ์ •์ž‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋‹ˆ, ์–ด๋–ค ๊ฐ’์„ ์ฃผ์ž…ํ•ด์•ผ ํ• ์ง€ ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์— ๋ฒˆ๊ฑฐ๋กœ์›€์„ ๋А๊ปด ์‰ฝ๊ฒŒ ๋”๋ฏธ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” Faker ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐพ๊ฒŒ ๋˜์—ˆ๋‹ค.

์˜์กด์„ฑ ์ฃผ์ž…

1
2
/* Faker */
implementation 'net.datafaker:datafaker:2.2.2'

๋”๋ฏธ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
@SpringBootApplication
class Application

fun main(args: Array<String>) {
	runApplication<Application>(*args)
	
	val faker = Faker()
	val url = "jdbc:log4jdbc:postgresql://localhost:5432/postgres"
	val user = "postgres"
	val password = "1234"
	
	DriverManager.getConnection(url, user, password).use { conn ->
		val sql = "INSERT INTO tbl_notice (id, title, content, created_at, updated_at, writer_email) VALUES (?, ?, ?, ?, ?, ?) ON CONFLICT (id) DO NOTHING"
		conn.prepareStatement(sql).use { stmt ->
			for (i in 1..101) {
				stmt.setInt(1, i)
				stmt.setString(2, faker.dog().name())
				stmt.setString(3, faker.dog().sound())
				stmt.setTimestamp(4, faker.date().birthday())
				stmt.setTimestamp(5, faker.date().birthday())
				stmt.setString(6, "test1@test.com")
				stmt.executeUpdate()
			}
			stmt.close()
		}
		conn.close()
	}
}
  • Kotlin ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ์ด๋‹ค.
  • ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ด์ œ main() ๋ฉ”์„œ๋“œ์™€ ํ•จ๊ป˜ INSERT๋ฌธ์ด ์‹คํ–‰๋œ๋‹ค.
  • ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ ์‹œ ๋”๋ฏธ ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ ์กด์žฌํ•  ๊ฒฝ์šฐ ID๊ฐ€ ์ค‘๋ณต๋˜๋Š” ๋ฌธ์ œ๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค.

  • 101๊ฐœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž˜ ์ƒ์„ฑ๋˜์—ˆ๋‹ค.
This post is licensed under CC BY 4.0 by the author.