์ค๋ฌด์ ๋ง๋ ์ฌ๋ฐ๋ฅธ ํ
์คํธ ์ฝ๋
๊ทธ ์ฒซ๊ฑธ์์ด ๋์ด๋๋ฆด๊ฒ์!

ํ
์คํธ ์ฝ๋๊ฐ ์ ๋ง ๊ทธ๋ ๊ฒ ์ค์ํ๊ฐ์? ๐ค
๊ทธ๋ผ์! ํ
์คํธ ์ฝ๋ ์์ด๋ ๋ด๊ฐ ๋ง๋ ์ ํ๋ฆฌ์ผ์ด์
์ ํ์ง์ ์ผ์ ์์ค ์ด์์ผ๋ก ๋ณด์ฅํ๊ธฐ๊ฐ ํ๋ญ๋๋ค.
์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ฑฐ๋ ๊ธฐ์กด ๊ธฐ๋ฅ์ ์์ ํ ๋๋ง๋ค ๋งค๋ฒ ์ฌ๋์ด ์ง์ ํ๋ํ๋ ํ
์คํธ๋ฅผ ํ๋ค๋ฉด ์ผ๋ง๋ ๋ง์ ์๊ฐ๊ณผ ๋น์ฉ์ด ์๋ชจ๋ ๊น์?
์๋ํ๋ ํ
์คํธ ์ฝ๋๋ฅผ ํตํด ์์๋ก, ์ํ ๋๋ง๋ค ๋ด๊ฐ ๋ง๋ ์ฝ๋๋ฅผ ๊ฒ์ฆํ ์ ์๋ค๋ฉด ๋ณด๋ค ํํํ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ง๋ค ์ ์์ต๋๋ค.
๋ด๊ฐ ์์ฑํ ์ฝ๋๊ฐ ์ ์์ ์ผ๋ก ๋์ํ๋ค๋ ๊ฒ์ ํ
์คํธ ์ฝ๋๊ฐ ๋ณด์ฅํด์ฃผ๊ธฐ ๋๋ฌธ์, ๋ฆฌํฉํ ๋งํ ๋ ์ป๋ ์์ ๊ฐ์ ๋ค์ด์์!
ํ
์คํธ ์ฝ๋, ํ์ํ๋ค๋ ๊ฑด ์๊ฒ ๋๋ฐ
์ด๋ป๊ฒ ์์ฑํด์ผ ํ ์ง ๋ง๋งํด์. ๐ตโ๐ซ
ํ
์คํธ ์ฝ๋์ ์ค์์ฑ์ ์์๋, ์ฝ๊ธฐ ์ด๋ ต๊ฑฐ๋ ์๋ชป ์์ฑํ ํ
์คํธ ์ฝ๋๋ ์์นซํ๋ฉด ๋๋ค๋ฅธ ๊ณ ๋ฏผ๊ฑฐ๋ฆฌ๊ฐ ๋ ์ ์์ต๋๋ค. ๋ฌด์์ ํ
์คํธํ๊ณ ์๋์ง ์๊ธฐ ์ด๋ ต๊ฑฐ๋, ๋ณต์กํด์ ์ ์ง๋ณด์ํ๊ธฐ ์ด๋ ค์ด ํํ๋ผ๋ฉด ์๊ฐ์ด ์ง๋ ์๋ก ํ
์คํธ ์ฝ๋์ ์์ด ๊ฐ์ง ์๊ฒ ๋ ๊ฑฐ์์.
์ด ๊ฐ์์์๋ ํ๋ก๋์
์ฝ๋์ ๋ณํ์ ๋ง์ถ์ด ๊ฐ์ด ๋ฐ์ ํด๋๊ฐ ์ ์๋, ๊น๋ํ๊ณ ๋ช
๋ฃํ ํ
์คํธ ์ฝ๋ ์์ฑ๋ฒ์ ์๋ ค๋๋ฆฝ๋๋ค.
์ด ๊ฐ์์์๋ ๐
ํ
์คํธ ํ๋ ์์ํฌ
์๋ฐ ์ง์์ ํ
์คํธ ํ๋ ์์ํฌ์ธ JUnit5์ Mock ํ
์คํธ ํ๋ ์์ํฌ์ธ Mockito์ ๋ํด์ ๋ค๋ฃน๋๋ค.
์ด๋ค ๊ฒ์ ๊ฒ์ฆํด์ผ ํ๋์ง, ๊ฐ์ง ๊ฐ์ฒด์ธ Mock์ ์ด๋ค ์ํฉ์ ์ฌ์ฉํ๋ฉด ์ข์์ง๋ฅผ ์ผ์ด์ค๋ณ๋ก ์์ธํ ์์๋ฅผ ๋ค์ด ์ด์ผ๊ธฐํฉ๋๋ค.
์คํ๋ง๊ณผ JPA, ๋ ์ด์ด๋ ์ํคํ
์ฒ ๊ธฐ๋ฐ ํ
์คํธ
๋ ์ด์ด๋ ์ํคํ
์ฒ ๊ธฐ๋ฐ์ API ์๋ฒ๋ฅผ ๊ตฌ์ถํด๋ณด๋ฉด์, ๋ ์ด์ด๋ณ ํ
์คํธ ์ฝ๋๋ฅผ ์ด๋ป๊ฒ ์์ฑํ๋ฉด ์ข์์ง๋ฅผ ์ด์ผ๊ธฐํฉ๋๋ค.
๊ธฐ์ ์์ฒด์ ๋ํ ๋ด์ฉ๋ ์๊ฐํ์ง๋ง, ์ด๋ค ์ธ์ด, ์ด๋ค ๊ธฐ์ ์ ์ฌ์ฉํ๋๋ผ๋ ํ
์คํธ๋ฅผ ๊น๋ํ๊ฒ ์์ฑํ ์ ์๋ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋ค๋ฃน๋๋ค.
์ค๋ฌด ์ฝ๋ ๋ฆฌ๋ทฐ์์ ๋ค๋ฃจ๋ ๋ด์ฉ๋ค
์ฐ์ํํ
ํฌ์ฝ์ค, ์ฐ์ํํ
ํฌ์บ ํpro ๋ฆฌ๋ทฐ์ด๋ฅผ ํ๋ฉฐ ๋ฐ์๋ ์ฌ๋ฌ ๊ฐ์ง ์ง๋ฌธ๊ณผ ๊ด๋ จ ๋ต๋ณ์ ๊ฐ์์ ๋
น์์ต๋๋ค.
๊ฐ์๋ฅผ ํตํด ์์ฐ์ค๋ฝ๊ฒ ์ค์ ์ค๋ฌด์์ ๋ค๋ฃจ๊ณ ๊ณ ๋ฏผํ๋ ๋ด์ฉ๋ค์ ์ ํ ์ ์์ต๋๋ค.
ํ ๋จ๊ณ ์ฑ์ฅ์ ์ํ ํค์๋ ์ ๋ฆฌ
๋จ์ํ ํ
์คํธ์ ๊ด๋ จํ ๋ด์ฉ๋ง ๋ค๋ฃจ๊ณ ๋์ด๊ฐ๋ ๊ฒ์ด ์๋๋ผ, ๋ฐฑ์๋ ๊ฐ๋ฐ์๋ก์ ์กฐ๊ธ ๋ ์ฑ์ฅํ ์ ์๋ ๋ฐํ์ ๋ง๋ จํ์ต๋๋ค.
ํ ์น์
์ด ๋๋ ๋๋ง๋ค ๊ฐ์ ์ค์ ๋ค๋ฃจ๊ฒ ๋๋ ๊ด๋ จ ํต์ฌ ํค์๋, ์ฌํํ์ต์ ์ํ ํค์๋๋ฅผ ์ ์ํ์ฌ ๊ฐ๋ฐ ์ง์์ ๋ํ ์งํ์ ๋ํ ์ ์์ต๋๋ค.

์์ธํ ์ค๋ช
๊ณผ ์ฅํ, ์ง์ ๋ฐ๋ผํด๋ณผ ์ ์๋ ์์ ํ๋ก์ ํธ
์ฃผ์ ๋ณ ํต์ฌ ํฌ์ธํธ์ ์ดํด๋ฅผ ๋๊ธฐ ์ํ ์ฌ๋ฌ ๊ทธ๋ฆผ์ ์ ์ํ๊ณ , ๊ฐ๋
์ค๋ช
์ดํ์๋ ์์ ํ๋ก์ ํธ๋ฅผ ํตํ ์ฝ๋ฉ์ ์งํํฉ๋๋ค.
์ฒ์๋ถํฐ ๋๊น์ง ์ฝ๋๋ฅผ ์ง์ ๋ฐ๋ผ ์์ฑํ๋ฉด์ ์ดํด๋๋ฅผ ๋์ผ ์ ์๋๋ก ๊ตฌ์ฑํ์์ต๋๋ค.
์ด๋ฐ ๋ถ๋ค๊ป
์ถ์ฒํฉ๋๋ค ๐๐ป

์ปค๋ฆฌํ๋ผ์
ํ์ธํด๋ณด์ธ์ โจ








Q&A ๐ฌ
Q. ์คํ๋ง๊ณผ JPA๋ฅผ ์์ง ์ ๋ชจ๋ฅด๋๋ฐ ์๊ฐํ ์ ์๋์?
ํ์ํ ๋ด์ฉ์ ๊ฐ๋จํ๊ฒ ์ค๋ช
ํด ๋๋ฆฌ๊ณ ์์ง๋ง, ์คํ๋ง๊ณผ JPA์ ๋ํ ๊ธฐ๋ณธ์ ์ธ ์ดํด๋ ํ์ํฉ๋๋ค.
๊ทธ๋ ๋ค๊ณ ํฌ๊ฒ ๋ณต์กํ ๋ด์ฉ์ ๋ค๋ฃจ๊ณ ์์ง๋ ์์์, ํด๋น ๊ธฐ์ ๋ก API๋ฅผ ํ๋ ๋ฒ ๋ง๋ค์ด๋ณด์ ์ ๋๋ผ๋ฉด ์ถฉ๋ถํฉ๋๋ค.
๋ชจ๋ฅด๋ ๋ด์ฉ์ด ๋์์ ๋ ๊ฐ์ด ํ์ตํด ๋๊ฐ๋ ๋ฐฉ์๋ ์ข์ ๊ฒ ๊ฐ๋ค์ :)
Q. ์ค์ต ํ๊ฒฝ์ด ๊ถ๊ธํด์!
์ค๋ฌด์์ ๊ฐ๋ฐํ๋ ๊ฒ๊ณผ ์ต๋ํ ๋์ผํ๊ฒ ๋ณด์ฌ๋๋ฆฌ๊ธฐ ์ํด ๊ธฐ๋ณธ์ ์ผ๋ก IntelliJ Ultimate ๋ผ์ด์ผ์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค.
macOS๋ฅผ ์ฌ์ฉํ๊ณ ์๋๋ฐ, ๋ค๋ฅธ ์ด์์ฒด์ ๋ฅผ ์ฌ์ฉํ์๋ ๋ถ๋ค์ด ์ฐธ๊ณ ํ์ค ์ ์๋๋ก IntelliJ ๋จ์ถํค ํ๋ฌ๊ทธ์ธ์ ์ ์ฉํ์ด์.
์คํ๋ง ๋ถํธ(Spring Boot)๋ 2.7.7 ๋ฒ์ ์ ์ฌ์ฉํ๋๋ฐ, ๊ทธ ์ด์์ ๋ฒ์ ์ผ๋ก ์๊ฐํ์
๋ ํฌ๊ฒ ๋ฌด๋ฆฌ๋ ์์ ๊ฑฐ์์. ์์ธํ ๋ด์ฉ์ ๊ณต๊ฐ๋ ๊ฐ์์ธ [์ํ ํ๋ก์ ํธ ์๊ฐ & ๊ฐ๋ฐ ํ๊ฒฝ ์๋ด] ์์
์ ์ฐธ๊ณ ํด ์ฃผ์ธ์. :)
Q. ์์ ์๊ด ์์ด ์ํ๋ ์น์
์ ๋จผ์ ์๊ฐํด๋ ๋ ๊น์?
์ด ๊ฐ์๋ ํ๋์ ํฐ ํ๋ฆ ์์์ ์ ์ฐจ ๋ฐ์ ํด๊ฐ๋ ํ๋ก๋์
์ฝ๋์ ํ
์คํธ ์ฝ๋๋ฅผ ๋ณด์ฌ๋๋ฆฌ๊ณ ์๊ธฐ ๋๋ฌธ์, ์ ์น์
๋ถํฐ ์์ฐจ์ ์ผ๋ก ํ์ตํ์๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค. :)