2021-04-28(Wed)
ํญ๋ชฉ | ๋ด์ฉ |
ํ์ต ๋ ์ง | 2021-04-28(์) |
ํ์ต ์๊ฐ | 09:00~23:00 |
ํ์ต ๋ฒ์ ๋ฐ ์ฃผ์ | ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง |
ํ์ต ๋ชฉํ | SLASH21 ์ค ํฅ๋ฏธ๊ฐ๋ ๋ถ๋ถ์ ํ์ธํ์. Opensource CMS ๊ตฌํ ๊ณํ์ ์ธ์๋ณด์. |
๋๋ฃ ํ์ต ๋ฐฉ๋ฒ | ํ๊ด๋จ ๋ฉํ ๋ ์ธ 2๋ช ์ ์นด๋๊ณผ Opensource CMS ๊ตฌํ ๊ณํ์ ์ธ์ ๋ค. |
์์ธ ํ์ต ๋ด์ฉ
ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง๋ฅผ 70% ์ ๋๋ฉด ์ ์ ํ๋ค๊ณ ์๊ฐํด์๋ค.
๊ทธ๋ฐ๋ฐ ํด๋ฆฐ์ฝ๋์์ ์๋์ ๊ฐ์ด ๋ฌธ๊ตฌ๊ฐ ์์๋ค.
๋์ ํ ํ ์คํธํ๊ธฐ ํ๋ ๋ถ๋ถ๋ ์๊ณ , ์ฝ๋์๋ ๋๋ฌด ๋ง์๊ฑฐ๋ผ ์๊ฐํ๋ค. ํ์ง๋ง ๋ง์ฐํ ๋ง๋ ์๋๋ค๊ณ ์๊ฐํ์ง ์๊ณ ์ค์ ๋ก ํด๋ณด๊ธฐ๋ก ํ๋ค.
์์ธ๋ก ํด๋ณด๋ ๊ฐ๋ฅํ๋ค.
๊ฐ๋ฅํ์ง๋ง ์ ์ง๊ฐ ๊ฐ๋ฅํ์ง๋ ๊ถ๊ธํด์ก๋ค.
๋คํํ 1๋ 6๊ฐ์๊ฐ ์ ์งํ ์ ์์๋ค.
๊ทธ๋ฆฌ๊ณ ์์ ์๊ฒ ๋ฐฐํฌ๋ฅผ ๋๋ฅผ ์ ์๊ฒ ๋์๋ค.
๋๋ถ์ ๊ฑฐ์นจ์์ด ๋ฆฌํฉํ ๋ง์ ํ ์ ์๊ฒ ๋์๋ค. ๋ฆฌํฉํ ๋ง์ ๋ฌธ์ ๊ฐ ์๋ค๋ฉด ํ ์คํธ๊ฐ ์๋ ค์ค ๊ฒ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
๋ถํ์ํ ํ๋ก๋์ ์ฝ๋๊ฐ ์ฌ๋ผ์ง๋ค. ๋จ์ ์๋ค๋ฉด ๊ทธ๊ฒ ๋ํ ํ ์คํธํด์ผ ํ๋ค.
๊ทธ๋ฆฌ๊ณ ํ๋ก๋์ ์ฝ๋์ ๋ํ ์ดํด๋๊ฐ ์์ํ๋ค. ์ดํดํ์ง ๋ชปํ๋ฉด ํ ์คํธ ์์ฑ์ด ์ด๋ ต๊ธฐ ๋๋ฌธ์ด๋ค.
์ ์ ํ ์คํธ ์์ฑ์ด ์ฌ์์ก๋ค. ์ด๋ฏธ ์์ฑํ ํ ์คํธ๋ฅผ ์ฐธ๊ณ ํด์ ์๋ก์ด ํ ์คํธ๋ฅผ ์์ฑํ ์ ์์๋ค.
ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ์ฌ๋ฆฌ๊ธฐ ์ํด์ ํ์ํ ๊ฒ์ ๋ฌด์์ผ๊น? ๋ฏฟ์๊ณผ ์๊ฐ์ด๋ค.
ํ ์คํธ๊ฐ ํ์ํ๋ค๋ ๋ฏฟ์์ด ํ์ํ๋ค.
ํ ์คํธ๊ฐ ์์ผ๋ฉด ๋ฆฌํฉํ ๋ง ๋ชปํ๊ณ , ๋ฆฌํฉํ ๋ง ๋ชปํ๋ฉด ์ฝ๋๋ฅผ ์ดํดํ ์ ์์ผ๋ฉฐ, ์ดํดํ ์ ์๋ ์ฝ๋๋ ์์ ํ ์ ์์ด์ง๋ค๊ณ ๋ฏฟ์๋ค.
์ด๋ค ์ฝ๋๋ ํ ์คํธํ ์ ์๋ค๋ ๋ฏฟ์์ด ํ์ํ๋ค. ์กฐ๊ธ๋ง ํ ์คํธ๊ฐ ์ด๋ ค์ด ์ฝ๋๋ฅผ ๋ง๋๋ ํ ์คํธ๋ฅผ ํฌ๊ธฐํ ๊ฒ์ด๋ค.
๋ฏฟ์์ด ์์ด๋ ์๊ฐ์ด ์์ด์ผ ๊ฐ๋ฅํ๋ค. ํ๋ก์ ํธ ์ด๊ธฐ๋ถํฐ ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ๋๊ฒ ์ ์งํ๋ ๊ฒ์ด ์ค์ํ๋ค.
ํ์ํ์ง ์์ ๊ฒ์ ์์ง์ด๋ค.
๋ฌด์จ ๋ง์ธ๊ฐ? ์ธ๊ฐ์ ์์ง๋ ๋๊ตฌ๊ฐ ๋์ ํ ์ ์๋ค. Gradle์ JaCoCo ํ๋ฌ๊ทธ์ธ์ ๋ค์ด ์๋ JacocoTestCoverageVerification์ ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง ์์น์ ๋ฐ๋ผ ๋น๋๋ฅผ ์คํจ์ํจ๋ค.
๊ฒช์ ๋ฌธ์ ์
๋๋ ค์ง๋ ํ
์คํธ
ํ ์คํธ์ ๊ฐ์๊ฐ ๋์ด๊ฐ ์๋ก ํ ์คํธ ์คํ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๊ธฐ ์์ํ๋ค. (ํ ์คํธ 400๊ฐ์ผ ๋ ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ 1๋ถ) ์ ์ฒด ํ ์คํธ๋ฅผ ํ์ธํ ๋๋ง๋ค 1๋ถ ๊ธฐ๋ค๋ ค์ผํ๋ค. ๊ทธ๋์ ์คํ๋ง ์ ํ๋ฆฌ์ผ์ด์ ์ปจํ ์คํธ ๋ก๋ฉ์ ์ ๊ฑฐํ๋ค. WebTestClient๋ ์ปจํ ์คํธ ๋ก๋ฉ ์์ด ํ ์คํธ๊ฐ ๊ฐ๋ฅํ๋ค.
๋ ํ ์คํธ๊ฐ 1600๊ฐ๋ฅผ ๋์ด์๋ ๋ค์ ์คํ์๊ฐ์ 1๋ถ์ด ์ด๊ณผ๋์๋ค. ๋๋ ค์ง๋ ์์ธ์ ์ฐพ์ผ๋ ค๋ฉด ํ๋กํ์ผ๋ง์ด ํ์ํ๋ค.
๋์ ์จ์ ํด๊ฒฐํ๊ธฐ๋ ํ๋ค. ๋ ์ข์ ๋ ธํธ๋ถ ์ผใ ใ
์ง์ง ์ด๋ ค์ด ํ
์คํธ๊ฐ ์๋ค.
์ปค๋ฒ๋ฆฌ์ง ๊ธฐ์ค์ด ๋ผ์ธ ์ปค๋ฒ๋ฌ์ง๊ฐ ์๋ ์ธ์คํธ๋ญ์ ์ปค๋ฒ๋ฆฌ์ง ์๊ธฐ ๋๋ฌธ.
์ปค๋ฒ๋ฆฌ์ง ๊ฒ์ฌ๋๊ตฌ์์ ๊ทธ ํ์ผ์ ์ ์ธํด์ผํ๋ ๊ฒฝ์ฐ๋ ์๋ค.
์ ์ด๋ ๊ฒ 100%์ ์ง์ฐฉํ๋?
100%๋ ๋จ์ํ๋ค. ์ปค๋ฒ๊ฐ ์๋๋ฉด ๋น๋๊ฐ ์คํจํ๊ณ , ๊ทธ ๊ณณ์ ํ์ธํด์ ํ ์คํธ๋ฅผ ์์ฑํ๋ฉด ๋๋ค.
99%๋ ๋ณต์กํ๋ค. ์ด ์ข๊ฒ ๋์ด๊ฐ ์๋, ์ต์ธํ๊ฒ ์คํจํ ์๋ ์๋ค.
์ฌ์ ํ ํด๊ฒฐํด์ผํ ๋ฌธ์
100% ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ๋ง๋ค์ด๋ ๋ฒ๊ทธ๋ ์๋ค.
ํ ์คํธ๋ฅผ ์๋ชป ์์ฑํ๋ ๊ฒฝ์ฐ
์๊ตฌ ์ฌํญ์ ์คํด๊ฐ ์๊ธด ๊ฒฝ์ฐ
์ปดํฌ๋ํธ๊ฐ ํ์ ์ ์คํจํ ๊ฒฝ์ฐ
ํ
์คํธ ์ผ์ด์ค๊ฐ ๋ถ์กฑํ ๋
์ ์ผ์ด์ค์์๋ sum์ + ์ฐ์ฐ์๋ฅผ ๋ด๋ถ์์ ์คํํ๋๋ผ๋, - ์ฐ์ฐ์๋ฅผ ๋ด๋ถ์์ ์คํํ๋๋ผ๋ ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง 100%๋ฅผ ๋ฌ์ฑํ๊ฒ ๋ ๊ฒ์ด๋ค. ์ด๋ฐ ๋ฌธ์ ๋ ์ด๋ป๊ฒ ํํผํ ๊น?
๋ฎคํ ์ด์ ํ ์คํ ์ด๋ผ๋ ๊ธฐ๋ฒ์ด ์๋ค.
ํ๋ก๋์ ์ฝ๋๋ฅผ ๋ฌด์์๋ก ์กฐ์ํ๊ณ ํ ์คํธ๊ฐ ํต๊ณผํ๋ฉด ํ ์คํธ ์ผ์ด์ค๊ฐ ๋ถ์กฑํ ๊ฒ์ด๋ค.
Pitest๋ฅผ ์ด์ฉํ๋ฉด ๋ฎคํ ์ด์ ํ ์คํ ์ ํ์ฌ ๋ถ์กฑํ ํ ์คํธ๋ฅผ ์ก์๋ด์ค๋ค. ํ์ง๋ง ๊ต์ฅํ ๋๋ฆฌ๋ค๋ ๋จ์ ์ ๊ฐ์ง๊ณ ์๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ค์ํ ๋ก์ง์๋ง ๋ถ๋ถ์ ์ผ๋ก ์ ์ฉํ๋ ๊ฒ์ด ์ข๋ค. (๋์ ํ์ง ๋ชปํจ)
๊ฐ๋ฐ์๊ฐ ์๊ตฌ์ฌํญ์ ์คํดํ๋ ๊ฒฝ์ฐ
์๊ตฌ ์ฌํญ์ ์์ฑํ๋ ์ฌ๋์ด ํ ์คํธ๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ข์ง๋ง ๊ทธ๊ฒ ์ด๋ ต๋ค. ํ ์คํธ๋ฅผ ์์ฑํ๋ฉด ์คํ ๋ฌธ์๊ฐ ์์ฑ๋๋๋ก ํด๋ณด์๋ค. TestExecutionListener๋ฅผ ์ด์ฉํด์ ๋งํฌ๋ค์ด ํ์์ผ๋ก ๋ ์คํ ๋ฌธ์๋ฅผ ์์ฑํ๋๋ก ํ๋ค. ๊ทธ๋ฐ๋ฐ ๊ณ์ ์ง์ํ์ง๋ ๋ชปํ๋ค. ์คํ ๋ฌธ์๋ฅผ ์ ์์ฑํ๋ ค๋ฉด ํ ์คํธ๋ฅผ ์์ฑํ ๋ ์๋นํ ๋ ธ๋ ฅ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฌธ์ ํด๊ฒฐ์ ๊ณ์ ๊ณ ๋ฏผํ๊ณ ์๋ค.
์ปดํฌ๋ํธ๊ฐ ํ์
์คํจ
๊ณ์ฝ์ ๊ด๋ฆฌํด์ฃผ๋ Pactflow๋ผ๋ ๋๊ตฌ๊ฐ ์กด์ฌํ๋ค.
์ถ์ฒ
https://toss.im/slash-21/sessions/1-6
ํ์ต ๋ด์ฉ์ ๋ํ ๊ฐ์ธ์ ์ธ ์ดํ
ํด์ผํ ๊ฒ ๋ง์ ์ํฉ์์ ๊ฐ์ธ์ ์ธ ์์ฌ์ผ๋ก Opensource CMS ํ๋ก์ ํธ๋ฅผ ์ฐธ์ฌํ์๋ค. ๊ฐ์ธ์ ์ผ๋ก typescript + nest.js๋ฅผ ์จ๋ณด๊ณ ์ถ์๋๋ฐ, ๋ชป ์ฐ๊ฒ ๋์ด ์์ฝ๋ค..
๋ค์ ํ์ต ๊ณํ
SLASH 21 ์ฆ๊ธฐ๊ธฐ!
Opensource CMS ์ฌ์ฉ์ ์๋๋ฆฌ์ค & ์์ด์ดํ๋ ์ ๊ตฌ์ฑํ๊ธฐ
Last updated