https://github.com/GSM-Backend-Dev-Class/Task.2-8
๐ก์์ฝ
- JPA N+1 ๋ฌธ์ ๋ฅผ ์ง์ ํด๊ฒฐํด๋ณด๋ฉฐ ์ค๋ฌด ์ญ๋์ ํจ์ํฉ๋๋ค
โ
์๊ตฌ์ฌํญ
- ๊ฐ์ธ ๋ ํฌ์งํฐ๋ฆฌ๊ฐ ์๋ ๋ฏธ๋ฆฌ ์์ฑ๋ ๋ ํฌ์งํฐ๋ฆฌ๋ฅผ ์ด์ฉํด์ฃผ์ธ์
- ๊ฐ์ ์ฝ๋๋ฆฌ๋ฉ์ ์งํํ๊ณ ๊ตฌํ๋ 2๊ฐ์ง ์๋ํฌ์ธํธ(
GET /api/v1/order/search
, GET /api/v1/order/{orderId}
)์ ๋ํ์ฌ Postman๊ณผ ๊ฐ์ ํ๋ก๊ทธ๋จ์ผ๋ก ์์ฒญํ ์คํฌ๋ฆฐ์ท์ Pull Request ์ ์ฒจ๋ถํ์ฌ ์ฃผ์ธ์
OrderJpaRepository
๋ด๋ถ ๋ฉ์๋๋ฅผ ๋ณด๋ฉด JPQL๋ก ๊ตฌํ๋ Order ๊ฒ์ ์ฟผ๋ฆฌ๊ฐ ์๋๋ฐ ํด๋น ์ฟผ๋ฆฌ๋ฅผ ์คํ ์ ๋ง๋ํ N+1 ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค,์ด๋ฅผ QueryDSL๋ก ๋ง์ด๊ทธ๋ ์ด์
ํด์ฃผ์ธ์
- ๊ธฐ์กด์
Page<>
๋ก ๊ตฌํ๋ ํ์ด์ง ์ฒ๋ฆฌ ์ญ์ ๋ง์ด๊ทธ๋ ์ด์
์ ํฌํจํ์ฌ์ฃผ์ธ์
- Pull Request์ ์ด๋์ N+1 ๋ฌธ์ ๊ฐ ์ผ์ด๋ฌ๋์ง์ ์ด๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ์๊ณ ๊ฐ๋ฅํ๋ค๋ฉด ์ฑ๋ฅ ๊ฐ์ ์ ์๋ํ์ฌ ์ด๋ป๊ฒ,์ ํ์๋์ง๋ ํฌํจํ์ฌ์ฃผ์ธ์
- master ๋ธ๋์น๊ฐ ์๋๋ผ task/{์์ ์ ์ด๋ฆ} ํํ๋ก ๋ธ๋์น๋ฅผ ์์ฑํ์ฌ master ๋ธ๋์น๋ฅผ ํฅํ์ฌ PR์ ๊ฑธ์ด ์ฃผ์ธ์