OSIV(Open Session In View)
OSIV ON
spring.jpa.open-in-view: true(๊ธฐ๋ณธ๊ฐ)

OSIV์ ๋ต์ ํธ๋์ญ์ ์์์ฒ๋ผ ์ต์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปค๋ฅ์ ์์ ์์ ๋ถํฐ API ์๋ต์ด ๋๋ ๋๊น์ง ์์์ฑ ์ปจํ ์คํธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปค๋ฅ์ ์ ์ ์งํ๋ค.๊ทธ๋์
View Template์ด๋API ์ปจํธ๋กค๋ฌ์์ ์ง์ฐ ๋ก๋ฉ์ด ๊ฐ๋ฅํ ๊ฒ์ด๋ค.์ฅ์
์ง์ฐ ๋ก๋ฉ์ ์์์ฑ ์ปจํ ์คํธ๊ฐ ์ด์์์ด์ผ ๊ฐ๋ฅํ๊ณ , ์์์ฑ ์ปจํ ์คํธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปค๋ฅ์ ์ ์ ์งํ๋ค๋ ์์ฒด๊ฐ ํฐ ์ฅ์ ์ด๋ค.
๋จ์
๋๋ฌด ์ค๋์๊ฐ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปค๋ฅ์ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ค์๊ฐ ํธ๋ํฝ์ด ์ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ์ปค๋ฅ์ ์ด ๋ชจ์๋ ์ ์๋ค. (๊ฒฐ๊ตญ ์ฅ์ ๋ก ์ด์ด์ง๋ค.)
์๋ฅผ ๋ค์ด ์ปจํธ๋กค๋ฌ์์ ์ธ๋ถ API๋ฅผ ํธ์ถํ๋ฉด ์ธ๋ถ API ๋๊ธฐ ์๊ฐ ๋งํผ ์ปค๋ฅ์ ๋ฆฌ์์ค๋ฅผ ๋ฐํํ์ง ๋ชปํ๊ณ ์ ์งํด์ผ ํ๋ค.
OSIV OFF
spring.jpa.open-in-view: false

OSIV์ ๋ต์ ๋๋ฉด ํธ๋์ญ์ ์ ์ข ๋ฃํ ๋ ์์์ฑ ์ปจํ ์คํธ๋ฅผ ๋ซ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปค๋ฅ์ ๋ ๋ฐํํ๋ค. ๋ฐ๋ผ์ ์ปค๋ฅ์ ๋ฆฌ์์ค๋ฅผ ๋ญ๋นํ์ง ์๋๋ค.๋จ์
OSIV๋ฅผ ๋๋ฉด ๋ชจ๋ ์ง์ฐ๋ก๋ฉ์ ํธ๋์ญ์ ์์์ ์ฒ๋ฆฌํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ง๊ธ๊น์ง ๊ฐ๋ฐํ ์ง์ฐ ๋ก๋ฉ ์ฝ๋๋ฅผ ํธ๋์ญ์ ์์ผ๋ก ๋ฃ์ด์ผ ํ๋ค.view template์์ ์ง์ฐ ๋ก๋ฉ์ด ๋์ํ์ง ์๋๋ค.ํธ๋์ญ์ ์ด ๋๋๊ธฐ ์ ์ ์ง์ฐ ๋ก๋ฉ์ ๊ฐ์ ๋ก ํธ์ถํด ๋์ด์ผ ํ๋ ๊ฒ์ด๋ค.
์ค๋ฌด์์ OSIV๋ฅผ ๋ ์ํ๋ก ๋ณต์ก์ฑ์ ๊ด๋ฆฌํ๋ ์ข์ ๋ฐฉ๋ฒ
Command์Query๋ถ๋ฆฌ๋ณดํต ๋น์ฆ๋์ค ๋ก์ง์ ํน์ ์ํฐํฐ ๋ช ๊ฐ๋ฅผ ๋ฑ๋กํ๊ฑฐ๋ ์์ ํ๋ ๊ฒ์ด๋ฏ๋ก ์ฑ๋ฅ์ด ํฌ๊ฒ ๋ฌธ์ ๊ฐ ๋์ง ์๋๋ค.
๊ทธ๋ฐ๋ฐ ๋ณต์กํ ํ๋ฉด์ ์ถ๋ ฅํ๊ธฐ ์ํ ์ฟผ๋ฆฌ๋ ํ๋ฉด์ ๋ง์ถ์ด ์ฑ๋ฅ์ ์ต์ ํ ํ๋ ๊ฒ์ด ์ค์ํ๋ค. ํ์ง๋ง ๊ทธ ๋ณต์ก์ฑ์ด ๋นํด ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง์ ํฐ ์ํฅ์ ์ฃผ๋ ๊ฒ์ ์๋๋ค.
๊ทธ๋์ ํฌ๊ณ ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋ค๋ฉด, ์ด ๋์ ๊ด์ฌ์ฌ๋ฅผ ๋ช ํํ๊ฒ ๋ถ๋ฆฌํ๋ค๋ฉด ์ ์ง๋ณด์ ๊ด์ ์์ ์ข์ ๊ฒ์ด๋ค.
์๋ฅผ ๋ค์ด
OrderService๋ฅผ ๋ถ๋ฆฌํ๋ค๋ฉดOrderService: ํต์ฌ ๋น์ฆ๋์ค ๋ก์งOrderQueryService: ํ๋ฉด์ด๋ API์ ๋ง์ถ ์๋น์ค(์ฃผ๋ก ์ฝ๊ธฐ ์ ์ฉ ํธ๋์ญ์ ์ฌ์ฉ)
Last updated