DevLog ๐ถ
[์ฐ์ํํ ํฌ์ฝ์ค] 5๊ธฐ ๋ฐฑ์๋ 3์ฃผ์ฐจ ํ๋ฆฌ์ฝ์ค ํ๊ณ ๋ก ๋ณธ๋ฌธ
[์ฐ์ํํ ํฌ์ฝ์ค] 5๊ธฐ ๋ฐฑ์๋ 3์ฃผ์ฐจ ํ๋ฆฌ์ฝ์ค ํ๊ณ ๋ก
dolmeng2 2022. 11. 17. 22:48- ๋ฒ์จ 3์ฃผ์ฐจ๊ฐ ๋๋ฌ๋ค. ์ฌ์ค ๋๋ ์ง ์ดํ ๋๋๋ฐ ์ ์ ์์ด์ ์ด์ ํ๊ณ ๋ก์ ์์ฑํ๋ค...
| 2์ฃผ์ฐจ ํ๊ณ ๋ก
| 3์ฃผ์ฐจ ์ฝ๋
| 3์ฃผ์ฐจ ์ปค๋ฐ ๊ธฐ๋ก ์ดํด๋ณด๊ธฐ
- ์ฌ์ค ์ด๋ฒ ์ฃผ์ฐจ๋ ์ปค๋ฐ์ ๊ทธ๋ ๊ฒ ๋ง์ด ํ๋ ค๊ณ ํ์ง ์์๋ค. ์ ํ ์๊ฐ ๋ด์ ํ์ด๋ณด๋ ๊ฒ ๋ชฉํ์๊ธฐ ๋๋ฌธ์...
- ํ์ง๋ง ์ด๋ฆผ๋ ์์๋ค. 3์ฃผ์ฐจ ์ปค๋ฐ์ 78๊ฐ๊ฐ ๋์ด๋ฒ๋ ธ๋ค...
๊ทธ๋๋ ์์ด๋ก ์ปค๋ฐํ๋ ๊ฒ ๊ฝค ์ต์ํด์ง ๋๋์ด๋ค. ์์ฐ์ค๋ฝ๊ฒ ๋ด๊ฐ ๋ญ ์จ์ผ ๋ ์ง ์์ฑ๋๋ ๊ธฐ๋ถ...? (๊ทผ๋ฐ ์ฌ์ ํ ํํ๊ณ ๋ชป ๋๋๋ค)
๊ทธ๋ฆฌ๊ณ ์ปค๋ฐ ์ปจ๋ฒค์ ๋ ์์ ์์ ํ ์ต์ด์ ์ด์ ๋ ์ ์ฐพ์๋ณด๊ณ ํ๊ณ ์๋ค. ์ข์ ์ต๊ด์ ๊ฐ์ ธ๊ฐ ๊ฒ ๊ฐ์์ ์ข๋ค.
- ์ต์ข ์ํ์ ์๋๊ณ 5์๊ฐ ๋ด์ ํ์ด๋ณด๋ ค๊ณ ์คํฑ์์น๊น์ง ๊ตด๋ ธ๋๋ฐ ๊ฑฐ์ 9์๊ฐ์ด ๊ฑธ๋ ธ๋ค. ๋์ค์ 5์๊ฐ ๋ด์ ์ด๊ฑฐ ๊ตฌํ์ ํ ์ ์์๊น ์ถ๋ค.
๋ฌผ๋ก ์ด๊ฒ๋... ํ๋ฆฌ์ฝ์ค๋ฅผ ๋ถ์ด์ผ ํ๋ ๋ง์ด์ง๋ง... ์ํ ์์ ์๋๋ฐ........
| ๊ธฐ๋ฅ ๋ช ์ธ์ ์์ฑํ๊ธฐ
- ์ ๋ฒ ์ฃผ ํ๊ณ ์์ ๋ค์ ์ฃผ์ฐจ์ ๊ผญ ์งํค๊ณ ์ถ์ด ํ๋ ๋ถ๋ถ ์ค ํ๋์ด๋ค. ๋จผ์ 1์ฐจ์ ์ผ๋ก ๊ฐ๋ฐ์ ์งํํ์ง ์๊ณ , ๋ช ์ธ์๋ถํฐ ์์ฑํ๋ ๊ฒ.
๊ทธ๋์ ์ด๋ฒ ์ฃผ์ฐจ ๊ณผ์ ์์ ๋ช ์ธ์ ์ง๋ ๋ถ๋ถ๋ง 1์๊ฐ 30๋ถ์ ์ด ๊ฒ ๊ฐ๋ค.
์๊ตฌ ์ฌํญ ํ๋ํ๋ ๋ค ๋ณด๋ฉด์ ๊ธฐ๋ฅ ๋ถ๋ฆฌ๋ฅผ ํ๋๋ฐ, ํ ๊ฐ์ง ์์ฌ์ด ๊ฑด ์ฒ์๋ถํฐ ๋๋ฌด ๋ชจ๋ ๊ฑธ ์ฑ๊ธฐ๋ ค๊ณ ํ๋ ์ ์ด๋ค.
์๋ฌด๋ฆฌ ์ ์์ฑํด๋ ์ฝ๋๋ฅผ ์ง๋ค ๋ณด๋ฉด ์์ ํ ๋ถ๋ถ์ด ๋์ฌ ์๋ฐ์ ์๊ธฐ ๋๋ฌธ์... ๐ฅ ๋ค์๋ถํฐ๋ 30๋ถ ์ ๋๋ก ์งง๊ฒ ๊ฐ์ ธ๊ฐ๋ณผ๊น ํ๋ค.
์ด์์๋ ๋ฌธ์๋ฅผ ๋ง๋ค๋ผ๋ 2์ฃผ์ฐจ ํผ๋๋ฐฑ์ ๋ค์ ์ฃผ์ฐจ์์๋ ๊ผญ... ์ง์ผ๋ณด์.
- ๊ทธ๋๋ ๋ฟ๋ฏํ ๊ฑด ํ๋ ๊ตฌํํ ๋๋ง๋ค โ๏ธ ํ์ํ๋ฉด์ ์งํํ ์ ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ ๊ธฐ๋ฅ๋ง๋ค ๋ฉ์๋๋ช ๋ ํจ๊ป ๋ฌ์๋์๋ค.
์ด๋ ๊ฒ ํ๋๊น ๋์ค์ ๊ธฐ๋ฅ ๋ช ์ธ์์์ ๋ฉ์๋ ์ฐพ์๊ฐ๊ธฐ๋ ํธํ๊ณ , ๋ด๊ฐ ๋ญ ๊ตฌํํ์ง ํ์คํ ์ ์ ์์ด์ ํธํ๋ค. ํนํ ํ ์คํธ ์ฝ๋ ์งค ๋ ๋งค์ฐ ๊ตฟ!
- ์ง๊ธ ์์ ์๊ฐํด๋ณด๋๊น, ์์ธ ์ฌํญ์์ ๋ณด๋์ค ๋ฒํธ ์ ๋ ฅ ์ ๋น์ฒจ ๋ฒํธ์ ๋์ผํ ๋ฒํธ๊ฐ ๋ค์ด์ค๋์ง๋ ์ฒดํฌํ์ด์ผ ํ๋๋ฐ... ์ด ๋ถ๋ถ์ ์๊ฐ ๋ชป ํ๋ค.
๊ทธ๋ฆฌ๊ณ ๋น์ฒจ ๊ธ์ก์ long์ผ๋ก ์ฒ๋ฆฌํ๊ธด ํ์ง๋ง, ๊ทธ ์ด์์ ๋ฒ์๊ฐ ๋ค์ด์์ ๋ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ๊ฒ์ธ์ง... ์ด๋ฐ ๊ฒ๋ ๊ณ ๋ฏผํ์ด์ผ ๋๋๋ฐ!!! ์์ฝ๋ค ใ ใ
๋ฌธ์ ๋ฅผ ๋ณด๊ณ ์ด๋ค ์ ํ ์ฌํญ์ด ๋ฐ์ํ๋์ง์ ๋ํด์ ๋ฐ์ ธ๋ณด๋ ๊ฒ๋ ์ ๋ง ์ค์ํ ์ต๊ด์ธ ๊ฒ ๊ฐ๋ค.
๋ค์ ์ฃผ์ฐจ์์๋ ์กฐ๊ธ ๋ ํ์คํ๊ฒ ๋ฐ์ ธ๋ด์ผ ํ ๊ฒ ๊ฐ๋ค... ใ ใ
| ๋๋ฉ์ธ ๊ตฌ์กฐ?
- ์ด๋ฒ ์ฃผ์ฐจ์์ ๊ฐ์ฅ ๋ง์ด ๊ณ ๋ฏผํ๋ ๋ถ๋ถ์ธ ๊ฒ ๊ฐ๋ค. DDD๋ ๋ง๋ก๋ง ๋ค์ด๋ณด๊ณ ์ต๊ด์ฒ๋ผ entity / repository / service ๋๋๋ ๊ฒ ๋ค์๋๋ฐ ์ด๋ฒ ์ฃผ์ฐจ ๊ณผ์ ์์ ์์ ํ๊ณ ์ง๋ ค๊ณ ํ๋๊น ๋จธ๋ฆฌ๊ฐ ๊ต์ฅํ ์ํ ๋ค.
- ์ฌ์ค ๊ทธ๋์ MVC ๊ตฌ์กฐ๋ก ์ค๊ณ๋ฅผ ์งํํด์ผ ๋๋ ์ถ์๋๋ฐ, ์ค์ ์ํ ์๊ฐ์ด๋ผ๊ณ ์๊ฐํ๋๊น ์ฐจ๋ง ์์ด ์ ์ ๋จ์ด์ก๋ค. ๋ค์ ์ฃผ์ฐจ์๋ ํ ๋ฒ ์๋ํด๋ณผ์ง ๊ณ ๋ฏผ์ด๋ค. ์คํ๋ ค ๋๋ฌด ๊ตฌ์กฐ๋ฅผ ๋ณต์กํ๊ฒ ๋ง๋๋ ๊ฒ ๊ฐ์์ ์ฌ์ ํ ๊ณ ๋ฏผ์ด์ง๋ง...
- ํจํค์ง ๊ตฌ์กฐ๋ ์ด๋ ๊ฒ ์งฐ๋ค. ํ ๊ฐ์ง ๋ฌ๋ผ์ง ์ ์ ์์๋ฅผ enum์ผ๋ก ๊ด๋ฆฌํ ๊ฒ!
- ๊ทธ๋ฆฌ๊ณ ๋๋ฉ์ธ์ ํฌ๊ฒ 5๊ฐ์ง๋ก ๋๋์๋ค.
- ๋ก๋ (์ฃผ์ด์ง ํด๋์ค, ๋ก๋ ๋ฒํธ์ ๋ํ ํด๋์ค)
- ๋ก๋ ๋น์ฒจ ๊ด๋ฆฌ (LottoPrize) -> ๋น์ฒจ ํต๊ณ๋ฅผ ์ํ ๊ธฐ๋ฅ์ ๋ด๋นํ๋ค.
- ๋ก๋ ๊ตฌ๋งค (LottoPurchase) -> ์ฌ์ฉ์๊ฐ ๊ตฌ๋งคํ ๋ก๋ ์ ๋ณด๋ฅผ ๊ด๋ฆฌํ๋ค.
- ๋ก๋ ๊ฒฐ๊ณผ (LottoResult) -> ์ฌ์ค ์๋ธ ํด๋์ค๋ก ์ฐ์ฌ๋ ๋๋ค. ๋ก๋ ๋น์ฒจ ํต๊ณ๋ฅผ ๋ํ๋ผ ๋ ์ฉ์ดํ๊ฒ ๊ด๋ฆฌํ๋ ค๊ณ ์ฌ์ฉํ์๋ค.
์๋ธ ํด๋์ค๋ก ์ฐ์ด๋ฉด ํด๋น ํด๋์ค์ ๋ํด์ ํ ์คํธ ์ ์ด๋ป๊ฒ ์ ๊ทผํด์ผ ๋ ์ง ๋ชจ๋ฅด๊ฒ ์ด์ (private๋ผ๊ณ ๊ฐ์ ) ๊ทธ๋ฅ ์ ๋ฐ ์์ผ๋ก ๋บ๋ค...
- ๋ก๋ ๋น์ฒจ ๋ฒํธ (LottoWinningNumber) -> ๋น์ฒจ ๋ฒํธ์ ๋ณด๋์ค ๋ฒํธ์ ๋ํด์ ๊ด๋ฆฌํ๋ค. ์ง๊ธ ์๊ฐํด๋ณด๋ฉด ๋์ ๋๋๋ ๊ฒ ๋ ๋ซ์ง ์์์๊น ์ถ๋ค...
๋น์ฒจ ๋ฒํธ๋ ๊ธฐ์กด์ Lotto ํด๋์ค๋ฅผ ์์๋ฐ๋ ์์ผ๋ก ํ์ด๋ ๋์ ๊ฒ ๊ฐ์๋ฐ ์์ฝ๋ค. ์ ์ด๋ฐ ๊ฑด ํ๊ณ ํ๋ฉด ๋ณด์ด๋ ๊ฑธ๊น...
- ๊ตฌํํ ๊ฒ ์ค์ ๋ฟ๋ฏํ๋ ๊ฑฐ!
- ๋ฉ์์ง ๊ด๋ฆฌํ ๋ ์ด๋ป๊ฒ ํ๋ฉด ๋์ ์ผ๋ก ๊ฐ์ ๋ฃ์ด์ค ์ ์์๊น ๊ณ ๋ฏผํ๋ค๊ฐ... ์๊ณ ์๋ %d %s๋ฅผ ์์ฐจ๊ฒ ์จ์ฃผ์๋ค.
- ํนํ ์์ซ์ ๋์งธ ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผ ํ ์ถ๋ ฅํ ๋ %.1f๋ก ์ถ๋ ฅํด์ค ์ ์์์ด์ ๋ ๊น๋ํ๋ ๊ฒ ๊ฐ๋ค.
- ์ง๊ธ ์์ ์ข ์์ฌ์ด ๊ฒ ์ค ํ๋. ์๋ฌ ๋ฉ์์ง๋ ๊ทธ๋๋ก ์์ ํด๋์ค๋ฅผ ์ฌ์ฉํ์๋ค.
enum ํ์ ์ ๊ฐ์ ๋ฃ์ด์คฌ์ด์ผ ํ๋๋ฐ, ์ด๋ฐ ์์ผ๋ก string concat ๋ฐฉ์์ด ๋ ๋ซ๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ด๋ค... enum์์ ๋์ ์ผ๋ก ์ค์ ํ ์ ์๋?
๋น์ ์ฝ๋ ์งค ๋๋ enum์ value ๊ฐ์ผ๋ก ์ ๋ ๊ฒ ํฉ์น ๊ฐ์ ๋ฃ์ด์ฃผ๋ ค๊ณ ํ๋๋ฐ enum์ ์ฌ์ค ์์์ด๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝ๋ ์ ์๋ ๊ฐ์ด์ด์ ๊ทธ๋ฐ ์์ผ๋ก ํฉ์ณ์ฃผ๋ ๊ฒ ์ ๋๋ค. (์ด ์ด์ ๊ฐ ํ์คํ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ๋น์ ๊ตฌํํ ๋๋ ๊ทธ๋ ๊ฒ ์๊ฐํ๋ค)
- ์ด๋ ๊ฒ ์ ํ๋ ค๋ฉด %s ๊ฐ์ ๊ฑธ๋ก ๋ฐ๊นฅ์์ ๋์ ์ผ๋ก ๋ฃ์ด์ฃผ๋ ์ง ํ๋ ๊ฒ ๋ซ๊ฒ ์ง๋ง... ์ฌ์ค ๊ณ ์ ๋ ๊ฐ์ธ๋ฐ ๊ตณ์ด ๊ทธ๋ด ํ์๊ฐ ์์๊น? ์ถ์๋ค.
์ด๊ฒ ์ณ์ ์ ํ์ธ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์๋ฌดํผ ๋ญ๊ฐ ์ฐ์ฐํ ๋๋... ใ
- ํ ์คํธ ์ฝ๋ ์งค ๋ ๋ฐ๊ฒฌํ๋ ๋ถ๋ถ ์ค ํ๋์ด๋ค. List.of์ผ๋ก ์ธ์๋ฅผ ๋ฃ์ด์ฃผ๊ธฐ ๋๋ฌธ์ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ ํ ์ ์๋ ๊ฒ...
๊ทธ๋์ ๊ทธ๋ฅ ์ ๋ ๊ฒ ์๋ก์ด ๋ฆฌ์คํธ๋ฅผ ํ ๋นํด์ ๋ฃ์ด์ฃผ์๋ค. ๋ณดํต ์ฝํ ๋ฌธ์ ํ ๋ ๋ฐฐ์ด์ ๋ง์ด ์ฌ์ฉํด์ ๋ฆฌ์คํธ ์ ๋ ฌ ๋ฐฉ์์ด ์ด์ง ํท๊ฐ๋ ธ๋๋ฐ ์ ๋ฐ ์์ผ๋ก ๋ฐ๋ก sort๋ฅผ ์ด์ฉํด์ ์ฒ๋ฆฌํด์ค ์ ์๋ ๊ฒ ์ ๊ธฐํ๋ค.
- ๊ทธ๋ฆฌ๊ณ ๋ก๋ ๋ฒํธ ์ถ๋ ฅํด์ค ๋ ","๋ก ๋๋์ด์ ์ถ๋ ฅํ์ด์ผ ํ๋๋ฐ, ์ง๊ธ ์๊ฐํด๋ณด๋๊น ์ถ๋ ฅํ ๋ ์ ๋ฐ ์์ผ๋ก ๊ตฌ๋ถํด์ ๋๋ ์ฃผ๋ ๊ฒ ์๋ฐ์ ์์๋ ๊ฒ ๊ฐ์๋ฐ ์ ์ฌ์ฉ ์ ํ์ง... ์๋ฌธ์ด๋ค. ์ด๊ฑด ํ ๋ฒ ์ฐพ์๋ด์ผ๊ฒ ๋ค.
- ํผ๋๋ฐฑ ๋ณด๊ณ ๋จ๋ํ๋ ๋ถ๋ถ ์ค ํ๋์ด๋ค. ์ฃผ์ด์ง ๋ก๋ ํด๋์ค๋ฅผ ์ ์ฌ์ฉํ์ง ๋ชปํ๋ค๋ ์ ์ด๋ค.
- ์ด๋ฐ ์์ผ๋ก getter๋ก ๋ฐ์์์ ์ธ๋ถ์์ ์ฒ๋ฆฌํ๋ ๊ฒ ์ข์ง ์๋ค๋ ์ฌ์ค์ ์๊ณ ์์์ง๋ง... ์ปค์คํ ์ผ๋ก ๋๋ฉ์ธ ๊ฐ์ฒด๋ค์ ์์ฑํ๋ค ๋ณด๋๊น ๋ฌธ๋ Lotto ํด๋์ค๋ฅผ ์ ์ฌ์ฉํ์ง ์์๋ค๋ ์ ์ ๋ค๋ฆ๊ฒ ๊นจ๋ฌ์๋ค. ๋ค์์๋ ๋ก๋ ๋ฒํธ์ ๋ํ ๋งค์น ์นด์ดํธ ๊ณ์ฐํ๋ ๋ถ๋ถ ๊ฐ์ ๊ฑด ๋ก๋ ํด๋์ค ๋ด๋ถ์ ๊ตฌํํด์ผ๊ฒ ๋ค...
<LottoPrize#getMatchCount>
- ํ๊ณ ํ๋ค๊ฐ ๋ณธ ์ฝ๋์ธ๋ฐ ์คํธ๋ฆผ์ ์ด๋ป๊ฒ๋ ์ฐ๊ณ ์ถ์ด์ ๋ง๋ค์ด๋ธ ์ด์ํ ์ฝ๋์ด๋ค.
count()์ ๊ฒฝ์ฐ long ๊ฐ์ ๋ฐํํ๊ธฐ ๋๋ฌธ์ int๋ก ๋ณํํ๊ณ ์ถ์ด์ wrapper ์ฌ์ฉํ๊ณ ... ๋ค์ intValue()๋ก ๋นผ๋ด์๋ค.
์ด๋ด ๊ฑฐ๋ฉด ๊ทธ๋ฅ ๋ฐ๋ณต๋ฌธ ๋๋ฉด์ ์ฒ๋ฆฌํ๋ ๊ฒ ๋ ๋์์๊น? ์ถ๊ธฐ๋ ํ์ง๋ง.... ๋น์์๋ ์์ฒญ ๊ณ ๋ฏผํ ๊ฒฐ๊ณผ์๋ค... ใ ใ ใ
| ํ ์คํธ ์ฝ๋๋ก ์ฝ์งํ๊ธฐ
- ๊ทธ๋ฆฌ๊ณ ๋๋ง์ ๋ฉ์ธ ์ฝ๋...! ์ฌ์ค ์ด๋ฒ ์ฃผ์ฐจ ๊ณผ์ ๊ฐ ์ค๋ ๊ฑธ๋ ธ๋ ๊ฒ๋ ์ด ๋๋ฌธ์ด ํฌ๋ค...
'์์ธ ํ ์คํธ๋ฅผ assertThat์ผ๋ก ๊ฐ๋ฅํ๋ค๊ณ ? assertThatThrownBy๊ฐ ์๋๋ผ...?'
- ๋๋ฅผ ์ ๋ง ํ๋ค๊ฒ ํ๋ ์น๊ตฌ... ์ฌ๊ธฐ์ ๋ถ๋ช NoSuchElementException์ผ๋ก ์ก๋๋ฐ ๋ฌธ์ ์ ์๊ตฌ์ฌํญ์ IllegalArgumentException์ผ๋ก ์ก๋ ๊ฒ์ด๋ค!
๊ทธ๋์ ์์ธ ์ฌํญ์ด ๋ฐ์ํ๋ฉด ํ ์คํธ ์ฝ๋๊ฐ ์ ์์ ์ผ๋ก ์คํ๋์ง ์๋ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํด๋ฒ๋ ธ๋ค...
์ฒ์์๋ ์ฝ๋ ์ค๋ฅ์ธ ์ค ์๊ณ ๋๋ฌด ์ดํด๊ฐ ์ ๋์ด์ ์ฐํ ์ฝ์ ๋ฌธ์๊น์ง ๋ฃ์ด๋ด์ผ ํ๋...? ์ถ์๋๋ฐ ๊ทธ๋ฅ ๋ด๊ฐ ์๋ชป๋ ๊ฑฐ์๋ค...
์ฌ์ค ์๊ฐ์ ์ ํํด๋ณด๋ฉด ๊ฐ๋จํ๋ค. ํ ์คํธ ์ฝ๋๊ฐ ์คํจํ ์ด์ = ์์ธ๊ฐ ๋์ ธ์ ธ์.
์์ธ๊ฐ ๋์ ธ์ง๋ค = ์ด๋๊ฐ์์ ์ฒ๋ฆฌ๋์ง ์๊ณ ๊ณ์ ์ ํ๋์ด์ ์์คํ ์ข ๋ฃ ์์ ๊น์ง ๊ณ์ ๋์ ธ์ง ๊ฒ.
= ๊ทธ๋ ๋ค๋ฉด ์์ธ๋ฅผ ์ก์์ ์์คํ ์ด ์ ์ ์ข ๋ฃ๋๋๋ก ํ์!
- ๊ทธ๋์ ์ฒ์์๋ try catch๋ฌธ์ ๊ทธ๋ฅ ์ฌ๊ธฐ๋ค๊ฐ ๋ฐ๋ก ๋ฐ์๋ค. (์ง๊ธ์ ์์ ํด์ ์ ๋ ์ง๋ง)
- ๊ทผ๋ฐ ์ด๋ ๊ฒ ๋๋ฉด ํ ์คํธ๋ ์ ์ ํต๊ณผํ์ง๋ง... ์ด ์ดํ ๋ก์ง์ด ์คํ์ด ๋๋ค๋ ์ ์ด๋ค. catch๋ก ์ก๊ณ ์์คํ ์ ์ข ๋ฃ์์ผ์ค์ผ ํ๋๋ฐ System.exit๋ฅผ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ด์๋ค. ๊ทธ๋ฆฌ๊ณ ์ฝ์ ์ถ๋ ฅ๋ ์ฌ์ค System.out์ผ๋ก ์ง์ ํ๋ ์ฌํ๊น์ง ๋ฒ์ด์ก๋ค. ์ ๊ธฐ ๋ด๋ถ์ ๋ฃ์ด๋๊ณ . ใ ใ ใ ใ
'์์ธ๋ฅผ ๋ฐ์์ํค๊ณ , ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๊ณ , ์ ์ ์ข ๋ฃ์์ผ๋ผ' << ์ด ๋ง์ด ์ง์ง ์ดํด๊ฐ ์ ๋๊ธฐ ์์ํ๋ค.
์๋... ์์ธ๊ฐ ๋ฐ์ํ๋ฉด ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋๋๋ฐ ์ด๋ป๊ฒ ์ ์ ์ข ๋ฃ๋ฅผ...?
- ๊ทธ๋์... ๋ ๋ค์ ์ฝ์ง์ ํ๋ค!!!! ๋๋ฒ๊น ํ๋์ฉ ์ฐ์ด๋ณด๋ฉด์..... ใ
- ๊ฒฐ๊ณผ์ ์ผ๋ก ๋์จ ์ฝ๋! ์๋ง ์๊ตฌ์ฌํญ๋ ์ด๋ฐ ๊ฒ ์๋์์๊น ์ถ๋ค.
getPurchaseInfo() -> ์ฌ๊ธฐ์ ์ฌ์ฉ์์ ์ ๋ ฅ ๋ฐ๊ณ , ๊ฒ์ฆ ๋ก์ง์ ํ๋ฉด์ 1000j๊ฐ ๋ค์ด์ค๋ฉด ์์ธ๊ฐ ๋ฐ์ํ์ ๊ฒ์ด๋ค.
์์ธ๋ ๊ณ์ ํ๊ณ ํ๊ณ ์ฌ๋ผ์ฌ ๊ฒ์ด๊ณ , ๋ฉ์ธ ๋ก์ง๊น์ง ์์ ๋ try-catch์ ์ํด์ ์์ธ๋ ์กํ๊ฒ ๋๋ค.
๊ทธ๋ผ ์ฌ๊ธฐ์ ์ถ๋ ฅ์ ํด์ฃผ๋ฉด ๋๋ค! ์์ธ์ ๋ด์๋ ๊ฑธ e.getMessage()๋ก ๊บผ๋ด์ฃผ๊ณ , ์์ธ ์ฒ๋ฆฌ ํ ์ ์ ์ข ๋ฃ๊น์ง ๊ฐ๋ฅํ๊ฒ ๋๋ค.
์ด๋ ๊ฒ ๋๋ฉด ์์ธ ๋ฐ์ > ๋ฉ์์ง ์ถ๋ ฅ > ์ ์ ์ข ๋ฃ ์ด ๋ก์ง์ ์๋ฒฝํ๊ฒ ๋ง์กฑํ๊ฒ ๋๋ค.
์ด๋ฒ ์ฃผ์ฐจ ๊ณผ์ ์์ ์์ฒญ ์ฝ์งํ๋ ๋ถ๋ถ์ธ๋ฐ ์ ์ฒ๋ฆฌํ ๊ฒ ๊ฐ์์ ๋ฟ๋ฏํ๋ค...ใ ใ
์์ผ๋ก ์์ธ ์ฒ๋ฆฌ๋ ์ง์ง ๊ผญ ์ด๋ฐ ์์ผ๋ก ํด์ผ๊ฒ ๋ค๊ณ ๋ค์งํ๋ค...
| ๋จ์ ํ ์คํธ์ ํตํฉ ํ ์คํธ
- ์ ๋ฒ ์ฃผ์ฐจ์์ ํ ์คํธ ์ฝ๋๋ฅผ ๋๋ฌด ์ ๊ฒฝ์ฐ์ง ๋ชปํ๋ ๊ฒ ๊ฐ์์ ์ด๋ฒ ์ฃผ์ฐจ๋ ํ ์คํธ ์ฝ๋๋ฅผ ์ฌ๋ฌ ๊ฐ ์งฐ๋ค.
ํนํ, private๋ก ๊ตฌํ๋ ๊ฑฐ์ ๋ํด ๋จ์ ํ ์คํธ > public์ผ๋ก ์ ๊ทผํ ์ ์๋ ๊ฒ์ ๋ํด ํตํฉ ํ ์คํธ๋ฅผ ์งํํ์๋๋ฐ
๋ค ๊ตฌํํ๊ณ ๋์ ์์๋ณด๋๊น private ๋ฉ์๋๋ ํ ์คํธ ์ ํ๋ ๊ฒ ๋ง๋ค๊ณ ํ๋ค... ใ
์๋๋ฉด private๋ ๋จ๋ ์ผ๋ก ์ด์ฐจํผ ์คํ๋์ง ์์ ๊ฒ์ด๋๊น, public์ ํตํด์ ์ฒ๋ฆฌํ๋ ๊ฒ ๋ง๋ค๊ณ ํ๋ค.
- ์ง๊ธ ์ด ๋ฆฌํ๋ ์ ์ ํฅ์ฐ์ ๋ณด๊ณ ์์ผ๋ ๋ค์ ์ด๋ ๊ฒ ํ๋ฉด ์ ๋๊ฒ ๋ค๋ ์๊ฐ์ด ๋ชฐ๋ ค์จ๋ค.. ใ ใ
- ๋ค์ ์ฃผ์ฐจ์์๋ ์ผ์ด์ค๋ฅผ ๋ค์ํ๊ฒ ํด์ public ๋ฉ์๋์ ๋ํด์๋ง ํด์ผ๊ฒ ๋ค...!
๊ทธ๋๋ ๋ฆฌํ๋ ์ ์ ๋ํด์ ๊ณต๋ถํด๋ณผ ์ ์์ด์ ์ข์ ์๊ฐ์ด์๋ค.
- ์ด๊ฑด ๊ทธ๋ฅ ๋ณด๋์ค๋ก... ๋น์ฒจ ๋ฒํธ ์ผ์ด์ค๋ฅผ ์ง์ง ์์ฒญ ๊ณ ๋ฏผํ๋ฉด์ ์งฐ์๋๋ฐ ๋ค ํต๊ณผ๋๊ณ ๋์ ์์ฒญ ๋ฟ๋ฏํ๋ค. ใ ใ ใ ใ
- ํ๋์ ํ ์คํธ์ ์ ๋ ๊ฒ ์ฌ๋ฌ ๊ฐ์ assertThat ์๋ ๊ฒ ๋ณ๋ก๋ผ๊ณ ์๊ฐํ๋๋ฐ, ์ด๋ฒ ์ฃผ ์ฌ๋ ํ์ธํ๋๊น ์ด๋ค ๋ถ์ด .as๋ฅผ ์ฌ์ฉํ๋ฉด ์ข๋ค๊ณ ํ์ ์ ๋ค์ ์ฃผ์ฐจ์๋ as๋ฅผ ํตํด description์ ์์ฑํด๋ณด๊ณ ์ ํ๋ค.
- ๊ทธ๋ฆฌ๊ณ ํ ์คํธ ์ด๋ ธํ ์ด์ ์ด ๋๊ฒ ๋ค์ํ๋๋ฐ, ๋ค์ ์ฃผ์ฐจ์์๋ ๊ทธ ๋ถ๋ถ๋ ์ต๋ํ ํ์ฉํด๋ด์ผ๊ฒ ๋ค! ํนํ command() ๋ฉ์๋ ์ฌํ์ฉ ๋์ ์ @ValueSource์ @ParameterizedTest๋ฅผ ํ์ฉํด์ ํด์ผ๊ฒ ๋ค... ํ ์คํธ ์ฝ๋์ ๋ํ ์ค๋ณต๋ ์์ ๋ ๊ฒ ์ค์ํ๋๊น!
ํ๋ํ๋ 3์ฃผ์ฐจ... 4์ฃผ์ฐจ ๋ฏธ์ ์์ฒญ ์ด๋ ต๋๋ฐ ๋ฒ์จ ๊ธด์ฅ๋๋ค... ใ
ํนํ 3์ฃผ์ฐจ ํผ๋๋ฐฑ์ ๋๋ฌด ๋ฐฐ์ด ์ ์ด ๋ง์์ 4์ฃผ์ฐจ ์ด์ฌํ ๋ฌ๋ ค๋ณด๋ ค๊ณ ํ๋ค. ๋ง์ง๋ง๊น์ง ํ์ดํ ใ _ใ ...!!!