์คํ๋ง ๋ถํธ๋ ๋ค์ํ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋น์ ์์ฑํ๊ฑฐ๋ ์ค์ ์ ์ ์ฉํ ์ ์๋ ๊ฐ๋ ฅํ ์กฐ๊ฑด๋ถ ์ค์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ด ๊ธฐ๋ฅ์ ํ์ฉํ๋ฉด, ํ๊ฒฝ์ ๋ฐ๋ผ ์ ํ๋ฆฌ์ผ์ด์
์ ๋์์ ์ ์ฐํ๊ฒ ์ ์ดํ ์ ์์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ @Conditional ์ด๋
ธํ
์ด์
๊ณผ ์คํ๋ง ๋ถํธ์์ ์ ๊ณตํ๋ ์ฌ๋ฌ @ConditionalOnXxx ์ด๋
ธํ
์ด์
๋ค์ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค. @Conditional ์ด๋
ธํ
์ด์
@Conditional ์ด๋
ธํ
์ด์
์ ํน์ ์กฐ๊ฑด์ด ๋ง์กฑ๋ ๋๋ง ๋น์ ๋ฑ๋กํ๊ฑฐ๋ ์ค์ ์ ์ ์ฉํ๋๋ก ๋์์ค๋๋ค. ์ด ์ด๋
ธํ
์ด์
์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์กฐ๊ฑด์ ์ ์ํ๋ Condition ์ธํฐํ์ด์ค๋ฅผ ์ง์ ๊ตฌํํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ค์๊ณผ ๊ฐ์ด ํน์ ํ๋กํ์ผ์ ๋ฐ๋ผ ๋น์ ๋ฑ๋กํ๋ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค:import org.springf..
๐ป FrameWork(ํ๋ ์์ํฌ)
FrameWork ๊ด๋ จ Information์คํ๋ง ๋ถํธ๋ ๊ฐ๋ฐ์์ ํธ์๋ฅผ ์ํด ์๋ ๊ตฌ์ฑ(Auto Configuration)์ด๋ผ๋ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด ์์ฃผ ์ฌ์ฉํ๋ ๋ง์ ๋น๋ค์ ์๋์ผ๋ก ๋ฑ๋กํด์ฃผ์ด, ๋ฐ๋ณต์ ์ด๊ณ ๋ณต์กํ ์ค์ ์ ์ต์ํํ๊ณ ๋น ๋ฅด๊ฒ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์ ์์ํ ์ ์์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ์๋ ๊ตฌ์ฑ์ด ์ด๋ป๊ฒ ๋์ํ๋์ง ์์ ๋ฅผ ํตํด ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์๋ ๊ตฌ์ฑ ์์๋ณด๊ธฐ์คํ๋ง ๋ถํธ๋ spring-boot-autoconfigure ํ๋ก์ ํธ ์์์ ์๋ง์ ์๋ ๊ตฌ์ฑ์ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด, JdbcTemplate์ ์ค์ ํ๊ณ ๋น์ผ๋ก ๋ฑ๋กํด์ฃผ๋ ์๋ ๊ตฌ์ฑ์ ํ์ธํด๋ณด๊ฒ ์ต๋๋ค. JdbcTemplateAutoConfigurationpackage org.springframework.boot.autoconfigure.jdbc;import j..
์น ํ๋ก์ ํธ๋ฅผ ์์ํ๋ ค๋ฉด ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๊ฐ๋ณด๋ค ๋ง์ต๋๋ค. ์คํ๋ง ์น MVC, ๋ด์ฅ ํฐ์บฃ, JSON ์ฒ๋ฆฌ, ๋ก๊ทธ ๊ด๋ฆฌ, ์ค์ ํ์ผ ๋ฑ ๋ค์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค. ๊ฐ๋ฐ์ ์
์ฅ์์๋ ๊ทธ์ ์น ํ๋ก์ ํธ๋ฅผ ์์ํ๊ณ ์ถ์ ๋ฟ์ธ๋ฐ, ๊ฐ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ผ์ผ์ด ์ถ๊ฐํ๊ณ ์ค์ ํ๋ ์ผ์ ๋ฒ๊ฑฐ๋กญ์ต๋๋ค. ์คํ๋ง ๋ถํธ ์คํํฐ๋?์คํ๋ง ๋ถํธ ์คํํฐ๋ ํน์ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๋ฐ ํ์ํ ๊ด๋ จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๋ชจ์๋ ์์กด์ฑ ์ธํธ์
๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ๋ณต์กํ ์ค์ ์์ด ๊ฐ๋จํ๊ฒ ํ๋ก์ ํธ๋ฅผ ์์ํ ์ ์์ต๋๋ค. ์คํ๋ง ๋ถํธ ์คํํฐ ๋๋ถ์ ๋๊ตฌ๋ ์ฝ๊ณ ํธ๋ฆฌํ๊ฒ ํ๋ก์ ํธ๋ฅผ ์์ํ ์ ์์ต๋๋ค. ์์ : spring-boot-starter-web • build.gradle - dependencies ์ถ๊ฐdependencies ..
- ์ด๋ฒ 4-2์์๋ ์ค์ DATA๋ก TEST๋ฅผ ์งํํ๊ฒ ์ต๋๋ค.- ํ๊ฒฝ์ค์ ๊ด๋ จ ๊ธ์ ์๋์ ์๋ ๊ธ์ ์ฐธ์กฐํ์ฌ ์งํํด์ฃผ์๋ฉด ๋ฉ๋๋ค.[๐ป FrameWork(ํ๋ ์์ํฌ)/SpringTEST(์คํ๋งํ
์คํธ)] - 4-1 [ํตํฉTEST] testcontainers ์ฌ์ฉํ๊ธฐ ์ํด ์ค์ ๋ฐ ๊ฐ๋จํ DB TEST 1. StudentScoreServiceIntegrationTestpublic class StudentScoreServiceIntegrationTest extends IntegrationTest { @Autowired private StudentScoreService studentScoreService; @Autowired private EntityManager entityManage..
- ์ด๋ฒ 4์ฅ์์๋ ํ
์คํธ๊ฐ ์ํ๋๋ ๋์ ๋์ ์ผ๋ก ์ปจํ
์ด๋๋ฅผ ์์ฑํ๊ณ ์ข
๋ฃํ๋ ์์
์ ์ํํ๋๋ก ํ๊ฒ ์ต๋๋ค. ํ
์คํธ ์์ : ํ
์คํธ๋ฅผ ์์ํฉ๋๋ค.์ปจํ
์ด๋ ์์ฑ : testcontainers๊ฐ Docker๋ฅผ ์ด์ฉํด ํ
์คํธ ํ์ํ ์ปจํ
์ด๋๋ค(MySQL, Redis ๋ฑ..)์ ์์ฑํฉ๋๋ค.๋์ ํ๋กํผํฐ ์ฃผ์
: ์์ฑํ ์ปจํ
์ด๋์ ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์คํ๋ง ํ๋กํผํฐ ๋์ ์ผ๋ก ์ฃผ์
(overwrite)ํฉ๋๋ค.ํ
์คํธ ์ํ : ์์ฑํ ์ปจํ
์ด๋๋ฅผ ํ์ฉํ์ฌ ํ
์คํธ๋ฅผ ์ํํฉ๋๋ค.ํ
์คํธ ์ข
๋ฃ: ํ
์คํธ ์ข
๋ฃ์ ๋์์ ์์ฑํ๋ ์ปจํ
์ด๋๋ค์ ์ ๋ฆฌํฉ๋๋ค.1. testcontainers ์ฌ์ฉํ๊ธฐ ์ํด ์ค์ ๋ฐ ๊ฐ๋จํ DB TEST1) build.gradle ... testImplementation "org.testcontainers:t..