๐ฅ ๋ฏธ์ - ์ซ์ ์ผ๊ตฌ ๊ฒ์
๐ ๊ธฐ๋ฅ ์๊ตฌ ์ฌํญ
๊ธฐ๋ณธ์ ์ผ๋ก 1๋ถํฐ 9๊น์ง ์๋ก ๋ค๋ฅธ ์๋ก ์ด๋ฃจ์ด์ง 3์๋ฆฌ์ ์๋ฅผ ๋ง์ถ๋ ๊ฒ์์ด๋ค.
- ๊ฐ์ ์๊ฐ ๊ฐ์ ์๋ฆฌ์ ์์ผ๋ฉด ์คํธ๋ผ์ดํฌ, ๋ค๋ฅธ ์๋ฆฌ์ ์์ผ๋ฉด ๋ณผ, ๊ฐ์ ์๊ฐ ์ ํ ์์ผ๋ฉด ๋ซ์ฑ์ด๋ ํํธ๋ฅผ ์ป๊ณ , ๊ทธ ํํธ๋ฅผ ์ด์ฉํด์ ๋จผ์ ์๋๋ฐฉ(์ปดํจํฐ)์ ์๋ฅผ ๋ง์ถ๋ฉด ์น๋ฆฌํ๋ค.
- ์) ์๋๋ฐฉ(์ปดํจํฐ)์ ์๊ฐ 425์ผ ๋
- 123์ ์ ์ํ ๊ฒฝ์ฐ : 1์คํธ๋ผ์ดํฌ
- 456์ ์ ์ํ ๊ฒฝ์ฐ : 1๋ณผ 1์คํธ๋ผ์ดํฌ
- 789๋ฅผ ์ ์ํ ๊ฒฝ์ฐ : ๋ซ์ฑ
- ์) ์๋๋ฐฉ(์ปดํจํฐ)์ ์๊ฐ 425์ผ ๋
- ์ ์ซ์ ์ผ๊ตฌ ๊ฒ์์์ ์๋๋ฐฉ์ ์ญํ ์ ์ปดํจํฐ๊ฐ ํ๋ค. ์ปดํจํฐ๋ 1์์ 9๊น์ง ์๋ก ๋ค๋ฅธ ์์์ ์ 3๊ฐ๋ฅผ ์ ํํ๋ค. ๊ฒ์ ํ๋ ์ด์ด๋ ์ปดํจํฐ๊ฐ ์๊ฐํ๊ณ ์๋ ์๋ก ๋ค๋ฅธ 3๊ฐ์ ์ซ์๋ฅผ ์ ๋ ฅํ๊ณ , ์ปดํจํฐ๋ ์ ๋ ฅํ ์ซ์์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค.
- ์ด ๊ฐ์ ๊ณผ์ ์ ๋ฐ๋ณตํด ์ปดํจํฐ๊ฐ ์ ํํ 3๊ฐ์ ์ซ์๋ฅผ ๋ชจ๋ ๋งํ๋ฉด ๊ฒ์์ด ์ข ๋ฃ๋๋ค.
- ๊ฒ์์ ์ข ๋ฃํ ํ ๊ฒ์์ ๋ค์ ์์ํ๊ฑฐ๋ ์์ ํ ์ข ๋ฃํ ์ ์๋ค.
- ์ฌ์ฉ์๊ฐ ์๋ชป๋ ๊ฐ์ ์
๋ ฅํ ๊ฒฝ์ฐ
IllegalArgumentException
์ ๋ฐ์์ํจ ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ข ๋ฃ๋์ด์ผ ํ๋ค.
๐ฏ ํ๋ก๊ทธ๋๋ฐ ์๊ตฌ ์ฌํญ
์ถ๊ฐ๋ ์๊ตฌ ์ฌํญ
- indent(์ธ๋ดํธ, ๋ค์ฌ์ฐ๊ธฐ) depth๋ฅผ 3์ด ๋์ง ์๋๋ก ๊ตฌํํ๋ค. 2๊น์ง๋ง ํ์ฉํ๋ค.
- ์๋ฅผ ๋ค์ด while๋ฌธ ์์ if๋ฌธ์ด ์์ผ๋ฉด ๋ค์ฌ์ฐ๊ธฐ๋ 2์ด๋ค.
- ํํธ: indent(์ธ๋ดํธ, ๋ค์ฌ์ฐ๊ธฐ) depth๋ฅผ ์ค์ด๋ ์ข์ ๋ฐฉ๋ฒ์ ํจ์(๋๋ ๋ฉ์๋)๋ฅผ ๋ถ๋ฆฌํ๋ฉด ๋๋ค.
- 3ํญ ์ฐ์ฐ์๋ฅผ ์ฐ์ง ์๋๋ค.
- ํจ์(๋๋ ๋ฉ์๋)๊ฐ ํ ๊ฐ์ง ์ผ๋ง ํ๋๋ก ์ต๋ํ ์๊ฒ ๋ง๋ค์ด๋ผ.
- JUnit 5์ AssertJ๋ฅผ ์ด์ฉํ์ฌ ๋ณธ์ธ์ด ์ ๋ฆฌํ ๊ธฐ๋ฅ ๋ชฉ๋ก์ด ์ ์ ๋์ํจ์ ํ
์คํธ ์ฝ๋๋ก ํ์ธํ๋ค.
- ํ ์คํธ ๋๊ตฌ ์ฌ์ฉ๋ฒ์ด ์ต์ํ์ง ์๋ค๋ฉด test/java/study๋ฅผ ์ฐธ๊ณ ํ์ฌ ํ์ตํ ํ ํ ์คํธ๋ฅผ ๊ตฌํํ๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ
- camp.nextstep.edu.missionutils์์ ์ ๊ณตํ๋ Randoms ๋ฐ Console API๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํํด์ผ ํ๋ค.
- Random ๊ฐ ์ถ์ถ์ camp.nextstep.edu.missionutils.Randoms์ pickNumberInRange()๋ฅผ ํ์ฉํ๋ค.
- ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ๋ ๊ฐ์ camp.nextstep.edu.missionutils.Console์ readLine()์ ํ์ฉํ๋ค.
https://github.com/kimhyeyun/java-baseball/tree/kimhyeyun
๐โ๏ธ ํ๊ธฐ
- ์ธ์๋ฆฌ ์ซ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก, ์ปดํจํฐ ์ซ์(๋๋ค)์ ์ฌ์ฉ์ ์ซ์(์ ๋ ฅ)์ ๊ตฌํํ๊ณ ์ ํ๊ณ , ์ ํจ์ฑ ๊ฒ์ฌ ๋ด์ฉ์ด ๋ฌ๋ผ์ ๊ทธ ๋ถ๋ถ์ ๋ฐ๋ก ๋ถ๋ฆฌํ์ฌ ๊ตฌํํด์ฃผ์์ต๋๋ค.
- indent๋ฅผ ์ค์ด๊ธฐ ์ํด์ ๊ฒ์์์ ์ ๋ต์ ๋ง์ถ ๋๊น์ง ์งํํ๋ ๊ฒ์ ํ ๋ผ์ด๋๋ผ๊ณ ๋ช ๋ช ํ๊ณ , ๊ตฌํ์ ์งํํ์ต๋๋ค.
- ์ฒ์์๋ private ๋ฉ์๋(public ๋ฉ์๋๋ด์์ ํธ์ถ๋๋)๋ ํ ์คํธํ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ ์ ํ ์คํธํ ํ์์ฑ์ ๋๋ผ์ง ๋ชปํ๊ณ ์ญ์ ํ์ต๋๋ค. → private์ ํ ์คํธํ๊ธฐ ์ํด์๋ public์ผ๋ก ๋ณ๊ฒฝํด์ผํ์, ๋ํ, ํธ์ถํ ๋ฉ์๋๋ฅผ ํ ์คํธ ์, ํจ๊ป ํ ์คํธ ๋๊ธฐ๋๋ฌธ์
- ์ ๋ ฅ ๋ถ๋ถ์ ๋ํด์ ํ ์คํธ ๋ฐฉ๋ฒ์ ๋ชฐ๋ผ์, ์ฒ์์๋ ๋ฉ์๋๋ด์ ์ ๋ ฅ ๋ถ๋ถ์ ์ฃผ์ ์ฒ๋ฆฌํ๊ณ ์์๋ก ์ค์ ํด์ฃผ์์ผ๋, ์ถํ ๋ณ๊ฒฝ ํ์ตํจ
String input = "1234"; InputStream in = new ByteArrayInputStream(input.getBytes()); System.setIn(in);
- ์ด๋ ๊ฒ ํ๋ฉด ์ ๋ ฅ์ input์ด ๋ค์ด๊ฐ๊ฒ ๋์ด์, ํ ์คํธ ์ฝ๋๋ง ๋ณ๊ฒฝํ๋ฉด ๋จ*
๋๋
์ ์ฒด์ ์ผ๋ก 1์ฃผ์ฐจ๋ณด๋ค indent์ ๋ํ ์ ๊ฒฝ์ ๋ง์ด ์ฐ๊ฒ ๋์ด ๋ฉ์๋ ๋ฐ ํด๋์ค ๋ถ๋ฆฌ๋ฅผ ํ์ต๋๋ค.
ํ
์คํธ ์ฝ๋ ์์ฑ์ ๋ํด์๋ ์ถ๊ฐ ํ์ต์ด ํ์ํ๋ค๊ณ ๋๊ผ์ต๋๋ค.
1์ฃผ์ฐจ ๊ณตํต ํผ๋๋ฐฑ์ ๋ฐ๋ผ, ๊ณต๋ฐฑ๋ฑ๋ ๋ชจ๋ ์ ๊ฒฝ์ฐ๊ฒ ๋์๊ณ , ํด๋ฆฐํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ง์ ์๊ฐ์ ํ ์ ์๊ฒ ํด์ค ๊ณผ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋, ์์ง๋ ๊ตฌํ ๊ธฐ๋ฅ ๋ชฉ๋ก ์์ฑ๊ณผ ๊ฐ๋ฐ ์ค ์์ /์๋ฃ ์ฒ๋ฆฌ์ ์ ๊ฒฝ์ ์ฐ์ง ์๊ณ ์๋ ๊ฒ๊ฐ์ต๋๋ค.
๋ํ, ๋ณ์/๋ฉ์๋/ํด๋์ค/ํจํค์ง ๋ช
์์ฑ๋ฒ์ ๋ํด์๋ ๋ ๋ง์ ์ ๊ฒฝ์ ์ธ ํ์์ฑ์ ๋๊ผ์ต๋๋ค.
์ด๋ฒ 3์ฃผ์ฐจ ๋ฏธ์ ๋๋, 2์ฃผ์ฐจ ๊ณตํต ํผ๋๋ฐฑ์ฒ๋ผ,,
README.md๋ฅผ ์์ธํ ์์ฑ
๊ธฐ๋ฅ ๋ชฉ๋ก์ ์ฌ๊ฒํ
๊ธฐ๋ฅ ๋ชฉ๋ก์ ์ ๋ฐ์ดํธ
๋ณ์ ์ด๋ฆ์ ์๋ฃํ์ ์ฌ์ฉํ์ง ์์
ํจ์๊ฐ ํ ๊ฐ์ง ๊ธฐ๋ฅ์ ํ๋์ง ํ์ธํ๋ ๊ธฐ์ค์ ์ธ์ด๋ค
์ฒ์๋ถํฐ ํฐ ๋จ์์ ํ ์คํธ๋ฅผ ๋ง๋ค์ง ์๋๋ค
์ ๋ ์ ๊ฒฝ์จ์ ์งํํด์ผ๊ฒ ๋ค.!!!๐
'์ทจ๋ฝ๊ธฐ์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ฐ์ํ ํ ํฌ์ฝ์ค ๋ฐฑ์๋ 5๊ธฐ] ํ๋ฆฌ์ฝ์ค 1์ฃผ์ฐจ ํ๊ณ (1) | 2022.11.03 |
---|---|
๋ฉด์ ๋ณต๊ธฐ - 2 ๐ (0) | 2022.11.03 |
๋ฉด์ ๋ณต๊ธฐ - 1 ๐ญ (0) | 2022.09.27 |
๋ฉด์ ์ค๋น - 2 (0) | 2022.09.27 |
๋ฉด์ ์ค๋น - 1 (0) | 2022.09.19 |