๋ชฉ๋กํตํฉํ ์คํธ (3)
DevLog ๐ถ

๐ฑ ๋ค์ด๊ฐ๊ธฐ ์ ํตํฉ ํ ์คํธ๋ฅผ ํ๋ค ๋ณด๋ฉด, ์ค์ ๋น ์ค์ ์ผ๋ถ๋ง stubbing์ ํ๊ณ ์ถ์ ์ํฉ์ด ์๊ธด๋ค.์๋ฅผ ๋ค์ด, ์ธ๋ถ API๋ฅผ ํต์ ํ๊ฑฐ๋ ์ธ๋ถ ์์คํ ์ ํ์ฉํ๊ฒ ๋๋ฉด ํ ์คํธ์์ ๊ทธ๋๋ก ํ์ฉํ๊ธฐ ์ด๋ ค์ด๋ฐ, ํด๋น ๋ถ๋ถ์ ๋ํด์๋ง ์ฐ๋ฆฌ๊ฐ ์ํ๋ ์๋๋ฆฌ์ค๋ฅผ ์ ๊ณตํ์ฌ ์ฐ๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ๋์ํ๋์ง ํ์ธํ๊ณ ์ถ์ ์ ์๋ค. ํ์ง๋ง, ๋ณดํต Spring Context์์๋ ๋์ผํ ์ด๋ฆ์ ๊ฐ์ง ๋น์ ๊ทธ๋๋ก ๋ฑ๋กํ๊ฒ ๋๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์, ๋ช ๊ฐ์ง ํน๋ณํ ์กฐ์น๋ฅผ ํด์ฃผ์ด์ผ ํ๋๋ฐ ํ ๋ฒ ์ดํด๋ณด์. โ๏ธ ํ ์คํธ ์๋๋ฆฌ์ค - ์ฌ์ฉ์๊ฐ ์ํ์ ๊ตฌ๋งคํ๊ฒ ๋๋ฉด, ์ธ๋ถ API๋ฅผ ํธ์ถํ์ฌ ์ฌ๊ณ ๊ฐ ์กด์ฌํ๋์ง ํ์ธํ๋ค. - ๋ง์ฝ ์ฌ๊ณ ๊ฐ ์กด์ฌํ๋ฉด ์ธ๋ถ API๋ ‘SUCCESS’๋ผ๋ ์๋ต์, ์ฌ๊ณ ๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด ‘FA..

๐ฑ ๋ค์ด๊ฐ๊ธฐ ์ ์ฐ๋ฆฌ ํ์ ๊ฒฝ์ฐ E2E ํ ์คํธ ํ๊ฒฝ์ ๊ตฌ์ถํ๊ธฐ ์ํด์ @SpringBootTest๋ฅผ ํตํด ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์๋๋ฐ, ์ฐ๋ฆฌ ํ์ ํ์๋ถ์ด ์๋์ ๊ฐ์ ์ค๋ฅ๋ฅผ ๋ง๋๊ฒ ๋์๋ค. failed to lazily initialize a collection of role: co.kirikiri.domain.roadmap.RoadmapContent.nodes.values: could not initialize proxy - no Session ์ํฉ์ ์๋์ ๊ฐ๋ค. (์ถํ ์ฝ๋๋ก ๋ ์ ์ดํด๋ณผ ์์ ์ด๋ค.) A๋ผ๋ ์์ฑ API์ B๋ผ๋ ์กฐํ API๊ฐ ์์ ๋, ํ ๋ด์์ ๊ธฐ๋ฅ์ ์ธ๋ถํํ ๋ค์ ๊ฐ์ ๊ฐ๋ฐ์ ์งํํ๋ค ๋ณด๋ B๋ฅผ ๊ฐ๋ฐํ๋ ์์ ์ A๋ผ๋ API๊ฐ ์์ด, ํตํฉ ํ ์คํธ ๋ repository๋ฅผ ..

๐ฑ ๋ค์ด๊ฐ๊ธฐ ์ ์ด์ ํฌ์คํ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์คํฐ๋์์ ๋งก์ 'ํ ์คํธ' ํํธ์ ๋ํด์ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค ๐ ํ ์คํธ ์ชฝ์ ๊ณต์ ๋ฌธ์๋ ์๊ฐ๋ณด๋ค ๊ฐ๋ ์ฑ์ด ๋๋ฌด ์ ์ข์์ ์ต๋ํ ๊ฐ๋ตํ๊ฒ๋ง ํ์ด๋ณด์๋ค. ์์ง ๋ชจ๋ฅด๋ ๊ฒ ์ ๋ง ๋ง์ ๊ฒ ๊ฐ๋ค ใ ใ ๐ฑ ํตํฉ ํ ์คํธ vs ์ธ์ ํ ์คํธ ํตํฉ ํ ์คํธ๋ ํน์ ์์ ์ ์ํํ๊ธฐ ์ํด, ์ธ๋ถ ์์ ๋ค๊ณผ ์ฐ๊ด๋์ด ์๋ค๋ฉด ํด๋น ์ธ๋ถ ์์ ๋ค์ ํฌํจํ์ฌ ๊ตฌ์ฑ ์์๊ฐ ์ ๋์๊ฐ๋์ง ํ ์คํธํ๋ ๋ฐฉ๋ฒ์ผ๋ก, @SpringBootTest ์ด๋ ธํ ์ด์ ์ ํ์ฉํ์ฌ ์งํํ๋ ๋ฐฉ๋ฒ์ด ๋ง๋ค. (๊ด๋ จ๋ ๋ชจ๋ ๋น์ ๊ฐ์ ธ์์ ํ ์คํธ ํ๋ ๋๋) ๋ฐ๋ฉด, ์ธ์ ํ ์คํธ์ ๊ฒฝ์ฐ ์ฌ์ฉ์์ ์๋๋ฆฌ์ค์ ๋ง์ถฐ ์ํํ๋ ํ ์คํธ์ด๋ค. ์ธ์ ํ ์คํธ์ ๋ฐฉ๋ฒ๋ก ์ผ๋ก E2E ํ ์คํธ๋ฅผ ํตํด ์ฃผ์ด์ง ์๋๋ฆฌ์ค์ ๋ฐ๋ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ ..