์ฝ๋์จ 2๊ธฐ ๊ทธ 3๋ฌ๊ฐ์ ์ฌ์ !
๐ ์ด์ฉ๋ค๊ฐ ์ ์ฒญํ๊ฒ ๋์ด?
์ด์ง์ ๊ณํํ๊ณ ์์๋ค.
1์ ๋ง์ ํด์ฌํ๊ฒ ๋ค๊ณ ๋งํ๊ณ , ๋ค์ ์ฒ์์ผ๋ก ๋์๊ฐ๋ค๋ ์๊ฐ์ผ๋ก ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๊ฐ ๋๋ ๋ฐ ํ์ํ ๊ฒฐ์ ์ด์๋ค.
๋์๊ฒ ์์ด์ ๊ณต๋ถํ๋ ์ฆ๊ฑฐ์์ ์ฃผ๊ณ ์ฆ๊ธฐ๋ฉฐ ์ผํ ์ ์๊ฒ ๋ค๊ณ ํ์ ์ ์ค ํ๋ก ํธ์๋ ๋
์โฆ. ๊ทธ ๋
์์ผ๋ก ์ธํด์ ๋๋ ์ง์ฒดํ ์ ์์๊ณ , ์ด์ง์ ์ํด์ ํ์ฌ์ ๋ค๋๋ ์์ค์ ํด๊ทผ ํ ๊ณต๋ถํ๊ธฐ๋ฅผ ๋งค์ผ ๋ฐ๋ณตํ์๋ค. ํ์ฌ๋ณด๋ค ํด๊ทผ ํ๊ฐ ๋์ ํ๋ฃจ ์์์ด๋ผ๊ณ ์๊ฐํ์ ๋งํผ ์ฆ๊ธฐ๋ฉฐ ๊ณต๋ถํ๋ ์์ค์ ํ์ฌ์ ๊ณผ์ฅ๋ ์ถ์ฒ์ผ๋ก ์ฝ๋์จ์ ์๊ฒ ๋์๋ค.
ํผ์ ํ๋ก ํธ์๋๋ฅผ ๊ณต๋ถํ๋ฉด์ ์ด๋ ๊ฒ ํ๋ ๊ฒ ๋ง๋ ๊ฑธ๊น? ๋ผ๋ ์๋ฌธ์ด ๋ค์๊ณ , ๊ทธ ์๋ฌธ์ ํด๊ฒฐํด์ฃผ๊ธฐ ์ํด ๋๊ตฐ๊ฐ์ ๊ฐ์ด๋๊ฐ ํ์ํ๋ค ์๊ฐํ๊ณ , ํ์ฌ์ ๋ค๋๋ฉด์ ํ ์ ์๋ ์ ์ด ๊ฐ์ฅ ๋งค๋ฆฌํธ๋ฅผ ๋ง์ด ๋๊ผ๋ ๋ถ๋ถ์ด์๋ค. ๊ทธ์ ๋ถํฉํ๋ ๊ฒ์ด ์ฝ๋์จ์ด์์ง๋ง, ๊ฐ๊ฒฉ์ ์ผ๋ก ๋ถ๋ด์ด ์ ๋๋ค๊ณ ๋ ๋ง ๋ชปํ๊ฒ ๋ค. ๋์๊ฒ๋ ๊ต์ฅํ ํฐ๋์ด์๊ณ , ์ ์คํ ๊ฒฐ์ ํ ๋ฌธ์ ์๋ค.
์๊ฐ์ ๋์ผ๋ก ์ด ์ ์๋ค๋ ๋ง์ด ์์ง ์์๋? ๋์ผ๋ก ์๊ฐ์ ์ด ์๋ ์๋ ๊ฒ ๋ถ๋ช
ํ์ง๋ง, ์๊ฐ์ ์๋ ์ ์๋ค๋ ์ ์ ๋ช
ํํ๊ธฐ์ ์ถฉ๋ถํ ํฌ์ํ ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํ๋ค.
๊ทธ๋ฐ ํ์ ์ ๊ฐ์ง๊ณ ์ด์ฌํ ํด๋ณด์๊ณ ๋ค์งํ๋ฉฐ ์ ์ฒญํ๊ฒ ๋๋ค.
์๋ก ์ด ๋งค์ฐ ๊ธธ์๋ค.
์ด์ ๊ทธ 3๋ฌ ๋์์ ํ๋ํ๊ณ ๊ฝค๋ ๊ณ ํต์ค๋ฌ์ ๋ ์ฌํ๐์ ๊ธฐ๋กํด๋ณด๋ฉฐ ๋ค์ ๋๋ฅผ ๋์๋ณด๊ณ ์ค์ค๋ก๋ฅผ ๋ค๋
์ด๋ฉฐ ๋๊ธฐ๋ถ์ฌ๋ฅผ ์ป๊ณ ์์ผ๋ก์ ๋ฐฉํฅ์ฑ์ ์ ์ํด๋ณด๋ ค ํ๋ค.
๐คฆโโ๏ธ ์ด๋ฆฌ๋ฒ๋ฆฌ.. ๊ทธ๋ ๊ฒ ํ๋ฌ๊ฐ 2์ฃผ
์๋ ์ฒ์์ ๋ค ์ด๋ ต๋ฏ์ด ํด๋ณธ ์ ์๊ณ , ์๊ฒ ์๊ณ ์๋ ์ง์์ผ๋ก ์์๊ฐ ๋ณด๋ ค ํ๋ ์ญ์ ์ฒ์ 2์ฃผ๋ ์ฝ๊ฒ ์งํ๋์ง ์์๋ค.
Github์ PR(Pull Request) ์ ๋๋ก ํด๋ณธ ์ ์์๊ณ , ์ปค๋ฐ ๋ฉ์์ง์ ๋ํด์๋ ์ญ์ ๊ณ ๋ฏผํด๋ณธ ์ ์์๋ค.
๊ทธ๋ ๊ฒ 2์ฃผ ๋์ ๊ฐ๋จํ ๊ณผ์ (์ปค๋ฆฌํ๋ผ ์ฐธ๊ณ )๋ฅผ ์ํํ๋ฉด์ ์์ฒญ๋๊ฒ ๋ง์ ์ฝ๋๋ฆฌ๋ทฐ๋ฅผ ๋ฐ์๋ค. ๋ฐ์ผ๋ฉด์ ๋ถ์กฑํ ๊ฒ ์ ๋ง ๋ง๊ตฌ๋.. ๋ผ๋ ์๊ฐ๊ณผ ์ฝ๋๋ฅผ ์์ฑํ ๋ ๋ฆฌํฉํ ๋ง์ ๋ํ ๊ณ ๋ฏผ์ ํด๋ณธ ์ ์์๋ ๋์๊ฒ๋ ๊ต์ฅํ ์ ์ ํ๋ฉด์ ํ๋์ฉ ์์๊ฐ๋ ์ฌ๋ฏธ๋ฅผ ๋๊ผ๋ค.
๐ 2์ฃผ๊ฐ์ ๊ณผ์ PR 1์ฃผ์ฐจ-1, 1์ฃผ์ฐจ-2, 2์ฃผ์ฐจ-1, 2์ฃผ์ฐจ-2
๊ณผ์ ๋ฅผ ์ํํ๊ณ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ๊ณ ๋ฐ์ ๋ฆฌ๋ทฐ์ ๋ํด์ ์์ ํ๊ณ ๋ค์ ์ปค๋ฐํ๊ณ ๋ฅผ ๋ฐ๋ณตํ๋ฉฐ ์ฒ์์ ์งฐ๋ ์ฝ๋๋ณด๋ค ํจ์ฌ ๋ ๋ณด๊ธฐ ์ข์์ง ์ฝ๋๋ฅผ ๋ณผ ์ ์์๋ค.
์์ ํ ์ฝ๋ ๋ฆฌ๋ทฐ ๋ฐ๋ ์ฌ์ดํด์ ๋ฐ๋ณตํ๋ฉฐ 1์ฃผ์ผ 2์ฃผ์ผ์ด ์ง๋ฌ์ ๋ ์ด์ ์ข ์ฝ๋์จ์ ๊ณผ์ ์งํ ํํ๋ฅผ ์ ์ํด ๊ฐ ๋ ์ฆ์ด์๋ค.
๊ฐ์ฅ ๊ณ ํต์ค๋ฌ์ ๋ ๊ทธ ๋
์์ด ์ฐพ์์๋ค..๐ข
๐ ๋ชจ๋ ๊ณ ํต์ ๊ทผ์ TDD(ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ)
- ์ฌ์ค ์ฝ๋์จ ๊ณผ์ ์ ์๊ธฐ ์ , TDD(Test-Driven Development) ์ T์๋ ๋ชฐ๋๋ค.
๊ทธ๋์ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์ง๊ธฐ ์ํด ์๊ฐ์ ๋ ๋ง์ด ํฌ์ํ์ด์ผ ํ๊ณ , ๋จธ๋ฆฌ๋ฅผ ์ฅ์ด์ง๋ฉฐ ๊ณ ํต์ ์ฐ์์ด ๋ ์๋ฐ์ ์์๋ค.
2์ฃผ์ฐจ ๋ ๋ง๋ค์๋ ๊ฐ๋จํ TO-DO ๋ฆฌ์คํธ์ ๋ํ ํ ์คํธ๋ฅผ ์์ฑํด๋ณด๋ผ๋ ๊ฒ์ด์๋ค.
- 3์ฃผ์ฐจ๋ TDD ์ฌ์ดํด ์ ์ฉํ๊ธฐ ์ ํ
์คํธ์ ์นํด์ ธ ๋ณด๊ธฐ ์ํด์ ์๋ง TDD๋ฅผ ์ ์ธํ ๊ณผ์ ์๋ ์ถ์๋ค.
์์ฌ๋์ ๊ฐ์ ์์๋ ๋ณด์์ง๋ง, ์๊ฐ๋ณด๋ค ์ฝ๊ฒ ์นํด์ง์ง ๋ชปํ๋ค.๐ข
ํนํdescribe-context-it
์ด ๊ตฌ์กฐ์mocking
ํจ์๋ฅผ ๋ง๋๋ ์ ..๋ฑ
ํ์ง๋ง ๋์๊ฒ๋ ๋๊ฐ ์๋๊ฐ. ์น์ ํ ๋ตํด์ฃผ์๋ ๊ธฐํ๋..๐
๐ 3์ฃผ์ฐจ PR
- ๊ทธ๋ ๊ฒ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ๋ ๊ฒ์ ์ด๋ฐ ๊ฑด๊ฐ? ๋ผ๋ ๋๋์ด ๋ค ๋์ฏค 4์ฃผ์ฐจ๋ถํฐ ์์๋ TDD ์ฌ์ดํด์ ์ ์ฉํ๋ผ๋ ๊ณผ์ ์๋ค.
์๋ฌด ์๊ฐ ์์ด ๊ฐ๋ฐํ๋ ๋์๊ฒ TDD๋ฅผ ์ ํด์ผ ํ ๊น? ๋ผ๋ ์๋ฌธ์ด ๋ค ์๋ฐ์ ์์๋ค.
ํ
์คํธ๋ฅผ ๋จผ์ ๊ตฌํํ๊ณ (red), ์ค์ ๊ธฐ๋ฅ์ ๊ตฌํ(green) ํ, ๋ฆฌํฉํ ๋ง(refactoring)์ ํ๋ผ๋ ์ ์ ์ต์์ง ์์๋ค.
์๋ ๋ญ๋ผ๊ณ ?๐ค ํ
์คํธ๋ฅผ ๊ตฌํํ์ฌ ํ
์คํธ๊ฐ ๊นจ์ง๊ฒ ํ ๋ค์, ๊ทธ์ ๋ง์ถฐ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค๋.. ์ฒ์์ ์ค๋ช
์ ๋ค์ด๋ ์ดํด๊ฐ ๊ฐ์ง ์์์ง๋ง, ๊ทธ๋๋ ์ญ์ ๋ถ๋ํ๋ณด๊ณ ๊นจ๋ซ๋ ๊ฒ ์๋๊ฒ ๋๊ฐ..! ์ผ๋จ ํด๋ณด์! ๐ค
๊ทธ๋ ๊ฒ ์งํ๋ TDD ์ฌ์ดํด์ ๋ง์ถฐ ๊ทธ์ ๋ง๋ ์ปค๋ฐ ๋ฉ์์ง๋ฅผ ์ ๊ณ ๊ณผ์ ๋ฅผ ์ํํ์๋ค.
๊ทธ๋ก ์ธํด ํ์คํ ํ๋์ ์ปค๋ฐ๋น ์์
์ ์๊ฒ ๋๋ ์ ํ๋ค ๋ณด๋ 4์ฃผ์ฐจ ์ปค๋ฐ์ด 69๊ฐ๋ ๋์๋ค.
์ด๋๋ถํฐ๋ ๋๊ปด์ก๋ ๊ฑด TDD๋ ๊ณ ํต์ ์ฐ์, ๊ณผ์ ๋ TDD๋ฅผ ์ํ ๊ฒ์ด๋ผ ํด๋ ๊ณผ์ธ์ด ์๋์๋ค๋ ์ ..!๐
์ฌ์ค TDD๋ก ๊ณผ์ ๋ฅผ ์งํํ๋ฉด์๋ ์ด๋ ๊ฒ ํ๋ ๊ฒ ๋ง๋ ๊ฑด๊ฐ..? ๋ผ๋ ์๊ฐ์ด ๊ณ์ ๋ค์๋ค. ํ๋ฉด์๋ ์์งํ ํ์ ์ ์์๊ณ , ๊ทธ๋ฅ ํ๋ผ๋๊น ์ผ๋จ ํด๋ด์ผ์ง๋ผ๋ ์๊ฐ์ด ์๋ค๊ณ ํ๋ค๋ฉด ๊ทธ๊ฑด ๋์ ๊ฑฐ์ง๋ง์ด๋ค.
๊ทธ๋ ๊ธฐ์ TDD์ ์๋ฌธ์ ์ ์ฌ์ ํ ๊ฐ๋ํ๋ค ๋ชปํด ํ๋ฌ๋์ณค๋ค.
4์ฃผ์ฐจ๋ถํฐ๋ ๋ฌด์กฐ๊ฑด TDD๋ก ๊ธฐ๋ฅ์ ๊ตฌํํด์ผ ํ๊ณ , ๋ํ ํ
์คํธ ์ปค๋ฒ๋ฆฌ์ง ์ญ์ 100%๋ฅผ ๋ฌ์ฑํด์ผ ํ๋ค.
์ฌ์ค ๋ฆฌ์กํธ๋ ์ด๋ ์ ๋ ๋ค๋ฃฐ ์ค ์์์ง๋ง, ๊ทธ ๋ฆฌ์กํธ๋ ๋จ์ํ "๋๊ตฌ" ์์ ๋ฟ ์ค์ํ์ง ์์๋ค. ๊ธฐ๋ฅ์ ๊ตฌํํ ์ค ์๋ฉด ๋ญํ๋.. ๊ทธ๊ฑด ์ค์ํ์ง ์๋๋ฐ TDD๋ผ๋ ํฐ ์ฐ์ด ๋๋ฅผ ๋ง๊ณ ์๋๋ฐ! ๐ข
๊ทธ๋ ๊ฒ 4์ฃผ์ฐจ๊ฐ ์ง๋๊ณ 5์ฃผ์ฐจ...8์ฃผ์ฐจ๊น์ง TDD์ ์ต์ํด์ง๊ธฐ ์ํด ๋งค์ผ ๊พธ์คํ ๊ณต๋ถํ๊ณ ์นํด์ง๊ธฐ ์ํด ๋ง์ ๊ณ ํต์ ๋๋ผ๋ฉฐ ๋
ธ๋ ฅํ๋ ๊ฑฐ ๊ฐ๋ค.
TDD ์ฌ์ดํด์ ์งํค๊ธฐ ์ํด์ ์ปค๋ฐ์ ๊ฐ PR๋น 100๊ฐ ์ ๋์ ์ปค๋ฐ์ด ์กด์ฌํ๊ฒ ๋์๊ณ , ๊ทธ๋งํผ ๋ฐ๋ ์ฝ๋๋ฆฌ๋ทฐ๊ฐ ๋ง์ ์ ์๋ ๊ฑฐ ๊ฐ๋ค.
์ด ๊ณผ์ ์์ ์ ์ TDD ์ฌ์ดํด์ ์ต์ํด์ก๊ณ , ์ด๋ ์ ๋ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์งค ์ ์๊ฒ ๋์๋ค. ๋ํ, ์ฒ์์ ๋ค์๋ ์ TDD๋ฅผ ํ ๊น? ๋ผ๋ ์๊ฐ์ ์ ์ ์ฌ๋ผ์ ธ ๊ฐ๊ณ ์์๋ค. ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋งํ ๋ ์..๋ฆฌํฉํ ๋งํ๋ค๊ฐ ๊ธฐ์กด์ ๊ธฐ๋ฅ์ด ์ ๋๋ฉด ์ด๋กํ์ง? ๋ผ๋ ์๊ฐ์ ํ์ง๋ง ํ ์คํธ๋ฅผ ์์ฑํ๋ ์์ ํ์ ๋ ์กฐ๋ง์กฐ๋งํ ์๊ฐ ์์ด ์์ฌํ๊ณ ์ฝ๋๋ฅผ ์์ ํ๋ ์๋ ํ์ ๊ฐ์ง ์ ์๊ฒ ๋์๋ค. ๋ํ, ์์ ํ๋ฉด ๋น์ฐํ ํ ์คํธ๊ฐ ๊นจ์ง๊ฒ ๊ณ , ๊นจ์ง๋ ๋ถ๋ถ์ ๋ฐ๋ก๋ฐ๋ก ํ์ธํ๋ฉฐ ์์ ํ ์ ์์ผ๋ ๊ธฐ์กด๋ณด๋ค ๋ ๋น ๋ฅด๊ฒ ์ค๋ฅ๋ฅผ ์ฐพ์ ์์ ํ ์ ์์๋ค.
๐ NO! ํ๊ณ ! NO! Merge!
๋งค์ฃผ ๊ณผ์ ๋ฅผ ๋๋ด๊ธฐ ์ํด์๋ PR์ Merge๋ฅผ ํด์ผ ํ๋ค.
ํ์ง๋ง ๊ณผ์ ๋ฅผ ๋ค ์ํํ๋ค๊ณ ํด์ ๋์ด ์๋๋ค. ํ๊ณ ์์ด๋ ์ ๋ merge๋ฅผ ํ ์ ์๋ค.
๊ทธ๋๋ ํ๊ณ ์์ฑ์ ๋ํ ๋ถ๋ถ์ ๋ํด์๋ ๊ฝค ๊ธ์ ์ ์ธ ์๊ฐ์ด์๋ค.
๊ธ์ ๋งค์ฐ ๋ชป ์ฐ์ง๋ง, ๊นํ๋ธ์ ๊ธฐ๋ก์ ๋จ๊ธฐ๊ณ ๋ธ๋ก๊ทธ ์ฐ๋ ๊ฒ์ ์ข์ํ๊ธฐ ๋๋ฌธ์ ๋ฐ๊ฐ์ด ํ๊ณ ์์ฑ์ด์๋ค.
ํ๊ณ ๋ฅผ ์์ฑํจ์ผ๋ก์จ ๋งค์ฃผ ๊ณผ์ ๋ฅผ ์ํํ๊ณ ํ๊ณ ๋ฅผ ์์ฑํ ๋๋ง๋ค ํ ์ฃผ๋ฅผ ๋๋์๋ณด๋ ๊ณ๊ธฐ๊ฐ ๋๋ค. ํ ์ฃผ ๋์ ์ด๋ค ์ ์ด ์์ฌ์ ๊ณ , ์ด๋ค ๋ถ๋ถ์ ์นญ์ฐฌํด์ค ๋งํ ์ผ์ธ์ง๋ฅผ ๋ค์๊ธ ์ผ๊นจ์์ฃผ๊ณ ๋ง๋ฌด๋ฆฌํ ์ ์๊ฒ ํด์ค๋ค. ๋ํ, ๋งค์ฃผ ์๋ก ์๊ฒ ๋ ์ ๊ณผ ์์ฌ์ด ์ ์ ๋ํด์๋ ๋ค์ ์ฃผ์ ์ด๋ป๊ฒ ํ ์ง๋ฅผ ๊ณํ๋ ์ธ์ฐ๊ฒ ํด์ฃผ๋ ํฐ ์ญํ ์ ํด์ค๋ค.
ํญ์ ๋๋ผ๋ ๊ฑฐ์ง๋ง ์ด๋ค ๊ฒ์ ํ๋์ง ๊พธ์คํ ๊ธฐ๋ก์ ๋จ๊ธฐ๊ณ , ์๊ธฐ ์๊ฐ์ ๋จ๊ธฐ๋ ๊ฒ ๋์ค์ ๋ผ์๋ ์ ์ด๋๋ ์ด๋ฌ๊ตฌ๋! ํ๋ฉด์ ์ผ๋ง๋ ๋ฐ์ ํ๋์ง ๋๋ ์์ฌ์ด ๋ถ๋ถ์ ์ฐพ์ ๋ค์๊ธ ๋๊ธฐ๋ถ์ฌ๊ฐ ๋ ์ ์๊ฒ ํด์ฃผ๋ ๊ฑฐ ๊ฐ๋ค.
๐ ๋ง์ง๋ง์ ๋ฉ์ง๊ฒ ์ฅ์ํ 4์ฃผ๊ฐ์ ๋๋ง์ ํ๋ก์ ํธ
2๋ฌ ๋์ ๋ฐฐ์ ๋ ๋ชจ๋ ๊ฒ๋ค์ ์ด๋์ํ์ฌ ๋๋ง์ ๊ฐ์ธ ํ๋ก์ ํธ๋ฅผ ํ ์ ์๋ ๋ ์ด ์๋ค. ์ด ์๊ฐ์ ์ํด 2๋ฌ ๋์ ์ด์ฌํ ๋ฌ๋ ค์จ ๊ฒ ์๋๊ฐ!๐ค
์ฌ์ค ๊ฐ์ธ ํ๋ก์ ํธ์ ๋ํด์ ์ฃผ์ ๋ฅผ ๋ฏธ๋ฆฌ ์ ํ๊ณ ์ด๋ป๊ฒ ๊ตฌ์ํ ์ง๋ฅผ ์๊ฐ์ด๋ผ๋ ํ๊ณ ์์ด์ผ ํ์ง๋ง, ๊ณ ๋ฏผ์กฐ์ฐจ ์ ํ๊ณ ์์๋ค..๐ณ
๊ทธ๋ ๊ฒ ์์ ์ ํ ์ฃผ๋ผ๋ ์๊ฐ ๋์ ์ด๋ค ์ฃผ์ ๋ฅผ ํ ์ง ์๊ฐ์ ํด๋ณด์๋๋ฐ, ์์ ์ด ์ํ๋ ์ฃผ์ ๋ก ์คํฐ๋๋ฅผ ๋ชจ์งํ๊ณ ์ฐธ์ฌํ ์ ์๋ ๊ทธ๋ฐ ์คํฐ๋ ๋ชจ์ง ์ฌ์ดํธ๋ฅผ ๋ง๋ค๊น ์๊ฐ์ ํ๊ฒ ๋์๋ค. ํ์ง๋ง ํ์ฌ์ ๋ณํํ๊ณ ์๋ ๋๋ก์๋ ์๊ฐ์ ํ๋ฉด ํ ์๋ก ๊ธฐ๋ฅ์ด ๋๋ฌด ๋ง์์ง ๊ฑฐ ๊ฐ์์ 4์ฃผ๋ผ๋ ์๊ฐ๋์ ์ ๋๋ก ๋ง๋ฌด๋ฆฌ๋ฅผ ์ง์์ง์ ๋ํด์ ํ์ ์ด ์์๋ค. ๊ทธ๋์ ๋ค๋ฅธ ํ๋ก์ ํธ๋ฅผ ํ ๊น ๋ ํด๋ณด์์ง๋ง, ๋ง๋
ํ ๋ ์ค๋ฅด๋ ์ฃผ์ ๊ฐ ์๊ฐ๋์ง ์์๋ค. ๊ทธ๋ ์ํ ๋์ด slack์์ ์ฐ๋ ๋๋ก ํด์ฃผ์ ๋ง์ด ์๊ฐ์ด ๋ฌ๋ค.
- ๋ชฉ์จ ๊ฑธ๊ณ ๋ง๋ค์ผ๋ผ๋ ๋ง์.. ์ต์ ์ ๋คํด ๋์๋๋ฆฌ๊ฒ ๋ค..
๊ทธ๋ ๊ฒ ์ํ ๋์ ๋ง์์ด ์๊ฐ๋์ ๋ ๋๋ก ๋ผ๋ณด์ ํ๋ ์ฌ๋ณด, ๊ทธ๋ฆฌ๊ณ 2๋ฌ ๋์ ์ฌ์ง ์๊ณ ๋ฌ๋ ค์์ง๋ง, ์ ์ ์ค์ด์ง ์์์ด. ์ ์ ๋ฑ ํ ์๊ฐ๋ง ๋ ์ค์ฌ๋ณด์. ํ ๋ฌ ๊ธ๋ฐฉ๊ฐ. ๋ผ๋ ์๊ฐ์ผ๋ก ์ค์ค๋ก ๋๊ธฐ๋ถ์ฌ๋ฅผ ์ป๊ณ ๊ฐ์ธ ํ๋ก์ ํธ ์ฃผ์ ๋ฅผ ๊ฒฐ์ ํ์๋ค.
๊ฒฐ์ ํ ์ด์ ํ๋ก์ ํธ๋ฅผ ์งํํด์ผ์ง~!๐คํ๋ ์๊ฐ ์ ๋ง๋ค..์ฌ๊ธด ์ฝ๋์จ์ด์ง..? ๊ทธ๋ฅ ํ๋ก์ ํธ๋ฅผ ์งํํ ์๋ ์์ง! ๋ผ๋ ์๊ฐ์ ๋ค์ ํ ๋ฒ ์ผ๊นจ์์ค ๊ท์น? ๋ค์ ๋ง์ํด์ฃผ์
จ๋ค.
์ฒซ ๋ฒ์งธ๋ ๋งค์ฃผ ๊ตฌํํ๊ธฐ์ ์์ github ๊ฐ์ธ ํ๋ก์ ํธ repository์ issue์ ๊ณํ์ ์์ฑํด์ผ ํ๋ค.
๊ทธ๋ฆฌ๊ณ ํ ์ฃผ๊ฐ ๋๋ ๋๋ง๋ค ํ๊ณ ๋ฅผ ์์ฑํด์ผ ํ๋ค.
๋ ๋ฒ์งธ๋ ํ๋ก์ ํธ๋ฅผ ๋งค์ฃผ ๊ตฌํํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค ์ ์๋๋ก ํ๋ผ๋ ์ . ๋ฐฐํฌ(์ฌ๋งํด์๋ ๋ฐฐํฌ๋ก..)๋ฅผ ํ๋, ๋์์, ์คํฌ๋ฆฐ ์ท ๋ฑ์ ์ฌ์ฉํด์ ๋ง์ด๋ค.
์ฒ์ ๋ค์์ ๋ ์คํธ?๐ค ์ ๊ทธ๋์ผ ํ ๊น? ํ .. ๊ทธ๋ ๊ตฐ..๐ ์๊ฐ์ด ๋ค์์ง๋ง, ์ด ์ญ์ ๋งค์ฃผ ์งํํ๋ฉด์ ๋ชธ์ผ๋ก ๋๋ ์ ์์๋ค.
์ผ๋จ, ๋ณด์ฌ์ค ์ ์๋ ๊ฒฐ๊ณผ๋ฌผ์ด ์์ด์ผ์ง ํธ๋ ์ด๋๋ถ๋ค์ด ๋ณด๊ณ ๋ฆฌ๋ทฐ์ ํผ๋๋ฐฑ์ ๋น ๋ฅด๊ฒ ๋ณผ ์ ์๋ ๋งค๊ฐ์ฒด ์ญํ ์ ํ ์ ์๋ ์ ์ด ๊ฐ์ฅ ํฐ ์ด์ ์ด๋ค.
ํ๋ก์ ํธ๊ฐ ๋๋ ํ The Nature of Software Development ์ฑ
๊ณผ Clean Agile์ ์ฝ๊ณ ์คํฐ๋๋ฅผ ํ๊ณ ๋์ ๋ ํ์คํ ๊ทธ ์ด์ ๋ฅผ ์๊ฒ ๋์๋ค.
- ๐ ๋ฐฐํฌ๋ ๋งค์ฃผ ๊ฒฐ๊ณผ๋ฌผ์ ๋ณด๊ณ issue๋ฅผ ๋ฌ์์ฃผ์ จ๋ ์ค์ ๋
๊ทธ๋ ๊ฒ ๋งค์ฃผ ๊ณํ์ ์ธ์ฐ๊ณ ํ๊ณ ๋ฅผ ์์ฑํ๊ธฐ๋ฅผ ๋ฐ๋ณตํ๊ณ , TDD ์ฌ์ดํด์ ๋ง์ถฐ ๊ธฐ๋ฅ์ ๊ตฌํํ 4์ฃผ ๋์ ์ค์ค๋กํํ ์ด์ฌํ ํ๋ค๊ณ ์นญ์ฐฌํด ์ค ์ ์์ ๋งํผ ์ด์ฌํ ํ๋ ๊ฑฐ ๊ฐ๋ค.
๐ข ๊ณ ๋ 4์ฃผ๊ฐ์ ํ๋ก์ ํธ ๊ธฐ๊ฐ์ด ๋๋๊ณ , ๊ฒฐ๊ณผ๋ฌผ์ ๋๋์ ๋ณด์๋ค.
- 4์ฃผ ๋์ 240๊ฐ์ ์ปค๋ฐ, 97๊ฐ์ PR์ด ์กด์ฌํ๋ค.
- ๊ธฐ๋ฅ์ผ๋ก๋ ๋ก๊ทธ์ธ, ํ์๊ฐ์ , ์คํฐ๋ ์๊ฐ๊ธ ์์ฑ, ์์ , ์ญ์ ์ ์คํฐ๋ ์ ์ฒญ์ ๋ฐ๋ฅธ ์ฌ์ฉ์ ์ํ ๋ฑ์ ๊ตฌํํ๋ค.
- ๋น๋ก ํ
์คํธ ์ปค๋ฒ๋ฆฌ์ง๋ 100%๋ฅผ ๋ง์กฑํ์ง ๋ชปํ์ง๋ง, ํ
์คํธ ์ผ์ด์ค๋ ์ด 229๊ฐ๋ฅผ ์์ฑํ๊ฒ ๋์๋ค.
ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง๋ 100%๋ฅผ ๋ง์กฑ์ํค์ง ๋ชปํ๋ ๊ฐ์ฅ ํฐ ์ด์ ๋ ์ฒซ ๋ฒ์งธ๋ ๊ธ ์์ฑํ ๋ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์๋ํฐ๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธ๋ฅผ ์์ฑํ๋ ๋ฐ ํ๊ณ๊ฐ ์์๋ค๋ ์ , ๋ ๋ฒ์งธ๋ firebase๋ฅผ ํตํ api ํต์ ์ ๋ํ ํ ์คํธ๋ฅผ ์์ฑํ๋๋ฐ mock ํจ์๋ฅผ ๋ง๋๋ ๋ถ๋ถ์ ๋ํ ์ดํด์ ๋ถ์กฑํจ.. (์ถํ ๊ณ ํต๋ฐ์ผ๋ฉฐ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํด ๋ณผ ์์ .)
๋ค๋ฅธ ์ฌ๋๋ค์ ์ด๋ป๊ฒ ๋ณผ์ง ๋ชฐ๋ผ๋ ์ค์ค๋ก์๊ฒ ์ถฉ๋ถํ ๋ง์กฑ์ค๋ฌ์ด ๊ฒฐ๊ณผ๋ฌผ์ด๋ผ๊ณ ์๊ฐํ๋ค.โจ๐ฅ๐
๐ ์ฝ๋์จ ๊ณผ์ ์ธ์์ ๋ฒ์ด์ง๋ ์ผ๋ค!?
์ฝ๋์จ์์ ์ํต๊ณผ ์ปค๋ฎค๋ํฐ ์ญํ ์ ํ๋ ๊ฑด ์ฌ๋์ ์ฌ์ฉํ๊ณ ์๋ค.
์ฌ๋์ ํตํด ๊ฐ์ ํ๊ณ ๋ฅผ ๊ณต์ ํ๊ณ , ํ์ํ ์ ๋ณด๋ค๊ณผ ๋ชจ๋ฅด๋ ๋ถ๋ถ์ ์ง๋ฌธํ ์๋ ์๋ค.
๊ทธ์ค์์๋ ์ค์ ๋์ด ์ฃผ์ตํ์ฌ ๋งค์ฃผ ์งํํ๊ณ ์๋ ์คํฐ๋๊ฐ ์๋ค. ์ด ์คํฐ๋๋ ํ๊ณ ์ถ์ ์ฌ๋์ ํํด์ ๊ด๋ จ ๊ธฐ์ ์์ ์ ์ฝ์ด์ ๋งค์ฃผ ์์์ผ Google meet์ ํตํด ์ฃผ์ด์ง ๋ฒ์์ ๋ํด์ ์๋
ผํ๊ณ , ๊ฐ์ด ์๊ธฐํ ์ ์๋ ์คํฐ๋์ด๋ค.
์ฝ๋์จ ๊ณผ์ ์ด ๋๋ ์ง๊ธ๊น์ง๋ ๊ณ์ ์ด์ด์ ธ ์ค๊ณ ์๊ณ , ํ์ฌ๊น์ง ์งํํ๋ ์ฑ
์ผ๋ก๋ ํจ์ํ ์๋ฐ์คํฌ๋ฆฝํธ, The Nature of Software Development, ํด๋ฆฐ ์ ์์ผ์ด๊ณ ์์ผ๋ก๋ ์ค ์ ์๋ ์ฑ
๋ค์ด ๊ฐ๋ํ๋ค.
์คํฐ๋๋ฅผ ํตํด์ ์ป์ ์ฅ์ ์ ์ดํด๋ฅผ ๋ชป ํด์ ๋์ด๊ฐ๋ ๋ถ๋ถ์ ๋ค์ ๋ค ๊ฐ์ด ์ด์ผ๊ธฐํ๋ฉฐ ์ดํดํ ์ ์๊ฒ ๋์๊ณ , ์คํฐ๋๋ฅผ ํ๋ ์ฑ
์ ๋ ์ง์คํด์ ์ฝ๊ฒ ๋์๋ค. ๋ํ, ๋ค๋ฅธ ๋ถ๋ค์ ์๊ฒฌ๊ณผ ์๊ฐ์ ๋ค์ ์ ์์๊ณ ๊ฐ๋ ํ์
์ ๊ด๋ จ๋ ์ด์ผ๊ธฐ๋ ๋ค์ ์ ์์ด์ ์ฌ๋ฐ์๋ค.
๊ถ๊ทน์ ์ผ๋ก๋ ๋ ์ด์ฌํ ํด์ผ๊ฒ ๋ค๋ ๋๊ธฐ๋ถ์ฌ๋ฅผ ๋งค์ฃผ ์ป๊ณ ๊ฐ์ ๋๋ฌด ์์ฐฌ ์คํฐ๋๋ผ๊ณ ์๊ฐํ๊ณ , ์คํฐ๋๋ฅผ ๋งค์ฃผ ์งํํด์ฃผ์
์ ๋๋ฌด ๊ฐ์ฌํ๋ค. ๐
๐ 3๋ฌ๊ฐ์ ์ฌ์ ์ ๋ง์น๊ณ ํ๊ณ ์ถ์ ๋ง์ด ์๋ค๋ฉด
๐ฅ ์ ์ฒญํ์ค ์๊ฐ์ด ๋จ 1%๋ผ๋ ์์ผ์ ๋ถ๋ค์๊ฒ
ํด์ฃผ๊ณ ์ถ์ ๋ง์ ์์ ์ ๋ง์ ๋จ๋จํ ๋จน๊ณ ์์ํ๋ ๊ฒ์ด ์ข์ ๊ฒ์ด๋ค. ๊ณผ์ ์ด ๊ฝค ๊ณ ํต์ค๋ฝ๋ค.
ํธ๋ ์ด๋๋ถ๋ค์ด ๊พธ์คํ ์๋ฐ์ ๋ฃ์ด์ฃผ๊ธด ํ์ง๋ง ์ด ์ญ์ ์ค์ค๋ก ์ด์ฌํ ํ ๋ง์์ ๋จน์ง ์์ผ๋ฉด ์ฝ์ง ์๋ค ์๊ฐํ๋ค. ์์ ์ด ๊ฐ์ง ๋ง์๊ฐ์ง์ด ์ด๋ค์ง๋ฅผ ํ์ธํ๊ณ ๋ ํ์ธํ ๋ค ํ์ ์ด ์์ผ๋ฉด ๊ทธ๋ ์ ์ฒญํ์ผ๋ฉด ํ๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋๋ง ๋ฒ๋ฆฌ๊ฒ ๋ ๋ฟ์ด๋..
์ง์ฅ์ด ์์ผ์ ๋ถ๋ค์ด๊ฑฐ๋ ์ด์ง์ ์ํ์๋ ๋ถ๋ค์ ๋ฌด์กฐ๊ฑด ์ถ์ฒํ๋ค. ์ด์ฒ๋ผ ์จ๋ผ์ธ์ผ๋ก ์๊ฐ ์ ์ฝ์ ๋ฐ์ง ์๊ณ ํ ์ ์๋ ๊ณผ์ ์ด ์ด๋จ์๊น?
์ผ๋จ ์ ์ฒญํ์ฌ ์ด์ฌํ ํ๋ค๋ฉด ํํ๋ ์๊ณ ๋ ๋ฐ์ ์ ํ ์๊น๋ค๊ณ ์๊ฐ์ด ๋ค์ง ์์ ๊ฒ์ด๋ค.
TDD๋ฅผ ๋ฐฐ์ฐ๊ณ ์ถ์ ๋ถ๋ค์๊ฒ๋? ๋งํด์ผ ์๊น? ๐๐๐
๐ง ํธ๋ ์ด๋๋ถ๋ค๊ณผ ๋๊ธฐ๋ถ๋ค์๊ฒ
์ฝ๋์จ ์์ ์ ๊ณผ ์์ ํ๋ฅผ ๋น๊ตํด ๋ดค์ ๋ ๋๋ฌด ๋ง์ด ์ฑ์ฅํ๊ฒ ๋์์ค ๋ชจ๋ ํธ๋ ์ด๋๋ถ์๊ฒ ๋๋ฌด ๊ฐ์ฌ๋๋ฆฝ๋๋ค.๐
์ข์ ๊ฐ์๋ฅผ ํด์ฃผ์๊ณ ๋ ์ด๋์ ๊ฐ ์ง์ผ๋ด ์ฃผ์๋ ์์ฌ๋, ๋๊ตฌ๋ณด๋ค ์ด์ ๊ฐ๋ํ๊ณ ๋ ์์ธํ ์ฝ๋๋ฆฌ๋ทฐ์ ์คํฐ๋๋ฅผ ์งํํด์ฃผ์ ์ค์๋, ๋น๊ทผ๊ณผ ์ฑ์ฐ์ ๊ฐ์ด ์ฃผ์๋ ๋ฉ์ง ์ํ๋, ํญ์ ์น์ ํ๊ฒ ๋ตํด์ฃผ์๋ ๊ธฐํ๋ ๊น์ง ๋ค์ ํ ๋ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! ๐
3๋ฌ๊ฐ ์ฌ์ ์ ํจ๊ปํ ๋๊ธฐ๋ถ๋ค๊ณผ 1๊ธฐ ์ฌ๋ฌ๋ถ๋ค๋ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.๐ ํญ์ ์ฌ๋์์ ๋ง์ ์ด์ผ๊ธฐ์ ํ๊ณ ๋ฅผ ๋ณด๋ฉด์ ๋๊ธฐ๋ถ์ฌ๋ฅผ ์ป์๊ณ , 3๋ฌ ๋์ ์ง์น๋ ์๊ฐ๋ ์์์ง๋ง, ํจ๊ป ๋ฌ๋ ธ๊ธฐ์ ๋๊น์ง ํ ์ ์๋ ๊ฑฐ ๊ฐ์ต๋๋ค. ๋ชจ๋ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! ๐๐๐
๐ฏ ์์ผ๋ก์ ๊ณํ์ด ๋ญ์ผ?
๊ธธ๋ค๋ฉด ๊ธธ๊ณ ์งง๋ค๋ฉด ์งง์ 3๋ฌ๊ฐ์ ์ฌ์ ์ด ๋๋ฌ๋ค. ๋๋ฌ๋๋ผ๋ ์งํํ๋ ํ๋ก์ ํธ์ ์์ง ๊ธฐ๋ฅ์ด ๋ง์กฑ์ค๋ฝ์ง ๋ชปํ๊ธฐ์ ๊ธฐ๋ฅ์ ๋ง๋ถ์ฌ ๋๊ฐ ๊ฒ์ด๋ค.
ํ์ง๋ง "๋์ ์ธ์ ๋ ์๋ก์ด ์์"์ด๋ผ๋ ๋ง์ด ์๋ฏ์ด ์ด์ ์ฝ๋์จ์์ ๋ฐฐ์ด ์ธ์ฌ์ดํธ๋ฅผ ๊ฐ์ง๊ณ ์๋ก์ด ์์์ ์ค๋นํด์ผ ํ๋ค. ๐ค
์ง๊ธ ํ์ฌ๋ฅผ ํด์ฌํ๊ณ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ผ๋ ์๋ก์ด ์์์ ์ํด ๋ ๋
ธ๋ ฅํด์ผ ํ ๊ฒ์ด๋ค. ์ง๊ธ๋ณด๋ค ์์ผ๋ก๊ฐ ๋ ํ๋ค๊ฒ ๋์ ํคํ ๋ณด์ธ๋ค. ํ์ง๋ง ๊ณ ํต์ด ์์์๋ก ์ฑ์ทจ๊ฐ๊ณผ ์ป๋ ๊ฒ์ด ๋ง์ ๊ฑธ ์๊ธฐ์ ๋์์ ๊ฐ๋ ๊ธธ๋ณด๋จ ๋ถ๋ช์ณ ๋๊ฐ ๊ฒ์ด๋ค.
์ฒ์ ํ๋ก ํธ์๋ ๊ณต๋ถ๋ฅผ ์์ํ์ ๋น์์ ๋ชฉํ์ ๋ชฉ์ ์ ์์ง ๋ง๊ณ ์ง์น์ง ๋ง๊ณ ๊พธ์คํ๋ผ๋ ๋ง์ ๋จธ๋ฆฟ์์ ํญ์ ๊ฐ์ง๊ณ ์์ผ๋ก ๋์๊ฐ์ผ ํ๋ค. ์ ๊ทธ๋ฌ๋ฉด ๋ด๊ฐ ๋ํํ
์ง์ณ ์คํธ๋ ์ค๋ก ๋ฒํฐ์ง ๋ชปํ ๊ฒ์ด ๋ถ๋ช
ํ๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋๋ ์ค๋๋ฌ๋ฆฌ๊ธฐ๋ ์ํ๋ ํธ์ด๋๐ ๊ด์ฐฎ์ ๊ฒ์ด๋ค. ์ง๊ธ ๊ฐ์ง๊ณ ์๋ ์ ์คํจ๊ณผ ์ด์ ์ผ๋ก ๊พธ์คํ ํ๋ค๋ฉด ์ธ์ ๊ฐ๋ ์ด ๊ณ ํต์ด ๋ฑ๋ฑํ ๊ตณ์์ด์ด ์๋ ์ํ๋์ด ๋ง๋ํ ์์ด์ ๋๊ฒ ํด์ค ์ ์์ง ์์๊น? ๊ทธ๋ ๊ฒ ๋ฏฟ์ด๋ณธ๋ค.๐
๋ฐฐ์์ผ ํ ๊ฒ๋ค์ด ๋๋ฌด ๋ง๊ณ ๋์์์ด ๋ณํํ๋ ํธ๋ ๋ ์์์ ์ด๋ป๊ฒ ๊ณต๋ถํด์ผ ํ๋ ๊ฒ์ด ์ข์ ๋ฐฉ๋ฒ์ธ๊ฐ๋ ์ฌ์ ํ ๋ชจ๋ฅด๊ฒ ๋ค. ๋ฐฉ๋ฒ์ด ๋ญ ์์๊น? ์๋จธ๋ฆฌ๋ฅผ ๊ตด๋ ค ๋์๊ฐ ๋ฐฉ๋ฒ์ ์ฐพ๊ธฐ๋ณด๋ค ๊ทธ ์๊ฐ์ ๊พ๋ถ๋ฆฌ์ง ๋ง๊ณ ๊พธ์คํ ํ๋ ๋ฐฉ๋ฒ๋ฟ..
์ฌํด์ฒ๋ผ ์ด์ฌํ ์ด์๋ค๊ณ ์์ ์๊ฒ ๋งํ ์ ์๋ ํด๋ ์ด๋ฉด์ ์ฌํ๊ป ์๋ ๊ฑฐ ๊ฐ๋ค. 2020๋ ๋๋ ์ ์ธ๊ณ๊ฐ ์ง์ฅ ๊ทธ ์์ฒด์์ง๋ง, ๊ทธ ์ง์ฅ์์ ์ด๋ ๋๋ณด๋ค ์ด์ฌํ ๋ฌ๋ ค์จ ๋. ์ฌํด๊ฐ ๊ฐ๊ธฐ ์ ์ ์ฌํด๋ฅผ ๋๋์๋ณด๋ ํ๊ณ ๋ฅผ ์์ฑํด์ผ๊ฒ ๊ณ ๋ด๋ ์ ๊ณํ๋ ๊ฐ์ด ์์ฑํด๋ด์ผ๊ฒ ๋ค.
๋ด๋ ์ ์๋ก์ด ์ง์ฅ์์ ๋น๋นํ๊ฒ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ผ๋ ํ์ดํ๋ก ๊ฐ๋ฐํ๊ณ ์๋ ๋ด๊ฐ ๋์ด์์ผ๋ฉด ์ข๊ฒ ๋ค. ๐