๋ฐ์ผ๋ฆฌ ๊ณผ์
- ํ๋ก์ธ์ค์ ์ค๋ ๋์ ์ฐจ์ด์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์
-> ํ๋ก์ธ์ค๋ ์ปดํจํฐ์์ ์ฐ์์ ์ผ๋ก ์คํ๋๊ณ ์๋ ํ๋ก๊ทธ๋จ์ ์๋ฏธํฉ๋๋ค. ๊ฐ ํ๋ก์ธ์ค๋ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ์ง ์์ต๋๋ค. ์ค๋ ๋๋ ํ๋ก์ธ์ค ๋ด ์์ ์คํ ๋จ์๋ก์จ, ํ๋ก์ธ์ค๋ ์ค๋ ๋๋ฅผ ํ๋ ์ด์ ๊ฐ์ง ์ ์๊ณ ์์ ํ๋ก์ธ์ค์ ๋์ผํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์์ ์คํ๋ฉ๋๋ค. ํ๋ก์ธ์ค๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ ๋ ๊ฐ๊ฐ์ ์ฝ๋/๋ฐ์ดํฐ/์คํ/ํ์ ํ ๋น๋ฐ๊ฒ ๋๊ณ , ์ค๋ ๋๋ ์คํ๋ง ๋ณ๋๋ก ํ ๋น๋ฐ๊ณ , ๊ทธ์ธ ๋๋จธ์ง ์์ญ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ค๋ ๋ ํ๋์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ ๋ค๋ฅธ ์ค๋ ๋๋ ๋ชจ๋ ์ข ๋ฃ๋ฉ๋๋ค. ๋ํ ๋ฉํฐ์ค๋ ๋์ ๊ฒฝ์ฐ ์คํ ์์๋ฅผ ๊ฒฐ์ ํ ์ ์์ด ๋๊ธฐํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ๋ฝ ๋ฐ ๋ฎคํ ์ค, ์ธ๋งํฌ์ด ๋ฑ์ ๋๊ธฐํ ๋ฉ์ปค๋์ฆ์ ํ์ฉํด ํ ๋ฒ์ ํ๋์ ์ค๋ ๋๋ง ๊ณต์ ๋ฆฌ์์ค์ ์ ๊ทผํ๋๋ก ๋ง๋ค์ด ์ค ์ ์์ต๋๋ค.
+ ์ค๋ ๋ ๊ณต์ ์์์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ :
- @SpringBootTest์ @WebMvcTest์ ์ฐจ์ด์ ์ ์ค๋ช ํด์ฃผ์ธ์
-> ๋ ์ด๋ ธํ ์ด์ ์ ํ ์คํธ๋ฅผ ์ํด Spring ํ๋ ์์ํฌ์์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
@SpringBootTest๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ํตํฉ ํ ์คํธ์ ์ฌ์ฉ๋ฉ๋๋ค. ์ ์ฒด ์ปจํ ์คํธ๋ฅผ ๋ถ๋ฌ์ค๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์์ ํ ์คํธํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ๋ฆฌํฌ์งํ ๋ฆฌ, ์๋น์ค, ์ปจํธ๋กค๋ฌ ๋ฐ ์น ์ํ๋ฆฌํฐ ์ค์ ๋ฑ ๋ชจ๋ ๊ณ์ธต๊ณผ ๊ตฌ์ฑ ์์๋ฅผ ํฌํจํด ์ ์ฒด ํ ์คํธ๋ฅผ ์งํํฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์๋๋ ๋๋ฆด ์ ์์ต๋๋ค.
@WebMvcTest๋ ๋จ์ ํ ์คํธ์ ์ฌ์ฉ๋ฉ๋๋ค. ๊ฐ๋ณ ๋ ์ด์ด๋ฅผ ํ ์คํธํ๋ ๋ฐ ํ์ํ ๊ตฌ์ฑ ์์๋ง์ ๋ถ๋ฌ์ค๊ธฐ ๋๋ฌธ์ ์ ์ฒด ์ปจํ ์คํธ๋ ๋ถ๋ฌ์ค์ง ์์ต๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํ ์คํธ ์ฑ๋ฅ์ ์ข ๋ ๋น ๋ฆ ๋๋ค.
N+1
(1) ์ง์ฐ๋ก๋ฉ์ ์ฌ์ฉํ ๊ฒฝ์ฐ : @OneToMany ์ํฉ์์
(2) Join Fetch ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค ~ ์ง์ง ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ์กฐํ
* ์ฆ์ ๋ก๋ฉ vs Join Fetch ์ฟผ๋ฆฌ ๋น๊ต
(3) @BatchSize ์ฌ์ฉ
๊ฒฐ๋ก : ์ง์ฐ๋ก๋ฉ์ ํ์น์กฐ์ธ์ ํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ผ๋ฐ์ ์ด๋ค
์ฝ์ด๋ณด๊ธฐ:
https://joont92.github.io/jpa/JPA-%EC%84%B1%EB%8A%A5-%EC%B5%9C%EC%A0%81%ED%99%94/
https://sol-devlog.tistory.com/22
'TIL, WIL > TIL๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
04. 04 TIL (0) | 2023.04.04 |
---|---|
04. 03 TIL (0) | 2023.04.03 |
03. 30 TIL (0) | 2023.03.30 |
03. 29 TIL (0) | 2023.03.29 |
03.28 TIL (0) | 2023.03.28 |