ํ๋ก์ ํธ (19) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [ํธ๋ฌ๋ธ ์ํ ] 20๋ง ๋๋ฏธ ๋ฐ์ดํฐ ์ฝ์ ์ csvํ์ผ์ ์ด์ฉํด์ DB connection timeout → 7์ด๋ก ์ค์ด๊ธฐ โญ์๋ก ์ฝ๋์ค์ฟผ๋ ์์ด๋น์ค๋น ํด๋ก ์ฝ๋ฉ ํ๋ก์ ํธ ์ค ์ฑ๋ฅ ํ ์คํธ๋ฅผ ํ๊ณ ์ถ์๊ณ ,์ด๋ฅผ ์ํด ๋ค๋์ ์์, ์์ฝ, ํ์์ ๋๋ฏธ ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค๊ณ ์ ํ์์ต๋๋ค. ๋๋ฏธ ๋ฐ์ดํฐ๋ฅผ ์์ 20๋ง๊ฐ, ์์ฝ 100๋ง๊ฐ, ํ์ 1๋ง๋ช ์ ๋ง๋ค๊ณ ์ ํ์์ต๋๋ค.์ด ์ค, ์์ 20๋ง๊ฐ๋ฅผ ๋ง๋๋ ๊ณผ์ ์์ ์๊ธด ์ผ์ ์๊ฐํฉ๋๋ค. 20๋ง๊ฐ ์์ ๋ฐ์ดํฐ๋ฅผ Java ์ฝ๋๋ก ์์ 1๊ฐ๋ง๋ค INSERT INTO ์ฟผ๋ฆฌ๋ฅผ DB์ ๋ ๋ ธ๋๋ DB connection timeout ๋ฌธ์ ๋ฅผ ๋ง์ฃผํ์ต๋๋ค. - ๊ณ ๋ คํ ๋ฐฉ์MySQL์ ๋ ์ฝ๋๋ ํ ์ด๋ธ ๋จ์์ ํ์ผ๋ก ์ ์ฅ๋๋ค๋ ์ ์ ์ฐฉ์ํ csvํ์ผ ์ฌ์ฉ๋๋ ์ฝ์ ์ ํนํ๋ ๊ธฐ์ ์ธ Spring Batch - 2๊ฐ์ง ์ด์ ๋ก csvํ์ผ์ ์ด์ฉํ๊ธธ ์ ํํ์ต๋๋ค.ํ๋ก์ ํธ ๋จ์ 1์ฃผ ๋์ ์ฑ๋ฅ ํ ์คํธ๋ฅผ ํด์ผ๋๋ค๋ ์ ๋๋ฏธ .. [๋์์ฑ ์ ์ด] ์ ๋ํฌ ์ ์ฝ์กฐ๊ฑด์ ํ์ฉํด 1 ๊ฑด์ ์์ฝ๋ง ์ ์ฅ โญ์๊ตฌ์ฌํญ์ฝ๋์ค์ฟผ๋์ Airbnb ํ๋ก์ ํธ ์ค๊ฐ์ ์์์ ์ฌ๋ A ์ ์ฌ๋ B ๊ฐ ๋์์ ์์ฝ์ ์์ฒญํ ๊ฒฝ์ฐ, ํ ๊ฑด์ ์์ฝ๋ง ์ฑ๊ณตํด์ผ ํฉ๋๋ค.(๊ฐ์ ์์๋ฅผ ์ฌ๋ A์ ์ฌ๋ B๊ฐ ๋์์ ์ฌ์ฉํ๋ฉด ์๋๋๊น!)โญ๊ณ ๋ฏผ๊ทธ๋์, ๋์์ ์์ฝ ์์ฒญ์ ๋ง๊ธฐ ์ํด๋น๊ด์ ๋ฝ๋๊ด์ ๋ฝDB์ ์ ๋ํฌ ์ ์ฝ์กฐ๊ฑด์ ๊ณ ๋ฏผํ๊ฒ ๋์์ต๋๋ค.โญํด๊ฒฐ ๊ณผ์ ์์ฝ์ด ์ ์ฅ๋๋ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.@Transactionalpublic BookingResponse create(BookingSaveRequest request) { // ์์ฒญํ ์์ฝ์ด ๊ธฐ์กด ์์ฝ์ ์ผ์ ๊ณผ ์ค๋ณต๋๋์ง ํ์ธํ๋ ๋ก์ง Long bookedStayCount = bookingRepository.countBookedStay(request.getStayId(), re.. [Querydsl] Expressions.dateTemplate, timeTemplate ์ฌ์ฉ๊ธฐ Querydsl ์ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ์ ์๊ฐํ์ง ์์ต๋๋ค. Querydsl ์ ํ์ต ์ค์ ์์ฑํ ๊ธ์ด๊ธฐ ๋๋ฌธ์ ์๊ฐํ ๋ฐฉ๋ฒ์ด ์ต๊ณ ์ ๋ฐฉ๋ฒ์ด ์๋ ์ ์์์ ์๋ ค๋๋ฆฝ๋๋ค๐โ๏ธ๊ฐ๋ฐํ๊ฒฝJDK 17, Querydsl 5.0.0, Spring boot 3.xโญ์๋ก ์ฝ๋์ค์ฟผ๋ ์์ด๋น์ค๋น ํด๋ก ํ๋ก์ ํธ ์ค, ์ฌ์ฉ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์์๊ฐ ๊ฒ์๋๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ์ ํ์ต๋๋ค.์ฌ์ฉ์๊ฐ 6/19 ~ 6/20 ๋ฅผ ์์ ๊ฒ์ ์กฐ๊ฑด์ผ๋ก ๋ฑ๋กํ๋ฉด,์๋ฒ์์๋ 6/19 ~ 6/20 ๊น์ง ์ด์ฉ ๊ฐ๋ฅ ํ ์์ ID(์์ฝ ๋์ด์์ง ์์ ์์ ID) ๋ฅผ ์ฐพ์ต๋๋ค. ์๋ฅผ ๋ค์ด,์์ ID๊ฐ 1์ธ ์์์ `6/19 PM15:00 ~ 6/20 AM11:00` ์ธ ์์ฝ์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.๋ง์ฝ, ์ฌ์ฉ์๊ฐ 6/20 ~ 6/21 ์ ์ด์ฉ๊ฐ๋ฅํ ์์๋ฅผ ์ฐพ๋๋ค๋ฉด.. ์ด์ 1 2 3 ๋ค์