์ฝ๊ณ ํธ๋ฆฌํ E2E ํ ์คํธ ์๋ํ๋ฅผ ๊ฟ๊พธ๋ฉฐ (1)
์ฝ๊ณ ํธ๋ฆฌํ E2E ํ ์คํธ ์๋ํ๋ฅผ ๊ฟ๊พธ๋ฉฐ (1) ๊ด๋ จ
FEConf2024์์ ๋ฐํํ <์ฝ๊ณ ํธ๋ฆฌํ E2E ํ ์คํธ ์๋ํ๋ฅผ ๊ฟ๊พธ๋ฉฐ>๋ฅผ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ๋ฐํ ๋ด์ฉ์ 2ํ๋ก ๋๋์ด ๋ฐํํฉ๋๋ค. 1ํ์์๋ E2E ํ ์คํธ, ๊ทธ ํ ์คํธ๋ฅผ ๋๋ ํด๊ณผ ์ ์ง ๋ณด์ ๋น์ฉ์ ๋ฎ์ถฐ ํจ์จ์ ์ธ ํ ์คํธ ์ฝ๋๋ฅผ ์์ ์ฌ๋ฆฌ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. 2ํ์์๋ ํ ์คํธ ์ฝ๋ ์ฌ์ฌ์ฉ ๋ฐ ๋ชจ๋ํ์ย Playwright๋ฅผ ๊ฐ์ ํ ๋ด์ฉ์ ๋ํด ์์๋ด ๋๋ค. ๋ณธ๋ฌธ์ ์ฝ์ ๋ ์ด๋ฏธ์ง์ ์ถ์ฒ๋ ๋ชจ๋ ์ด ์ฝํ ์ธ ์ ๊ฐ์ ์ ๋ชฉ์ ๋ฐํ ์๋ฃ๋ก, ๋ฐ๋ก ์ถ์ฒ๋ฅผ ํ๊ธฐํ์ง ์์์ต๋๋ค.
์๋ ํ์ธ์. โ์ฝ๊ณ ํธ๋ฆฌํ E2E ํ ์คํธ ์๋ํ๋ฅผ ๊ฟ๊พธ๋ฉฐโ๋ผ๋ ์ ๋ชฉ์ ๋ฐํ๋ฅผ ์งํํ ๋ฐฑ๋ถ์์ ๋๋ค. ์ ๋ ์ค์ค๋ก๋ฅผ ์ค์ฉ์ฃผ์ ํ๋ก๊ทธ๋๋จธ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋๊ธฐ์ SI์ ํ์ผํ ์ปค๋จธ์ค ๋ฑ์ ๊ฑฐ์น๋ฉฐ, ๋ฐ๋ณต ์์ ์ ์๋ํํ๊ณ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ์์ ์ ์ต์ํํ๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. ํ์ฌ ์ ๋ ๊ณ ๊ฐ๋ค์๊ฒ ๋ง์ผํ ์ด๋ฉ์ผ์ ์ ์ํ๊ณ ๋ฐ์กํ๋ ์๋น์ค๋ฅผ ๋ง๋๋ ์คํฐ๋น์์ CTO๋ก ์ผํ๊ณ ์์ต๋๋ค. ์คํฐ๋น์์ 2,800,000,000์ฌ ๊ฑด์ ์ด๋ฉ์ผ์ ๋ฐ์กํ๋ฉฐ ์ป์ ์ด๋ฉ์ผ ํธํ์ฑ ์ต์ ํ ๊ฒฝํ์ ์๊ฐํ๊ณ , ์ด๋ฅผ ๋ฐํ์ผ๋ก E2E์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
์ด๋ฒ ๊ธ์์ ๋ค๋ฃจ๋ ๋ด์ฉ๋ค์ ์๋์ ๊ฐ์ต๋๋ค.
- E2E ํ ์คํธ ์๋ํ ๋๊ตฌ์ ๋ฐ์
- E2E ํ ์คํธ ์๋ํ ๋ฐ ํจ์จ์ฑ ํฅ์
- Front ํ๋ก์ ํธ ์ค์
๋ฐ๋ฉด, ์๋์ ๋ด์ฉ๋ค์ ์ด๋ฒ ๊ธ์์ ์ ๋ฌธ์ ์ผ๋ก ๋ค๋ฃจ์ง ์์ต๋๋ค.
- TDD
- ๋ชจ๋ฐ์ผ ์ ๋ฌธ E2E
- ํ ์คํธ CI / CD ํ์ดํ๋ผ์ธ์ ์๋ํ
๊ทธ๋ผ ๋ณธ๋ก ์ผ๋ก ๋ค์ด๊ฐ ๋ณด๊ฒ ์ต๋๋ค.
E2E
E2E๋
์ฐ๋ฆฌ๊ฐ ์๋น์ค๋ฅผ ์ด์ํ ๋๋ ๋ฐฑ์๋์์๋ ์ ๋ ํ ์คํธ๋ฅผ ํ๊ณ ํ๋ก ํธ์๋์์๋ ์ ๋ ํ ์คํธ๋ฅผ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ํ์ง๋ง ๋ชจ๋ ๋จ์์์ ์ ๋ ํ ์คํธ๊ฐ ์ ์ด๋ค์ง์ง ์๋ ๊ฒฝ์ฐ๋ ์์ฃผ ๋ง์ต๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ตญ E2E ํ ์คํธ๋ฅผ ํตํด ์ฌ์ฉ์ ๊ด์ ์์์ ํ ์คํธ๋ฅผ ์ ๋ฆฝํ๊ณ ๊ฒ์ฆํด์ผ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ํ๋จํ ์ ์์ต๋๋ค.
ํ์ง๋ง ์ด๋ฌํ E2E ํ ์คํธ๊ฐ ์ด๋ ค์ด ์ด์ ๋ ์๋ ๊ทธ๋ฆผ์์ ์ ์ ์์ต๋๋ค. ์ ๋ ํ ์คํธ์ ๊ฒฝ์ฐ ํ๋ก ํธ์๋๋ ๋ฐฑ์๋ ๋ชจ๋ ๋น์ฉ๋ ์๋์ ์ผ๋ก ์ ๊ฒ ๋ค๊ณ , ๊ฐ๋ฐ์๊ฐ ์ค์ค๋ก ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ E2E ํ ์คํธ๋ ํตํฉ ํ ์คํธ์ด๊ณ , UI ํ ์คํธ๊ฐ ํฉ์ณ์ ธ ์๊ธฐ ๋๋ฌธ์ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ๋ถํฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๊ณ , ํ ์คํธ ์๋๋ ์๋์ ์ผ๋ก ๋๋ฆฝ๋๋ค.
๊ทธ๋ผ์๋ ์ ๋ขฐ๊ฐ ๋๋ค๋ ์ฅ์ ๋๋ฌธ์, ์ด๋ ์ ๋๋ ์ปค๋ฒ๋ฅผ ํด์ผ ํ๋ค๊ณ ํ๋จํ์ต๋๋ค.
E2E ํ ์คํธ ๊ณผ์
E2E ํ ์คํธ๋ฅผ ํ๋ ๊ณผ์ ์ ์๋ ๊ทธ๋ฆผ์ฒ๋ผ ์งํ๋ฉ๋๋ค. ํ ์คํธ๋ฅผ ์ค๊ณํ๊ณ , ํ ์คํธ๋ฅผ ์์ฑํ๊ณ ์คํํ ๋ค์, ๊ฒฐ๊ณผ๋ฅผ ํ์ธํฉ๋๋ค. ์ค๊ณ ๋ถ๋ถ์ ๊ฐ๋ฐ์์ ์์ญ์ด ์๋๊ธฐ ๋๋ฌธ์ ์ด๋ฒ ๊ธ์์ ์ ๊ฐ ์๊ฐํ ๋ด์ฉ์ ์๊ณ , ํ ์คํธ๋ฅผ ์์ฑํ๋ ๋ถ๋ถ์ ๋ํ ๊ณ ๋ฏผ๊ณผ ๊ฐ์ ์ ์ํ ๋ ธ๋ ฅ์ ๋ํด ์ฃผ๋ก ์๊ฐํ๊ฒ ์ต๋๋ค.
๋ง์ฐฌ๊ฐ์ง ์์ฑ ๋ค์ ์์ญ์ธ ํ ์คํธ ์คํ ๋ถ๋ถ์ ๊ฐ์ ํ๊ธฐ ์ํ ๋ฐฉ๋ฒ๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ง๋ง ์ด๋ฒ ๊ธ์์๋ ์ค์ํ๊ฒ ๋ค๋ฃจ์ง ์์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก ๊ฒฐ๊ณผ ๋ณด๊ณ ๋ฅผ ํตํด E2E ํ ์คํธ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๋ ๋ถ๋ถ์ด ์์ต๋๋ค. ์ด๋ค ํ์ฌ์์๋ ํ ์คํธ ๊ฒฐ๊ณผ๋ฅผ ๋์์์ผ๋ก ํ์ธํ๊ธฐ๋ ํ๋๋ฐ, ์ ์ ๊ฒฝ์ฐ ์คํฌ๋ฆฐ์ท์ ํตํด ๊ฒ์ฆํ๋ ๊ฒ์ด ์์ํ๊ฒ ์์ ํ ์ ์๋ค๊ณ ์๊ฐํด ๊ทธ๋ ๊ฒ ์งํํ์ต๋๋ค.
ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ค ๋ณด๋ฉด ์๋ ํฌ ์๋๋ฅผ ๋ชจ๋ ๊ฑฐ์ณ ๊ฐ์ง๋ง, ๊ฒฐ๊ตญ ํ๋ก ํธ์๋ ์์ญ์์ ์์ํ ์๋ฐ์ ์์ต๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ด ๋ถ๋ถ์ ์๋ํํ์ฌ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ํ ๊ณ ๋ฏผ์ ํ์ต๋๋ค. ์ฌ๊ธฐ์ ๋๋ฒ๊น ๋ฐ ์์ ์ ํธํ๊ฒ ํ๊ณ , ๋ชจ๋ํ๋ฅผ ํตํด ์ฌ์ฌ์ฉ์ ํ๊ณ ์ ํ์ต๋๋ค.
๋์ E2E ์ด์ผ๊ธฐ: ์์
์ ๊ฐ E2E์ ๊ด์ฌ์ ๊ฐ์ง๊ณ ๊ฐ์ ์ ์์ํ๋ ์๊ธฐ๋ ํ SI ํ๋ก์ ํธ๋ฅผ ์งํํ ๋์์ต๋๋ค. ๋น์์๋ ๋ค์ํ ๋ธ๋ผ์ฐ์ ๋ค์ ๋ ๋๋ง ๋ฐฉ์์ด ์์ ํ ๋ฌ๋๊ณ , ์นํท ์์ฒด๊ฐ ์๋ ์๊ธฐ์๊ธฐ ๋๋ฌธ์ HTML, CSS, ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์กฐ๊ธ๋ง ์์ ํด๋ ๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง ๋ฐฉ์์ ์ฐจ์ด ๋๋ฌธ์ ๊ฐ๊ฐ์ ๋ธ๋ผ์ฐ์ ์์ ๋ฌธ์ ๊ฐ ๋ง์ด ์๊ฒผ์ต๋๋ค. ์ด๋ก ์ธํด ๊ฒ์ฆํ ๋ ์๊ฐ์ ๋ง์ด ์ฐ๊ฒ ๋๊ณ ๋ถํธํ ์ ์ด ๋ง์์ต๋๋ค. ๊ทธ๋์ ์ด ๋ถ๋ถ์ ๊ฐ์ ํด ๋ณด์๋ผ๊ณ ์๊ฐ์ ํ๊ฒ ๋์ต๋๋ค.
์ ๋ ๋(Selenium)
์ด๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ์ฒ์์๋ ์ ๋ ๋(Selenium)์ด๋ผ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ํ ์คํธ ๋ฐ ์๋ํ ํด์ ์ฌ์ฉํ์ต๋๋ค. ์ ๋ ๋์ ์ฌ์ฉํ๋ฉด, ์ฌ์ฉ์๊ฐ ๊ฒ์ฆํ๋ฏ ๋ นํ๋ฅผ ์งํ๋ง ํด๋ ํ ์คํธ ์ฝ๋๋ฅผ ์๋์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ์์ฑ๋ ์ฝ๋๋ฅผ DB์ ์ ์ฅํ๊ณ ๋ค์ ๋ณด๋ฉด์ ์ฌํํ๋ ์์ ์ ์งํํฉ๋๋ค.
์ ๋ ๋์ ๋ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด ์ด๋ฏธ์ง๋ฅผ ํตํด ๋น๊ตํ๋ ์์ด๋์ด๋ฅผ ์๊ฐํ๊ณ , ๋ง์นจ ํด์ปคํค์ ์ฐธ์ฌํ๋ ๊ธฐํ๊ฐ ์๊ฒจ ์๊ฐ๋ง ํ๋ ๊ฒ๋ค์ ๊ตฌํํ ์ ์์์ต๋๋ค.
๋น์ ์ ๋ ์ ๋ ๋์ ํตํด ํ ์คํธ๋ฅผ ์งํํ๋ ๋จ๊ณ ์ค๊ฐ์ค๊ฐ์ ์บก์ฒ๋ฅผ ํ ์ ์๋ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ์ต๋๋ค. ์บก์ฒ๋ฅผ ๋น๊ตํ๋ฉด์ A ๋ธ๋ผ์ฐ์ ์ B ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ค ์ฐจ์ด๊ฐ ์๋์ง, ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ๋ฉด ์ด๋์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋์ง ์ ์ ์๊ฒ ํ์ต๋๋ค. ๋ค๋ง ์ ์ด๋ฏธ์ง์ ๊ฐ์ด ๋ช ๊ฐ์ง ํ๊ณ๋ ์์์ต๋๋ค.
ํผํซํฐ์ด(Puppeteer)
์ด๋ ๊ฒ ์ ๋ ๋์ ์ฌ์ฉํ๋ ์์ค์ ํผํซํฐ์ด(Puppeteer)๋ผ๋ ํด์ด ์ถ์๊ฐ ๋์ต๋๋ค. ํฌ๋กฌ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉํ๋ ํ ์คํธ ํด์ธ๋ฐ, ์ฌ์ฉํด ๋ณด๋ ์ ๋ ๋์ ๋นํด ์์ฃผ ์ข์ ๋๊ตฌ๋ผ๋ ์๊ฐ์ด ๋ค์์ต๋๋ค. ๋คํธ์ํฌ ์ ์ด ๋ฑ์์ ์ ๋ ๋๋ณด๋ค ์ฑ๋ฅ์ด ์ข๊ธฐ ๋๋ฌธ์ ๋ ๋น ๋ฅด๊ฒ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฐํ ์ ์๋ค๊ณ ๊ธฐ๋ํ์ต๋๋ค.
๊ทธ๋ฌ๋ ํผํซํฐ์ด์๋ ํฐ ๋ฌธ์ ์ ์ด ํ๋ ์์์ต๋๋ค. ๋ฐ๋ก ๋ด๋ถ์ ์ผ๋ก ์ฝ๋ ์์ฑ์ ์ง์ํ์ง ์๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํ ์คํธ ์ฝ๋๋ฅผ ์๋์ผ๋ก ์์ฑํ๋ ๋ถ๋ถ์ด ์ด๋ ค์ ์ต๋๋ค. ์ด ๋ถ๋ถ์ ๊ฐ์ ํ๊ธฐ ์ํด ์ฝ๋ ์์ฑ์ ์๋์ผ๋ก ํด์ฃผ๋ ์ต์คํ ์ ์ ์ง์ ๋ง๋ค์ด ๋ณด๊ธฐ๋ ํ๋๋ฐ, ๋ถ์กฑํ ์ ์ด ๋ง์์ ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ๋ง๋ ์ฝ๋ ์์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
๊ทธ๋ฌ๋ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ค ๋ณด๋ฉด, ํน์ ๋จ๊ณ์์ ์คํจํ ๋ ์ฒ์์ผ๋ก ๋์์ ๋ค์ ์งํํ๊ธฐ ๋๋ฌธ์ ์๊ฐ์ด ๊ต์ฅํ ์ค๋ ๊ฑธ๋ฆฝ๋๋ค. ์๋ ๊ทธ๋ฆผ์ ์๋ก ๋ค๋ฉด, ๋ก๊ทธ์ธ์ ํ๊ณ ์ฅ๋ฐ๊ตฌ๋์ ๋ฌผ๊ฑด์ ๋ด๊ณ , ๊ตฌ๋งคํ๊ธฐ๋ฅผ ํ๋ ์ค ๊ตฌ๋งคํ๊ธฐ ๋จ๊ณ์์ ์คํจ๋ฅผ ํ๋ฉด ์ฒ์๋ถํฐ ๋ก๊ทธ์ธ์ ํ๊ณ ์ดํ ๊ณผ์ ์ ๋ค์ ๋ฐ๋ณตํ๋ ์์ ๋๋ค.
์ด ๋ถ๋ถ์ ๊ฐ์ ํ๊ธฐ ์ํด ๋ธ๋ผ์ฐ์ ์ ์ธ์ ์คํ ๋ฆฌ์ง๋ ๋ก์ปฌ ์คํ ๋ฆฌ์ง์ ํ ์คํธ ์งํ ์ํฉ์ ์๋์ผ๋ก ์ ์ฅํ๊ณ , ์ด๋ฅผ ๋ธ๋ผ์ฐ์ ๋ฅผ ์คํํ ๋ ๋ก๋ํด์ ํน์ ์ฒดํฌํฌ์ธํธ๋ถํฐ ๋ค์ ์คํํ ์ ์๋๋ก ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค. ์ด๋ ๊ฒ ๋ค์ํ ๋ ธ๋ ฅ์ ๋ค์ฌ ๊ฐ์ ์ ํ๋๋ฐ๋, ํผํซํฐ์ด๋ ๋ถ์กฑํ ๋ถ๋ถ์ด ๋ง์๊ธฐ ๋๋ฌธ์ ๋๋ฃ ๊ฐ๋ฐ์๋ค์๊ฒ ์ถ์ฒํ์ง๋ ์๋ ํด์ด์์ต๋๋ค.
์ ๋ ๋๊ณผ ํผํซํฐ์ด์ ํ๊ณ
๊ฒฐ๊ตญ ํ ์คํธ ์ฝ๋ ์๋ํ๋ฅผ ์ํด์๋ ์ง์๋์ด์ผ ํ๋ ๋ถ๋ถ์ ์ ๋ ๋๊ณผ ํผํซํฐ์ด๋ ์ด๋ ์ ๋ ํ๊ณ๊ฐ ์์์ต๋๋ค. ํนํ Selector๊ฐ ์ ๊ตํ์ง ๋ชปํ ๋ถ๋ถ์ด ์์ฌ์ ์ต๋๋ค.ย ์์ฆ ๋ง์ด ์ฌ์ฉํ๋ ๋ฆฌ์กํธ๋ ๋ทฐ๋ ํด๋์ค ๋ช ์ ๋์ ์ผ๋ก ์์ฑํ๊ธฐ ๋๋ฌธ์ CSS์ xpath๋ฅผย Selector๋ก ์ฌ์ฉํ๋ ์ ๋ ๋๊ณผ ํผํซํฐ์ด๋ ์ ํฉํ์ง ์์์ต๋๋ค.
Playwright
๊ทธ๋ฌ๋ค ์ด๋ฌํ ๋จ์ ๋ค์ ๋๋ถ๋ถ ๋ณด์ํ Playwright๋ผ๋ ํด์ด ๋์์ต๋๋ค. ํผํซํฐ์ด๋ฅผ ๊ฐ๋ฐํ๋ ๋ถ๋ค์ด MS๋ก ์ฎ๊ฒจ๊ฐ์ ํผํซํฐ์ด 2.0 ๋ฒ์ ์ผ๋ก ๋ง๋ ๊ฒ์ด Playwright๋ผ๊ณ ์๊ฐํ๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ฐ๋ฐ์๋ค์๊ฒ ๋ง๋ค์๋ ๊ฑธ ๋ค์ ๋ง๋ค๋ผ๊ณ ํ๋ฉด ์ข ๋ ์ํ ์ ์๋ฏ์ด, Playwright๋ ๋์ฑ ๋ง์ ๊ฐ์ ์ด ์์์ ๊ฑฐ๋ผ๊ณ ๊ธฐ๋ํ๋ฉด์ ์ฌ์ฉํด ๋ณด๊ธฐ๋ก ํ์ต๋๋ค.
Playwright๋ ์ฌ๋ฌ ์ฅ์ ์ด ์์ต๋๋ค. ๋ค์ํ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ง์ํ๊ณ , ํ ์คํธ๋ฅผ ๋ณ๋ ฌ๋ก ์คํํ๊ธฐ ๋๋ฌธ์ ํ ์คํธ ์๊ฐ๋ ์๋นํ ๋จ์ถ์ํฌ ์ ์์ต๋๋ค. ๋ํ, ๋ค์ํ ์ธ์ด ์ง์๊ณผ ๊ฐ๋ ฅํ ๋คํธ์ํฌ ์ ์ด ๊ธฐ๋ฅ์ ํตํด ๋คํธ์ํฌ ์์ฒญ์ ์ธํฐ์ ํธํ๊ณ ์์ ํ ์ ์๋ค๋ ํน์ง์ด ์์ต๋๋ค.์ด์ฒ๋ผ ์ฌ๋ฌ ํน์ง ์ค์์๋ ์ ๊ฐ ๊ฐ์ฅ ์ค์ํ๊ฒ ์๊ฐํ๋ ํน์ง์ ๋ฐ๋ก ์๋ ์ฝ๋ ์์ฑ์ ์ง์ํ๋ค๋ ๊ฒ์ ๋๋ค.
๋, ์์ ๋งํ ๊ฒ์ฒ๋ผ ๋ นํ๋ฅผ ํ๊ธฐ ์ํด DOM์ ์ ํํ๊ณ , DOM์ ์ฌํ์ฉํ๋ ์ ๋ ํฐ๊ฐ CSS๋ xpath๊ฐ ์๋ ๋ ์ข์ ์ฑ๋ฅ์ ๊ฐ์ง ๊ฒ๋ค๋ก ์ง์ํ๋ ์ ๋ ์ข์์ต๋๋ค. ๊ทธ ์ธ ์คํฌ๋ฆฐ์ท์ ์๋์ผ๋ก ์ฐ๋ ๊ธฐ๋ฅ, ๋ธ๋ผ์ฐ์ ์คํ ๋ฆฌ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ธฐ๋ฅ ๋ฑ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํฉ๋๋ค.
์ด์ Playwright์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ์กฐ๊ธ ๋ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋จผ์ VScode์ playwright๋ฅผ ์ค์นํ๊ณ , ๋ นํ ๋ฒํผ์ ๋๋ฅด๋ฉด VScode์ ์ฝ๋๊ฐ ์๋์ผ๋ก ์์ฑ๋ฉ๋๋ค. ํผํซํฐ์ด์์๋ ์ง์ํ๋ ๊ธฐ๋ฅ์ด์ง๋ง, ๋ นํํ ๊ฒ์ ํ๋ ์ดํ๋ค๊ณ ํด์ ์๋ฒฝํ๊ฒ ๋์ํ๋ ๊ฒ์ ์ฌ์ด ์ผ์ ์๋๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ด ๊ธฐ๋ฅ์ ๋งค์ฐ ๋ง์กฑ์ค๋ฌ์ ์ต๋๋ค.
Playwright์ ๋ ๋ค๋ฅธ ์ค์ํ ๊ธฐ๋ฅ์ ๋ฐ๋ก ๊ฐ๋ ฅํ ๋ฆฌํฌํ ๊ธฐ๋ฅ์ ๋๋ค. ๋์์ ๋ นํ๋ ๊ฐ๋ฅํ๊ณ ์คํฌ๋ฆฐ์ท ์ ์ฅ๋ ๊ฐ๋ฅํ์ง๋ง ๊ฐ์ฅ ์ค์ํ ์ ์ ๋ฐ๋ก DOM์ ํ์ธํ๋ ์์ ์ ๋๋ค. ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ๋๋ฒ๊น ์ ํตํด ์ด๋๊ฐ ์๋ชป๋๋์ง ํ์ธํ๋ ค๋ฉด DOM์ ์ ์ดํด๋ด์ผ ํ๋๋ฐ, Playwright์์๋ ๋ชจ๋ ๋จ๊ณ์ ์คํฌ๋ฆฐ์ท์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ HTML์ด ์ด๋ป๊ฒ ๋์ด ์๋์ง ํ์ธํ ์ ์๊ณ , ์ฝ์์ด๋ ๋คํธ์ํฌ ์ ๋ณด๋ ํจ๊ป ํ์ธํ ์ ์์ต๋๋ค.E2E ์์
E2E ํ ์คํธ ํ๊ฒฝ
์ด์ ๋ณธ๊ฒฉ์ ์ธ ์์ ์๊ฐ์ ๋๋ค. ๋ง์ ์๋น์ค์ ์กด์ฌํ๋ ํ์ ๊ฐ์ ์ด๋ ๋ก๊ทธ์ธ์ ํฌํจํด์, ์ ๊ฐ ์ํ ์คํฐ๋น์์ ์์ฃผ ๋ฐ๋ณต๋๋ ์์ ์ธ ์ฃผ์๋ก ์์ฑ, ์ด๋ฉ์ผ ์์ฑ, ์ด๋ฉ์ผ ๋ฐ์ก, ์ด๋ฉ์ผ ์์ ์ ์์๋ก E2E ํ ์คํธ๊ฐ ์ด๋ป๊ฒ ์งํ๋๋์ง ์์๋ณด๊ฒ ์ต๋๋ค.
E2E ํ ์ค๋ฅผ ์งํํ๊ธฐ ์ ์ ๋จผ์ ์ ํํด์ผ ํ ๊ฒ์ด ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํ ์คํธ ํ๊ฒฝ์ ๋ง๋ค์ด์ ์คํํ ๋๋, ์ผ์์ ์ธ ํ๊ฒฝ์ ์์ฑํด ํ ์คํธํ๋ ๋ฐฉ๋ฒ๊ณผ ์ง์ ๊ฐ๋ฅํ ํ๊ฒฝ์ ์์ฑํด ํ ์คํธํ๋ ๋ฐฉ๋ฒ, ์ด๋ ๊ฒ ๋ ๊ฐ์ง ์ ํ์ง๊ฐ ์์ต๋๋ค.
์ฌ๊ธฐ์ ์ผ์์ ์ธ ํ๊ฒฝ์ด๋ ํ ์คํธ ์ฝ๋๋ฅผ ๋ง๋ค๊ณ , ์ด ์ฝ๋๋ฅผ ์ ๋์์ํค๊ธฐ ์ํด DB์ ์๋ฒ๋ค์ ๋์ปค๋ก ์คํํด ํ์ธํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด ๋ฐฉ๋ฒ์ ํ ์คํธ ์ผ์ด์ค๊ฐ ์คํจํ ํ๋ฅ ์ด ์์ฃผ ๋ฎ์ต๋๋ค. ํ์ง๋ง ๋งค๋ฒ ์ผ์์ ์ธ ํ๊ฒฝ์ ๋ง๋๋ ๊ฒ์ ์ค์ ํ๊ฒฝ์ ์ ์ฉํ๊ธฐ๋ ์ด๋ ต๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ ๋ ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ธ ์ด์ ๊ฐ๋ฅํ ํ๊ฒฝ, ์ฆ, ์ด๋ค ํ์ฌ์ ํ ์คํธ ํ๊ฒฝ์ด๋ ๊ฒ์ฆ ํ๊ฒฝ์ด๋ผ๋ ๋ฐ๋ก ์คํ์์ผ ํ์ธํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ง๋ค์ด๋ณด๊ณ ์ ํ์ต๋๋ค. ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ํ ๋ฌ ์ , 1๋ ์ ์ ํ์ ๊ฐ์ ํ ์ฌ๋๊ณผ ๊ฐ์ ๊ธฐ์กด ๋ฐ์ดํฐ์๋ ํ ์คํธ๋ฅผ ์คํํ๊ณ ๋ นํํ์ฌ ํ์ธํ ์ ์์ต๋๋ค. ์ธ๋ถ ์ธํฐํ์ด์ค๋ฅผ ํตํด ๊ณ์ ์ด์๋๊ณ ์๋ ํ๊ฒฝ์ด๋ผ๋ ์ฃผ๊ธฐ์ ์ผ๋ก ํ ์คํธ ์ฝ๋๋ฅผ ์คํ์์ผ์ ๋ฌธ์ ๊ฐ ์๋์ง ๋ฐ๋ก ํ์ธํ ์ ์์ต๋๋ค.
ํ ์คํธ ์ฝ๋ ์์ฑ
ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด ์ ์ง ๋ณด์ ๋น์ฉ์ด ๊ต์ฅํ ๋ง์ด ๋ค์ด๊ฐ๋ค๋ ๊ฒ์ ์ฌ๋ฌ๋ถ๋ ์๊ณ ์์ ๊ฑฐ๋ผ ์๊ฐํฉ๋๋ค. ๊ทธ๋์ E2E ํ ์คํธ๋ฅผ ์์ฑํ ๋, ์ ์ง ๋ณด์ ๋น์ฉ์ด ๋ง์ด ๋ค์ด๊ฐ๋ ๋ถ๋ถ์ ์ต์ํํ๊ณ ์ ํ์ต๋๋ค. ์ถ๊ฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๊ฑฐ๋ ํ ์คํธ ์ฝ๋๋ฅผ ์ํ ์ถ๊ฐ์ ์ธ API ๊ฐ๋ฐ์ ์ต์ํ์ผ๋ก ์ค์ฌ, ํ ์คํธ ์ฝ๋ ์์ ์ด ์๊ฒผ์ ๋๋ ์ถ๊ฐ์ ์ธ ์ ์ง ๋ณด์ ๋น์ฉ์ด ๋ค์ง ์๊ฒ ํด์ผ ํฉ๋๋ค.
์ ์ง ๋ณด์ ๋น์ฉ์ ๋ฎ์ถ๋ ๋ฐฉํฅ์ผ๋ก ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ์ง ์์ผ๋ฉด ๊ฒฐ๊ตญ ํ ์คํธ ์ฝ๋๊ฐ ๊ด๋ฆฌ๊ฐ ๋์ง ์๊ณ , ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ์ง ์๋ ์์ ์ผ๋ก ๋์๊ฐ๊ธฐ ์ฝ์ต๋๋ค.
์ธ์ฆ ์๋น์ค์ ํ ์คํธ ์ฝ๋
E2E ํ ์คํธ๋ฅผ ์ํด ๋ง๋ ๋ค์ํ ์ธ์ฆ ์๋น์ค๋ฅผ ์์๋ก ๋ ์์ธํ๊ฒ ์์๋ณด๊ฒ ์ต๋๋ค. E2E ํ ์คํธ๋ฅผ ์งํํ๋ค ๋ณด๋ฉด ์ธ์ฆ ๋จ๊ณ๋ฅผ ๋ช ์ฐจ๋ก ๋ง๋๊ฒ ๋ฉ๋๋ค. Gmail ๋ก๊ทธ์ธ, ๋ค์, ๋ค์ด๋ฒ ๋ก๊ทธ์ธ ๋ฑ์ ์๋ก ๋ค ์ ์๋๋ฐ, ์ด๋ฐ ์ธ์ฆ ๋จ๊ณ๋ ํ ์คํธ ๋ด์ผ๋ก ์ ๊ทผํ๋ฉด ํต๊ณผํ์ง ๋ชปํ๊ฒ ๋งํ์์ต๋๋ค. ์ด๋ฐ ์ธ์ฆ ๋จ๊ณ๋ฅผ ํต๊ณผํ๊ธฐ ์ํด ์์ ์ค๋ช ํ ๊ฒ์ฒ๋ผ ์ถ๊ฐ์ ์ธ API ๊ฐ๋ฐ์ ํ์ง ์์ผ๋ฉด์, Websocket ๊ธฐ๋ฐ ์ค์ ์ด๋ฉ์ผ ์ธ์ฆ์ ์งํํ๋ ์ด๋ฉ์ผ ์๋น์ค๋ฅผ ๋ง๋ค์์ต๋๋ค.
๋ค์์ผ๋ก ๋ง๋๊ฒ ๋๋ ์ธ์ฆ์ ๋ฐ๋ก ๋ฆฌ์บก์ฑ ์ธ์ฆ์ ๋๋ค. ํผํซํฐ์ด์์ ์ง์ํ๋ ๋ฆฌ์บก์ฑ ์ธ์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๊ธด ํ์ง๋ง ๋ถ์์ ํ๊ธฐ ๋๋ฌธ์ ์ธ๋ถ ์๋น์ค๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ์ด ์๋น์ค๋ฅผ ์คํํ๋ฉด 1๋ถ ์ ๋ ์๊ฐ ๋์ ๋ธ๋ผ์ฐ์ ์์ ๋ฌด์์ธ๊ฐ ์๋์ ํ๊ณ ๋ฆฌ์บก์ฑ ์ธ์ฆ์ ํต๊ณผํ ์ ์๊ฒ ํด์ค๋๋ค. ์๊ฐ์ด ๋ค์ ๊ฑธ๋ฆฌ๋ ์์ ์ด๊ธฐ ๋๋ฌธ์ ์ด ๋ถ๋ถ์์ ์ถ๊ฐ์ ์ผ๋ก ํ์์์ ๊ด๋ฆฌ๋ฅผ ํด์ค์ผ ํฉ๋๋ค.
๋ค์์ ๋ฌธ์ ์ธ์ฆ์ ๋๋ค. ์์ ์ค๋ช ํ ๊ฒ์ฒ๋ผ ์ ์ง ๋ณด์ ๋น์ฉ์ ์ค์ด๊ธฐ ์ํด ์ถ๊ฐ์ ์ธ API ๊ฐ๋ฐ์ ์ง์ํ์๊ณ ํ์ง๋ง, ๋ฌธ์ ์ธ์ฆ์ ์ํ ์๋น์ค๋ ๋ฐฉ๋ฒ์ ์ฐพ์ง ๋ชปํ์ต๋๋ค. ๊ฒฐ๊ตญ ์ด ๋ถ๋ถ์์๋ ์ถ๊ฐ API๋ฅผ ๊ฐ๋ฐํด์ผ ํ์ต๋๋ค.
๋ฌธ์ ์ธ์ฆ์ ํ๋ ค๋ฉด DB์ ์ธ์ฆ ์ฝ๋ 6์๋ฆฌ๊ฐ ์กด์ฌํ๋์ง ํ์ธํด์ผ ํ๋๋ฐ, ์ด์ ๋ง๋ค ๊ฑฐ๋ฉด ๋ ธ์ฝ๋๋ก ๋ง๋ค ์ ์๋ ํธ๋ฆฌํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํด ๋ณด๊ณ ์ ํ์ต๋๋ค. โ์ฌํผ์ดโ๋ผ๋ ์ ๋ช ํ ์๋ํ ์๋น์ค์ ์ ์ฌํ โn8nโ ์คํ ์์ค์ ๋๋ค.
n8n์ ๋ํด ์กฐ๊ธ ๋ ์ค๋ช ํด ๋ณผ๊น์? ์ ๋ฌด ์ํต์ ์์ฃผ ์ฌ์ฉํ๋ ์ฌ๋์์ ๋ํ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ค ๋ณด๋ฉด ๊ทธ ๋ํ๊ฐ ๋ฐ๋ก ์ ๋ฌด๋ก ๋ฐ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด๋ฐ ๊ฒฝ์ฐ n8n์ ์ฌ์ฉํ์ฌ ํด๋น ๋ํ์ ๋ก๋ฉ ์ด๋ชจ์ง๋ฅผ ์ถ๊ฐํ๋ฉด ๊ทธ ๋ํ ๋ด์ฉ์ด ๋ ธ์ ์ ์ ๋ฌด ๋ฆฌ์คํธ์ ์๋์ผ๋ก ์ถ๊ฐ๋๊ณ , ๋ก๋ฉ ์ด๋ชจ์ง๋ฅผ ์ ๊ฑฐํ๊ณ ์๋ฃ ์ด๋ชจ์ง๋ฅผ ์ถ๊ฐํ๋ฉด ๊ทธ ์ ๋ฌด์ ์ข ๋ฃ ํ์๊ฐ ์ค์ ๋๋๋ก ์๋ํํ ์ ์ด ์์ต๋๋ค.
์ ๊ณผ์ ์ ์ง์ ์ฝ๋๋ก ๊ฐ๋ฐํ ์๋ ์์ง๋ง, n8n์ ์ฌ์ฉํ๋ฉด ์๋ ๊ทธ๋ฆผ์ฒ๋ผ UI ํ๋ฉด์์ ๋๋๊ทธ ์ค ๋๋กญ์ผ๋ก ์์ฝ๊ฒ ์๋ํํ ์ ์์ต๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ด ์์ ์ ์ ์ง ๋ณด์ํ๋ ๊ฒ๋ ๋น๊ต์ ์ฝ๊ฒ ์งํํ ์ ์์ต๋๋ค.
์ด๋ฌํ n8n์ผ๋ก ๋ฌธ์ ์ธ์ฆ ๊ด๋ จ ์์ ๋ ์๋ํํ์ต๋๋ค. DB์ ์ ํ๋ฒํธ๋ฅผ ๋ฃ์ผ๋ฉด 6์๋ฆฌ ์ฝ๋๋ฅผ ์ด๋์ ๊ฐ์ ธ์ฌ์ง ์ ํ๊ณ , ์ด 6์๋ฆฌ ์ฝ๋๋ฅผ ํตํด ์ธ์ฆํ๋ ๊ณผ์ ์ n8n์ผ๋ก ์ค์ ํ ๊ฒ์ ๋๋ค. ์ ์ง ๋ณด์๋ ์์ฝ๊ฒ ํ ์ ์์์ต๋๋ค.
์ฌ๊ธฐ์ ๋ง์ง๋ง์ผ๋ก Playwright์ ์ฝ๋ ์์ฑ์ ์ ์ฌ์ฉํ๋ฉด ๊ฑฐ์ ์๋ฒฝํ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
์ง๊ธ๊น์ง E2E ํ ์คํธ์ ๋ํ ๋ด์ฉ๊ณผ ์ ๋ ๋, ํผํซํฐ์ด, Playwright์ ๊ฐ์ ๋ค์ํ ํ ์คํธ ํด์ ๋ํด ์์๋ณด์์ต๋๋ค. ๋ํ, ์ธ์ฆ ๊ด๋ จ ์๋น์ค ๋ฐ ์ ์ง ๋ณด์ ๋น์ฉ์ ์ค์ฌ ํจ์จ์ ์ธ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ ์ญ์ ์ดํด๋ดค์ต๋๋ค. ์ด์ ๋ค์ ๊ธ์์๋ E2E ํ ์คํธ์ ์ค์ํ ๋ง์ง๋ง ๋จ๊ณ์ธ ๋ชจ๋ํ๋ฅผ ํตํ ์ฌ์ฌ์ฉ, ๊ทธ๋ฆฌ๊ณ Playwright๋ฅผ ๊ฐ์ ํ ๋ด์ฉ์ ์๊ฐํ๋ ค๊ณ ํฉ๋๋ค.
์ง๋ ๊ธ์์ E2E ํ ์คํธ๊ณผ ์ด๋ฅผ ๋๋ ํ ์คํธ ํด์ ๋ํด ์์๋ณด์์ต๋๋ค. ์ธ์ฆ ๊ด๋ จ ์๋น์ค๋ฅผ ํต๊ณผํ๋ฉฐ ํจ์จ์ ์ธ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ ์ญ์ ์ดํด๋ดค์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ E2E ํ ์คํธ์ ์ค์ํ ๋ง์ง๋ง ๋จ๊ณ์ธ ๋ชจ๋ํ๋ฅผ ํตํ ์ฌ์ฌ์ฉ, ๋์๊ฐ Playwright๋ฅผ ๋ค์ ๊ฐ์ ํ ๋ด์ฉ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
๋ชจ๋ํ ๋ฐ ์ฌ์ฌ์ฉ
ํ ์คํธ ์ฝ๋์์ ๋ชจ๋ํ๋ ๋ฌด์์ ์๋ฏธํ ๊น์?
์๋ฅผ ๋ค์ด์ ๋ก๊ทธ์ธํ๋ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ค๊ณ ํ๋ฉด, ์ด ์ฝ๋๋ ๋๋ถ๋ถ์ ๋ง์ ํ ์คํธ์์ ๋๊ฐ์ด ์ฐ์ผ ๊ฒ์ ๋๋ค. ๋ค๋ง ๊ฒฐ๊ตญ ๊ฐ๋ฐ์๊ฐ ์ด ์ฝ๋๋ฅผ ์์ ํ๊ณ ๊ฐ๊ณต์ ํด์ ๋ชจ๋๋ก ๋ง๋ ๋ค์, ๋ค๋ฅธ ๊ณณ์ ๊ฐ์ ธ๊ฐ์ ์จ์ผ ํฉ๋๋ค. ํ ์คํธ์ผ์ด์ค ๊ท๊ฒฉ์ผ๋ก ์ธํด ์ด์ฉ ์ ์์ด ํด์ผ ํ๋ค์ง๋ง, ์ ๊ฐ ์๊ฐํ๊ธฐ์ ์ด๋ฐ ๋ฐฉ๋ฒ์ ์์ ํ ์๋ํ๊ฐ ์๋ ๊ฒ ๊ฐ์์ต๋๋ค.
์ง์ ๋ง๋ ํ ์คํธ ์๋ํ ๋๊ตฌ
์์ ํ ์๋ํ๋ฅผ ์ํด ๋ค์ํ ํด์ ์ฐพ์๋ดค์ต๋๋ค. ์ฌ๋ฌ ๋ ธ๋ ฅ์๋ ๊ฒฐ๊ตญ ๋ง๋ ํ ํด์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐพ์ ์ ์์๊ณ , ๊ทธ๋์ ์ง์ ํด์ ๋ง๋ค๊ธฐ๋ก ํ์ต๋๋ค. ์๋ ๊ทธ๋ฆผ์ ์ ๊ฐ ์ผ๋ ํธ๋ก ์ผ๋ก ๊ตฌํํ ํ ์คํธ ์๋ํ ๋๊ตฌ์ ๋๋ค.
์ด ์๋ํ ๋๊ตฌ ์ข์ธก์๋ ํ ์คํธ ์ผ์ด์ค๋ค์ด ์์ต๋๋ค. ์ฌ๊ธฐ์ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํด Playwright์ ์ฐ๋ํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ ์คํธ ๋ นํ ๋ฒํผ์ ๋๋ฅด๋ฉด ํ์ ์ฌ์ฉํ๋ ๋๋ก ๋ นํ๋ฅผ ํ๊ณ , ๋ นํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ์คํธ ์ฝ๋๊ฐ ์์ฑ๋ฉ๋๋ค. ์ด ํ ์คํธ ์ฝ๋๋ฅผ 1์ฐจ ๊ฐ๊ณตํ๊ณ ๋๋ฉด, ์๋ ๊ทธ๋ฆผ์ ์ฐ์ธก๊ณผ ๊ฐ์ด ๋ณ์๊ฐ ์์ฑ๋ฉ๋๋ค.
์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ์ธํ ๊ฐ๋ค์ ์ ๋ถ ์ถ์ถํด์ ๋ณ์ํ์ํค๊ณ ์ด๋ ๊ฒ ์์ฑ๋ ํ ์คํธ ์ผ์ด์ค ์์ฒด๋ฅผ ๋ชจ๋๋ก ์ฌ์ฉํ๋ฉด,ย ๊ฐ๋ฐ์์ ์ถ๊ฐ ์์ ์ด ํ์ ์์ต๋๋ค. ์ด๋ค ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋๋ผ๋ ๋ก๊ทธ์ธ ํ ์คํธ ๋ชจ๋์ ์ฌํ์ฉํด์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด ๊ธฐ๋ฅ์ ๊ตฌํํ ๋๋ AST๋ผ๋ ๊ฐ๋ ๊ณผ ๊ธฐ์ ์ ์ฌ์ฉํ์ต๋๋ค. AST๋ Abstract Syntax Tree์ ์ฝ์๋ก, ๊ฐ๋จํ๊ฒ ์ค๋ช ํ๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ ๋ฑ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ์ถ์ํํ ๊ตฌ์กฐ์ ๋๋ค. ์์ธํ ์ค๋ช ์ ์ด ๊ธ์ ์ฐธ๊ณ ํด ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค. ์ ํ ์คํธ ์๋ํ ๋๊ตฌ์์๋ ์ฌ์ฉ์์ ์ธํ ๊ฐ์ ์ถ์ถํ ๋, ์ฝ๋ ์์ฒด๋ฅผ ์กฐ์ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค๊ณ ์๊ฐํ๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ชจ๋ํํ ๋ก๊ทธ์ธ ํ ์คํธ ๋ชจ๋์ ์ด๋ป๊ฒ ํ์ฉํ ๊น์? ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๊ฐ๋จํฉ๋๋ค. ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์๋ก์ด ํ ์คํธ ์ผ์ด์ค๋ฅผ ๋ง๋ค ๋, ์ด์ ์ ๋ง๋ ๋ก๊ทธ์ธ ๋ชจ๋์ ์ ํํด์ ์๋ก์ด ํ ์คํธ ์ผ์ด์ค ์์ ๋ฐฐ์นํ๋ฉด ๋ฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ดํ์ ์งํํ ํ ์คํธ ์ผ์ด์ค์์ ๋ก๊ทธ์ธ์ ์ํ ์ธํ ๊ฐ์ ํฌํจํ ํ ์คํธ ์ผ์ด์ค ์ ์ฒด๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด์ฒ๋ผ ๋ฏธ๋ฆฌ ํ ์คํธ ์ผ์ด์ค๋ค์ ๋ชจ๋ํํด ๋๊ณ , ํ๋ฉด์์ ๋๋๊ทธ ์ค ๋๋กญ์ผ๋ก ์ฌ๋ฌ ํ ์คํธ ๋ชจ๋์ ์ฐ๊ฒฐํด์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฐ๊ฒฐ๋ ํ ์คํธ ์ผ์ด์ค๋ก ์๋๋ฆฌ์ค๋ฅผ ๋ง๋ค๊ณ , ๋ นํํ๋ฉด์ ์์ฐจ์ ์ผ๋ก ํ ์คํธ๋ฅผ ์งํํ๋ฉด, ๊ฐ๋ฐ์์ ๋์์ ์ต์ํํ์ฌ ์์ฝ๊ฒ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
์ง์ ๊ฐ๋ฅํ ํ ์คํธ ์ฝ๋
1ํธ์์ โ์ง์ ๊ฐ๋ฅํ ํ๊ฒฝ์ ์์ฑํด ํ ์คํธํ๋ ๋ฐฉ๋ฒโ์ ๋ํด ์๊ธฐํ ์ ์ด ์์ต๋๋ค. ์์ ์ค๋ช ํ ํ ์คํธ ์ผ์ด์ค ์๋๋ฆฌ์ค์์๋ ๊ณ ์ ๋ ์ ๋ ฅ๊ฐ์ ํ ์คํธํ๋ฉด ๋ ๋ฒ์งธ ์คํ์ ํ ๋ ํ ์คํธ๊ฐ ์คํจํ๊ธฐ ๋๋ฌธ์ ์ง์ ๊ฐ๋ฅํ ํ๊ฒฝ์ด ์๋๊ฒ ๋ฉ๋๋ค.
์ฝ๊ฒ ๋งํด ์ฃผ์๋ก ์์ฑ์ ์ํ ํ ์คํธ ์ฝ๋๋ฅผ ์คํํ ๋, โFEConf 2024 ์ฃผ์๋กโ์ด๋ผ๋ ์ ๋ ฅ๊ฐ์ ์ฌ์ฉํ๋ฉด ์ฒ์์๋ ํ ์คํธ๊ฐ ์ฑ๊ณตํ์ง๋ง, ์ด ์ ๋ ฅ๊ฐ์ด ํค๊ฐ์ผ๋ก ๋์ํ๋ ๊ฒฝ์ฐ์๋ ๋ ๋ฒ์งธ ํ ์คํธ๋ถํฐ ์คํจํ๊ฒ ๋ฉ๋๋ค. ์ด๋ฐ ์คํจ๋ฅผ ๋ง๊ธฐ ์ํด์๋ ๊ฐ๋ฐ์์ ๊ด๋ฆฌ๊ฐ ํ์ํ๊ฒ ๋ฉ๋๋ค. ์ฆ, ์ฝ๋๋ฅผ ์์ ํ๊ฑฐ๋ DB์ ์ ๋ ฅ๋ ๊ฐ์ ์์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ์ง ๋ณด์ ๋น์ฉ์ด ๋ฐ์ํฉ๋๋ค.
์ด๋ฐ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ณ ์ง์ ๊ฐ๋ฅํ ํ ์คํธ ์ฝ๋๋ก ์ฌ์ฉํ๊ธฐ ์ํด, ์ ๋ ฅ๊ฐ๋ค์ ๋์ํ์์ผ ํ ์คํธํ๋ ๋ฐฉ๋ฒ์ ๊ณ ์ํ์ต๋๋ค. Faker๋ผ๋ ํด์ ์ฌ์ฉํด์ ์ ๋ ฅ๊ฐ์ ๋์ํ ํจ์ผ๋ก์จ ๋งค๋ฒ ๋ค๋ฅธ ์ฃผ์๋ก ์ ๋ชฉ์ ๋์ค๊ฒ ํ๋ฉด, ์ฌ๋ฌ ๋ฒ์ ํ ์คํธ๋ฅผ ์งํํด๋ ํ ์คํธ๊ฐ ์คํจํ์ง ์๊ฒ ํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ํ ์คํธ ํด์ ํ ์คํธ ๋ ๋ฆฝ์ฑ์ ๊นจ์ง ์๊ธฐ ์ํด์ ์ธ๋ถ ๋ณ์๋ฅผ ๋ฐ์ง ๋ชปํ๋๋ก ๋์ด ์์ต๋๋ค. ๋ณดํต ๋ชจ๋ ํ ์คํธ ์ผ์ด์ค๋ฅผ ๋ง๋ค ๋ ์ด๋ ๊ฒ ์ ํ์ ํ์ง๋ง, ์ ๊ฐ ํด์ ๋ง๋ค ๋๋ ๊ตณ์ด ๊ทธ๋ ๊ฒ๊น์ง ํด์ผ ํ๋์ง ์๋ฌธ์ด ๋ค์์ต๋๋ค. ๊ทธ๋์ ๋ฌธ์ ๊ฐ ์๊ธฐ์ง ์๋ ๋ฒ์ ๋ด์์ ๊ฒฐ๊ณผ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๊ฑฐ๋ ์ฌ์ฌ์ฉํ๋๋ก ๊ฐ๋ฐํ์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์ฃผ์๋ก ์์ฑ ํ ์คํธ์์ ์ฃผ์๋ก์ด ์์ฑ๋๋ฉด ๊ณ ์ ํ ID ๊ฐ์ด ์กด์ฌํ๊ณ , ์ด๋ฅผ ๋ธ๋ผ์ฐ์ ์ ์ ์ฅํฉ๋๋ค. ์ด ID ๊ฐ์ ๋ก์ปฌ DB์ ์ ์ฅํ์ฌ ๋ค์ ํ ์คํธ์ ์ฌ์ฉํ ์ ์๋๋ก ํ์ต๋๋ค. A ํ ์คํธ๊ฐ ๋๋๊ณ ๋ง๋ค์ด์ง ๋ณ์๋ค์ B ํ ์คํธ์ ๋๊ฒจ์ฃผ๊ณ , ์ด ๋ ๊ฐ์ง ํ ์คํธ๋ฅผ ์ฐ๊ฒฐํ์ ๋ ์ ์์ ์ผ๋ก ๋์ํ๋๋ก ํ์ต๋๋ค.
Playwright ๊ฐ์ ํ๊ธฐ
์ด ๋ชจ๋ํ ๋๊ตฌ๋ก ์ง์ ๊ฐ๋ฅํ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋๋ผ๋, 10% ์ ๋๋ ์ฝ๋ ์์ ์ด ํ์ํ์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก, ์ด๊ฒ๊น์ง ๊ฐ์ ํ๊ธฐ ์ํด ์ ๋ ๋๊ณผ ํผํซํฐ์ด๋ฅผ ์์ ํ ๊ฒฝํ์ ๋ฐํ์ผ๋ก Playwright๋ ๊ฐ์ ํ๊ณ ์ ํ์ต๋๋ค.
Playwright์ ์ ๋ ํฐ๋ ๊ต์ฅํ ์ข์ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ง๋ง, ์ํ๋ ์์์ ์ ๋ ํฐ๋ฅผ ์ ํํ ์ ์๋๋ก ๋ฐ๊ฟ๋ณด์์ต๋๋ค. ๋, ๊ฒฐ๊ณผ ๋ฆฌํฌํธ ๊ณต์ ๋ฅผ ๊ฐํธํ๊ฒ ๋ง๋ค์ด ๋ค๋ฅธ ์ฌ๋์ด ์ฝ๊ฒ ํ์ธํ ์ ์๋๋ก ๋ง๋ค๊ณ ์ถ์์ต๋๋ค. ์ถ๊ฐ๋ก ์ฒดํฌ ํฌ์ธํธ๋ถํฐ ๋ค์ ์์ํ ์ ์๋ ๊ธฐ๋ฅ๊น์ง ๊ตฌํํ์ต๋๋ค.
๊ฒฐ๊ณผ ๋ฆฌํฌํธ
ํ ์คํธ ํด์ ํ์ฉํด ํ ์คํธ๋ฅผ ์งํํ๊ณ ๋๋ฉด ๋ฆฌํฌํธ ํ์ผ์ด ์์ฑ๋ฉ๋๋ค. ์ด ๋ฆฌํฌํธ ํ์ผ์ ์ผ๋ฐ์ ์ผ๋ก ๊ฐ์ธ์ PC์ ์ ์ฅ๋๊ธฐ ๋๋ฌธ์, ๊ณต์ ํ๋ ๊ณผ์ ์ด ๋ฒ๊ฑฐ๋ก์ธ ๋๊ฐ ์์ต๋๋ค. ์ด๋ฐ ๋ฒ๊ฑฐ๋ก์์ ๋๊ธฐ ์ํด ์ด๋ค ์ฌ์ฉ์๊ฐ ์ด๋ค ์์ ์ ํ๋ค๊ฐ ์คํจํ๊ณ , ์ด๋ค ์ํฉ์ ๋ฌธ์ ๊ฐ ์๊ฒผ๋์ง๋ฅผ ๋ฆฌํฌํธ์ ๊ธฐ๋กํ๊ณ , ์ด ๋ฆฌํฌํธ์ ๋งํฌ๋ง ์ ์กํด์ ์ฝ๊ฒ ํ์ธํ ์ ์๋๋ก ํ์ต๋๋ค.
์ ๋ ํฐ ์์ง ์ปค์คํ ์กฐ์
Playwright๋ฅผ ์ฌ์ฉํ๋ค ๋ณด๋ฉด ์ ๋ฐ์ดํธ๋ ๋ ์ ๋ ํฐ๋ฅผ ์๋์ผ๋ก ๋ง๋ค์ด ์ฃผ๋ ๋ถ๋ถ์ด ๋ฒ์ ๋ง๋ค ๋ค๋ฅด๊ฒ ๊ตฌํ๋์ด ์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ํ๋ ์ด๋ค ๋ฒ์ ์ Placeholder ๋จผ์ ๋์ค๊ฒ ํ๋ ๊ฒฝ์ฐ๋ ์์์ต๋๋ค.
์๋ฅผ ๋ค์ด โ์ด๋ฉ์ผ ์ฃผ์โ๋ผ๋ ๊ฒ์ด ์ฝ๋ ๊ฐ์ ๋ค์ด๊ฐ ์์ ๋, ๋๊ตฐ๊ฐ ๋ช ์นญ์ ๋ฐ๊พธ๊ฒ ๋๋ค๋ฉด ์ด๋ฉ์ผ ์ฃผ์ ๊ฐ์ ์ฐพ์ ์ ์๊ธฐ ๋๋ฌธ์ ํ ์คํธ ์ฝ๋๋ ์คํจํ์ต๋๋ค. ๋คํํ ์ต๊ทผ ๋ฒ์ ์์๋ ์ธํ์ ์ ๋ ฅ๊ฐ์ name ์ดํธ๋ฆฌ๋ทฐํธ์ ์ ์ฅํ๋๋ก ๋์ด์์ต๋๋ค. ์ด๋ ๊ฒ ๋๋ฉด ์ธํ ๊ฐ์ ๋ฌด์์ด ๋ค์ด๊ฐ๋๋ผ๋ ์ฑ๊ณตํ๊ฒ ๋ฉ๋๋ค.
์ด ๋ด์ฉ์ ๋ฐํ์ผ๋ก ๋๋จธ์ง ๋ชจ๋ ๋ถ๋ถ์์๋ name ์ดํธ๋ฆฌ๋ทฐํธ๊ฐ ์๋ค๋ฉด, ์ด๋ฅผ ์๋์ผ๋ก ๋จผ์ ์์ฑํ๋๋ก ํ์ต๋๋ค. Playwright๋ฅผ ๋ถ์ํด ์ ๋ ํฐ์ ์ฐ์ ์์๋ฅผ ์ ํ๋ ์ฝ๋๋ฅผ ์ฐพ์๊ณ , ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ name ์ดํธ๋ฆฌ๋ทฐํธ๋ฅผ ์๋์ผ๋ก ์์ฑํ๋ ๋ถ๋ถ์ ๋๋ถ๋ถ name ์ดํธ๋ฆฌ๋ทฐํธ๋ฅผ ์ฌ์ฉํด์ ์์ฑํ๋๋ก ๋ง๋ค์์ต๋๋ค.
์ฉ์ด ์ฌ์
๋ค๋ง ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๋ชจ๋ ์์์ name ์ดํธ๋ฆฌ๋ทฐํธ๋ฅผ ๋ฃ์ด๋ฌ๋ผ๊ณ ๊ฐ๋ฐ์์๊ฒ ์์ฒญํด์ผ ํ๋ ๋ฌธ์ ๊ฐ ์๊น๋๋ค. ๋คํํ ์ ์๋น์ค์์๋ ๋ชจ๋ ํ ์คํธ๋ค์ด โKey : Valueโ ์์ผ๋ก ๊ตฌ๊ธ ๋๋ผ์ด๋ธ์ ์ ์ฅ๋์ด ์๊ณ , Key๋ ๊ณ ์ ๋ ์ํ๋ก Value๋ง ๋ฐ๊ฟ์ ๋ฐ์ธ๋ฉ ํ๋ฉด ํ ์คํธ๊ฐ ์์ ๋๋๋ก ๊ตฌํ๋์ด ์์ต๋๋ค. ๋ฐ๋ผ์ ํค๊ฐ์ด ๋ณํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์ฌํ์ฉํด์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋์์ด๋ ๋๋ ๊ธฐํ์๊ฐ ํ๋ฉด์ ๊ธฐํํ๊ณ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๊ฐ ์ด๋ฅผ ๊ตฌํํ ๋, ํ ์คํธ ์์ ์ ๊ฒฝ์ฐ ๋นํจ์จ์ ์ธ ๋ฒ๊ฑฐ๋ก์ด ๊ณผ์ ์ ๊ฑฐ์น๋ ๊ฒฝ์ฐ๊ฐ ์๊น๋๋ค. ๋จ์ํ ํ ์คํธ ์์ ์์ฒญ์ ๋ฐ๋๋ผ๋ ๋์์ด๋๊ฐ ํผ๊ทธ๋ง ๊ฒฐ๊ณผ๋ฌผ์ ์์ ํ๊ณ , ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ ์ฝ๋๋ฅผ ์์ ํ๊ณ ๋ฐฐํฌํ์ฌ ๊ธฐํ์์ ๋์์ด๋์๊ฒ ๊ฒํ ๋ฐ์ต๋๋ค.
์ด๋ฐ ๋นํจ์จ์ ์ธ ์์ ์ ๊ฐ์ ํ๊ธฐ ์ํด์, ๊ตฌ๊ธ ๋๋ผ์ด๋ธ์ ์คํ๋ ๋์ํธ์ Key, Value ์์ผ๋ก ํ ์คํธ๋ฅผ ๋งคํํด๋๊ณ ์ด ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ ํ๋ฉด์ ํ ์คํธ๋ก ํํํ๋๋ก ํ์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์์ ๋ฒ๊ฑฐ๋ก์ด ๊ณผ์ ์ ๊ฑฐ์น์ง ์๋๋ผ๋, ๊ธฐํ์๋ ๋์์ด๋๊ฐ ์คํ๋ ๋์ํธ์ ํ ์คํธ ๊ฐ๋ง ๋ฐ๊พธ๋ฉด ์ค์๊ฐ์ผ๋ก ๋ณ๊ฒฝ๋ ํ๋ฉด์ ๊ฒํ ํ ์ ์์ต๋๋ค.
ํ ์คํธ ์ผ์ด์ค์ ์ฒดํฌํฌ์ธํธ
ํ ์คํธ ์ผ์ด์ค๊ฐ ์คํจํ ๊ฒฝ์ฐ, ์ฒ์๋ถํฐ ๋ค์ ํ ์คํธํ๋ค๋ฉด ๋ฒ๊ฑฐ๋ก์ด ์์ ์ด ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋์ย ํ ์คํธ ์ผ์ด์ค๊ฐ ์คํจํ๋๋ผ๋ ํน์ ์ฒดํฌ ํฌ์ธํธ์์ ๋ค์ ์์ํ๋๋ก Playwright์ Session Storage API๋ฅผ ํ์ฉํด์ ์ฒดํฌ ํฌ์ธํธ ๊ธฐ๋ฅ์ ๊ตฌํํ์ต๋๋ค.
๋ง์ฝ ํ ์คํธ ์ผ์ด์ค๊ฐ ์คํจํ ๊ฒฝ์ฐ, ๊ทธ ๋ถ๋ถ์ ํด๋ฆญํ๋ฉด Session Storage API๋ฅผ ํ์ฉํ์ฌ ์คํจํ๊ธฐ ์ ์ ์ํ๋ฅผ ๊ธฐ์ตํ๊ณ ๋ถ๋ฌ์์ ๊ทธ ๋ถ๋ถ๋ถํฐ ๋ค์ ์์ํ ์ ์์ต๋๋ค.
ํ ์คํธ ์คํฌ๋ฆฐ์ท ๋น๊ต
๋ง์ง๋ง์ผ๋ก ํ ์คํธ ์ค์ ์ ์ฅ๋ ์คํฌ๋ฆฐ์ท์ ๋น๊ตํ๋ ๊ณผ์ ์์ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉํด ์์๋ค์ด ์กด์ฌํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์๋ ๊ทธ๋ฆผ์ ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ๋ชจ๋ํฐ๋งํ๋ ํด์ ํ๋ฉด์ธ๋ฐ, ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ CSS ์ ๋๋ฉ์ด์ ์ผ๋ก ์ฌ์ฉ๋ฅ ์ ๋ฐ๋ผ CPU ๋ค์ ๋ฌผ ๋ฐฐ๊ฒฝ์ด ์ฐจ์ค๋ฅด๋ฉด์ ํ๋ฉด์ด ๋ณ๊ฒฝ๋ฉ๋๋ค. ์ด๋ ๊ฒ ์ ๋๋ฉ์ด์ ์ด ๋ง์ด ๋ค์ด๊ฐ๋ค๋ฉด ์ด์ ์คํฌ๋ฆฐ์ท์ ๋น๊ตํ๋ ๊ฒ์ด ์ด๋ ค์์ง๋๋ค.
๊ทธ๋์ ์คํฌ๋ฆฐ์ท์ ์ ์ฅํ๊ธฐ ์ ์ CSS ์ ๋๋ฉ์ด์ ์ ์ ์งํ๋๋ก ํ๋ ์ฝ๋๋ฅผ ์ถ๊ฐํ์ต๋๋ค. (Playwright์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด ๊ธฐ๋ฅ์ ์ง์ํฉ๋๋ค.)
๋์ ์ธ ํ๋ฉด๋ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์น์ฌ์ดํธ์ ๋ ธ์ถํ๋ ๊ด๊ณ ์ ๊ฒฝ์ฐ, ๊ทธ๋๊ทธ๋ ๋์ ์ผ๋ก ๋ณํ๊ธฐ ๋๋ฌธ์ ์คํฌ๋ฆฐ์ท์ ๋น๊ตํ๋ ๊ฒ์ด ํ๋ค์ด์ง๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ๋์ ์ธ ์์๋ ์ ๊ฑฐํ๊ฑฐ๋ ์จ๊ฒจ์ ํ ์คํธ ์คํฌ๋ฆฐ์ท์ ๋น๊ต ๋์์์ ์ ์ธํ ์ ์์ต๋๋ค.
์ ์ ํ๋ก์ฐ ์์ฑ
์์ ์ค๋ช ํ ๊ฒ์ฒ๋ผ ํ ์คํธ ๋ฆฌํฌํธ์๋ ๋ค์ํ ์ ๋ณด๋ค์ด ๋ด๊ฒจ์์ต๋๋ค. ์ ๋ ๋ฆฌํฌํธ์ ๋ด๊ธด ๋ค์ํ ์ ๋ณด๋ค๊ณผ ์ด ๊ณผ์ ์์ ์ ์ฅ๋ ์คํฌ๋ฆฐ์ท์ ํ์ฉํด์ ์ ์ ํ๋ก์ฐ๋ฅผ ๊ทธ๋ฆด ์ ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. ์ด๋ฅผ ๊ตฌํํ๊ณ ์ ํ ์คํธ ์ฝ๋๋ฅผ ๋ง๋ค์ด์ ์คํ๋ง ํ๋ฉด ๋ก๊ทธ์ธ ํ๋ฉด์์ ๋์๋ณด๋๋ก ์ด๋ํ๋ค๊ฑฐ๋, ์ด๋ค ๋ฒํผ์ ๋๋ฌ ์ด๋ค ํ์ด์ง๋ก ์ด๋ํ๋์ง ๋ฑ์ ์ ์ ํ๋ก์ฐ ํ๋ฉด์ผ๋ก ๋ง๋ค์ด ์ฃผ๋ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ์ต๋๋ค.
์์ฌ์ ๋ ์ ๊ณผ ๊ฐ์ ํด์ผ ํ ์
์ฌ๊ธฐ๊น์ง, ํ ์คํธ ํด์ ๋ง๋ค์์ง๋ง ์ฌ์ ํ ์์ฌ์ ๋ ์ ์ด๋ ๋ ๊ฐ์ ํ๊ณ ์ถ์ ๋ด์ฉ์ด ๋ง์ด ๋จ์์์ต๋๋ค.
๊ฐ์ฅ ๋จผ์ , ๋ ๋ฆฝ์ ์ธ ํด์ด ์๋ VS Code ํ๋ฌ๊ทธ์ธ์ผ๋ก ๋ง๋ค์์ผ๋ฉด ๋ ์ข์ง ์์์๊น ํ๋ ์์ฌ์์ด ์์ต๋๋ค.
๋, ์ปค์คํ ๋ฆฌํฌํธ์ ๋ด๊ธด ๋ด์ฉ์ผ๋ก ๋ฌด์์ธ๊ฐ ํด๋ณผ ์ ์๋ ๊ฒ์ด ๋ง๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํ์ฌ๋ก๋ ๋คํธ์ํฌ ๊ด๋ จ ๊ธฐ๋ฅ๋ค์ ์๊ฐํด ๋ณด๊ณ ์๋๋ฐ์, ์ฟ ๋ฒ๋คํฐ์ค์ MOON์ด๋ผ๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํด ๋ก์ปฌ์ด ์๋ ์๊ฒฉ์์ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์คํํ๋๋ก ํ ์๋ ์์ต๋๋ค. ์ด๋ฅผ ํ์ฉํ๋ฉด ๋์ฉ๋์ ํ ์คํธ๋ฅผ ์๊ฒฉ์์ ์งํํ ์ ์์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก ํ๋ก ํธ์๋ ๋ ๋๋ง ํ๋ฉด๊ณผ ๋ฐฑ์๋์์ API ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์์งํด์, ์ด๋ค ํ๋ฉด์์ ์ด๋ค API๋ฅผ ์ฌ์ฉํ๊ณ , ์ด๊ฒ์ ์ํฅ๋๋ ์ด๋ค์ง ํ์ ํ ์ ์๋๋ก ๊ฐ์ ํด ๋ณด๋ ค๊ณ ํฉ๋๋ค.
๋ง์น๋ฉฐ
์ ๊ฐ ๋ง๋ ํ ์คํธ ํด์ ์์ง ๋ถ์กฑํ ์ ์ด ๋ง์ด ์์ต๋๋ค. ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ๋ง๋ค์์ง๋ง ์ 3์๊ฐ ์ฌ์ฉํ๊ธฐ์๋ ์์ง ์ด๋ ต๋ค๊ณ ์๊ฐ๋ฉ๋๋ค. ์ง๊ธ๊น์ง ๊ฐ๋ฐํ๋ฉด์ ์์ฌ์ ๋ ์ ๋ค์ ๊ฐ์ ํ๊ณ , ํ์ํ ๊ธฐ๋ฅ๋ค์ ์ถ๊ฐํด์ ๋์ฑ ์์ฑ๋ ๋์ ํ ์คํธ ์๋ํ ํด์ ๋ง๋ค๊ณ ์ ํฉ๋๋ค.
๋ฌผ๋ก ์ด๋ฒ ๊ธ์์ ์ค๋ช ํ ๊ฐ๋ ๋ค์ ํ์ฉํ๋ฉด ํ ์คํธ ํด์ด ์๋๋ผ๋ ์ด๋ ์ ๋ E2E ํ ์คํธ๋ฅผ ์ฝ๊ฒ ์งํํ ์ ์์ต๋๋ค. ์ฌ๋ฌ๋ถ๋ ์ ์์ ๊ณผ์ ์ ์ฐธ๊ณ ํ์ฌ E2E ํ ์คํธ๋ฅผ ์กฐ๊ธ ๋ ํจ์จ์ ์ด๊ณ ๊ฐํธํ๊ฒ ์งํํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.