4์ฃผ์ฐจ
์นด์นด์ค ํ ํฌ ์บ ํผ์ค 2๋จ๊ณ - BE - 4์ฃผ์ฐจ ํด๋ก ๊ณผ์
๊ณผ์ ๋ช
1. ์ปจํธ๋กค๋ฌ ๋จ์ ํ ์คํธ
๊ณผ์ ์ค๋ช
1. ์ปจํธ๋กค๋ฌ ๋จ์ํ ์คํธ๋ฅผ ์์ฑํ๋ค ์์ค์ฝ๋๋ฅผ ์ ๋ก๋ํ์์ค.
2. stub์ ๊ตฌํํ์์ค.
๊ณผ์ ์์ธ : ๊ณผ์ ๋ฅผ ์งํํ ๋, ์ ๋ ํด์ผํ ๊ฒ
์ปจํธ๋กค๋ฌ ๋จ์ํ ์คํธ๊ฐ ๊ตฌํ๋์๋๊ฐ?
Mockito๋ฅผ ์ด์ฉํ์ฌ stub์ ๊ตฌํํ์๋๊ฐ?
์ธ์ฆ์ด ํ์ํ ์ปจํธ๋กค๋ฌ๋ฅผ ํ ์คํธํ ์ ์๋๊ฐ?
200 ok๋ง ์ฒดํฌํ ๊ฒ์ ์๋๊ฐ? (ํด๋น ์ปจํธ๋กค๋ฌ์์ ์ ์ผ ํ์ํ ๋ฐ์ดํฐ์ ๋ํ ํ ์คํธ๊ฐ ๊ตฌํ๋์๋๊ฐ?)
๋ชจ๋ ์์ฒญ๊ณผ ์๋ต์ด json์ผ๋ก ์ฒ๋ฆฌ๋์ด ์๋๊ฐ?
๐ ๋ฐฐ๊ฒฝ ์ง์
Open In View ์ดํด (= OSIV)
"Open in View" : ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํธ๋์ญ์ ์ ๋ทฐ(View)๊ฐ ๋ ๋๋ง๋๋ ์์ ๊น์ง ์ฐ์ฅํ๋ ๊ฒ์ ์๋ฏธ
- ์ ํต์ ์ธ ๋ฐฉ์์์๋ ํธ๋์ญ์ ์ ์๋น์ค(Service) ๋ ์ด์ด์์ ์์ํ๊ณ , ๋ฐ์ดํฐ ์ก์ธ์ค ๊ณ์ธต(DAO, Repository)์์ ์ข ๋ฃ
- ์คํ๋ง๋ถํธ์์๋ @Transactional์ด ๋ถ์ ๋ ์ด์ด(์๋น์ค)์์ ํธ๋์ญ์ ์ด ์์๋๊ณ , ์๋น์ค๊ฐ ์ข ๋ฃ๋ ๋ ํธ๋์ญ์ ์ด ์ข ๋ฃ
์ด๊ฒ์ open in view๋ฅผ false๋ก ์ค์ ํ ๊ฒ๊ณผ ๋์ผํ๋ค. "Open in View"๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํธ๋์ญ์ ์ ์์์ ์๋น์ค์ด๊ณ , ํธ๋์ญ์ ์ ์ข ๋ฃ๋ ์๋น์ค๊ฐ ์ข ๋ฃ๋ ๋์ด๋ค. ํ์ง๋ง DB์ selectํ ์ ์๋ ์ธ์ ์ด view์ ๋ ๋๋ง๋ ๋๊น์ง ์ ์ง๋๋ค. ์ด ๊ธฐ๋ฅ์ ์ผ๋๊ณ , ์ํฐํฐ๋ฅผ ์ปจํธ๋กค๋ฌ์์ ์๋ตํ๋ ์๊ฐ Lazy Loading์ผ๋ก ์ธํด ์์์น ๋ชปํ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ ํ ์ ์๋ค.
์กฐ๊ธ ๋ ์ฝ๊ฒ ์ดํดํ๊ธฐ ์ํด ๊ทธ๋ฆผ๊ณผ ํจ๊ป ์์๋ณด์
๋จผ์ , OSIV = false๋ก ์ค์ ํ๋ฉด, open in view๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค. ์ด ๋์ ์์์ฑ ์ปจํ ์คํธ ์์กด ๋ฒ์๋ service์ Repository์ ํ์ ๋๋ค.
๋ค์์ผ๋ก, OSIV ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์์์ ์์์ฑ ์ปจํ ์คํธ ์์กด ๋ฒ์๋ ๋ค์๊ณผ ๊ฐ๋ค.
์์์ฑ ์ปจํ ์คํธ๋ ์ํฐํฐ๋ฅผ ์๊ตฌ ์ ์ฅํ๋ ํ๊ฒฝ์ด๋ผ๋ ๋ป์ด๋ค. ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ด์์ ๊ฐ์ฒด๋ฅผ ๋ณด๊ดํ๋ ๊ฐ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ ์ญํ ์ ํ๋ค. ์ํฐํฐ ๋งค๋์ ๋ฅผ ํตํด ์ํฐํฐ๋ฅผ ์ ์ฅํ๊ฑฐ๋ ์กฐํํ๋ฉด ์ํฐํฐ ๋งค๋์ ๋ ์์์ฑ ์ปจํ ์คํธ์ ์ํฐํฐ๋ฅผ ๋ณด๊ดํ๊ณ ๊ด๋ฆฌํ๋ค.
https://code-lab1.tistory.com/290
[JPA] ์์์ฑ ์ปจํ ์คํธ๋?
์์์ฑ ์ปจํ ์คํธ๋? ์์์ฑ ์ปจํ ์คํธ๋ ์ํฐํฐ๋ฅผ ์๊ตฌ ์ ์ฅํ๋ ํ๊ฒฝ์ด๋ผ๋ ๋ป์ด๋ค. ์์์ฑ ์ปจํ ์คํธ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ DB ์ฌ์ด์์ ๊ฐ์ฒด๋ฅผ ๋ณด๊ดํ๋ ๊ฐ์์ DB ์ญํ ์ ํ๋ค. ์ํฐํฐ ๋งค๋์ (Entit
code-lab1.tistory.com
@WebMvcTest
์คํ๋ง ๋ถํธ์์ ์ ๊ณตํ๋ ์ด๋ ธํ ์ด์ ์ผ๋ก, ์น ์ ํ๋ฆฌ์ผ์ด์ ์ MVC ์ปจํธ๋กค๋ฌ(Controller)๋ฅผ ํ ์คํธํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค. ์ด ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ๋ฉด ์น ๋ ์ด์ด์์ ๋ฐ์ํ๋ ์์ฒญ๊ณผ ์๋ต์ ํ ์คํธํ ์ ์๋ค.
@WebMvcTest(value = {UserRestController.class})
์ด๋ ๊ฒ ํ๋ฉด ํน์ Controller๋ฅผ IoC ์ปจํ ์ด๋์ ๋ฑ๋กํ ์ ์๋ค. ์ํ๋ ์ปจํธ๋กค๋ฌ๋ฅผ SecurityConfig ๋ฑ๋กํ์ฌ ์ง์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค์ค์ผ ํ๋ค.
[ํ ์ค ์ค๋ช ] >> ํน์ ์ปจํธ๋กค๋ฌ๋ฅผ ๋์์ผ๋ก ํ๋ ๋จ์ ํ ์คํธ๋ฅผ ์์ฑํ ๋ ์ฌ์ฉํ๊ณ , ์ํ๋ ์ปจํธ๋กค๋ฌ๋ฅผ @WebMvcTest(value = {์ปจํธ๋กค๋ฌ ๋ช .class}) ์ ๊ฐ์ด ์ ์ด์ฃผ์ด SecurityConfig๋ฅผ ๋ฑ๋กํ๋ค.
* SecurityConfig : ๋ณด์ ์ค์ ํ์ผ
'๐ช kakaotech campus' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์นดํ ์ผ | [STEP2 clone coding] 5์ฃผ์ฐจ ๊ณผ์ (0) | 2023.07.27 |
---|---|
์นดํ ์ผ | [STEP2 cloncoding] 4์ฃผ์ฐจ ๊ณผ์ - (2) (0) | 2023.07.20 |
์นดํ ์ผ | [STEP2 clone coding] 3์ฃผ์ฐจ ๊ณผ์ (0) | 2023.07.14 |
์นดํ ์ผ | [STEP2 clone coding] 2์ฃผ์ฐจ ๊ณผ์ - (2) (0) | 2023.07.07 |
์นดํ ์ผ | [STEP2 clone coding] 2์ฃผ์ฐจ ๊ณผ์ - (1) (0) | 2023.07.04 |