๋ฏธ์
- ๋ค๋ฆฌ ๊ฑด๋๊ธฐ
๋ฏธ์
์ ๊ธฐ๋ฅ ์๊ตฌ ์ฌํญ, ํ๋ก๊ทธ๋๋ฐ ์๊ตฌ ์ฌํญ, ๊ณผ์ ์งํ ์๊ตฌ ์ฌํญ ์ธ ๊ฐ์ง๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
์ธ ๊ฐ์ ์๊ตฌ ์ฌํญ์ ๋ง์กฑํ๊ธฐ ์ํด ๋
ธ๋ ฅํ๋ค. ํนํ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ ์ ๊ธฐ๋ฅ ๋ชฉ๋ก์ ๋ง๋ค๊ณ , ๊ธฐ๋ฅ ๋จ์๋ก ์ปค๋ฐ ํ๋ ๋ฐฉ์์ผ๋ก ์งํํ๋ค.
๊ธฐ๋ฅ ์๊ตฌ ์ฌํญ์ ๊ธฐ์ฌ๋์ง ์์ ๋ด์ฉ์ ์ค์ค๋ก ํ๋จํ์ฌ ๊ตฌํํ๋ค.
๐ฎ ๋ฏธ์
์ ์ถ ๋ฐฉ๋ฒ
๋ฏธ์
๊ตฌํ์ ์๋ฃํ ํ GitHub์ ํตํด ์ ์ถํด์ผ ํ๋ค.
GitHub์ ๋ฏธ์
์ ์ ์ถํ ํ ์ฐ์ํํ
ํฌ์ฝ์ค ์ง์ ์ฌ์ดํธ์ ์ ์ํ์ฌ ํ๋ฆฌ์ฝ์ค ๊ณผ์ ๋ฅผ ์ ์ถํ๋ค.
์์ธํ ๋ฐฉ๋ฒ์ ์ ์ถ ๊ฐ์ด๋ ์ฐธ๊ณ
Pull Request๋ง ๋ณด๋ด๊ณ ์ง์ ํ๋ซํผ์์ ๊ณผ์ ๋ฅผ ์ ์ถํ์ง ์์ผ๋ฉด ์ต์ข
์ ์ถํ์ง ์์ ๊ฒ์ผ๋ก ์ฒ๋ฆฌ๋๋ ์ฃผ์ํ๋ค.
๐จ ๊ณผ์ ์ ์ถ ์ ์ฒดํฌ ๋ฆฌ์คํธ - 0์ ๋ฐฉ์ง
๊ธฐ๋ฅ ๊ตฌํ์ ๋ชจ๋ ์ ์์ ์ผ๋ก ํ๋๋ผ๋ ์๊ตฌ ์ฌํญ์ ๋ช
์๋ ์ถ๋ ฅ๊ฐ ํ์์ ์งํค์ง ์์ ๊ฒฝ์ฐ 0์ ์ผ๋ก ์ฒ๋ฆฌ ํ๋ค.
๊ธฐ๋ฅ ๊ตฌํ์ ์๋ฃํ ๋ค ์๋ ๊ฐ์ด๋์ ๋ฐ๋ผ ํ
์คํธ๋ฅผ ์คํํ์ ๋ ๋ชจ๋ ํ
์คํธ๊ฐ ์ฑ๊ณตํ๋์ง ํ์ธํ๋ค.
ํ
์คํธ๊ฐ ์คํจํ ๊ฒฝ์ฐ 0์ ์ผ๋ก ์ฒ๋ฆฌ ๋๋ฏ๋ก, ๋ฐ๋์ ํ์ธ ํ ์ ์ถํ๋ค.
ํ
์คํธ ์คํ ๊ฐ์ด๋
ํฐ๋ฏธ๋์์ Mac ๋๋ Linux ์ฌ์ฉ์์ ๊ฒฝ์ฐ ./gradlew clean test ๋ช
๋ น์ ์คํํ๊ณ ,
Windows ์ฌ์ฉ์์ ๊ฒฝ์ฐ gradlew.bat clean test ๋ช
๋ น์ ์คํํ ๋ ๋ชจ๋ ํ
์คํธ๊ฐ ์๋์ ๊ฐ์ด ํต๊ณผํ๋์ง ํ์ธํ๋ค.
๐ ๊ธฐ๋ฅ ์๊ตฌ ์ฌํญ
์์๋ ๋ ์นธ์ผ๋ก ์ด๋ฃจ์ด์ง ๋ค๋ฆฌ๋ฅผ ๊ฑด๋์ผ ํ๋ค.
๋ค๋ฆฌ๋ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ๊ฑด๋์ผ ํ๋ค.
์์๋ ๋ ์ค ํ๋์ ์นธ๋ง ๊ฑด๋ ์ ์๋ค.
๋ค๋ฆฌ์ ๊ธธ์ด๋ฅผ ์ซ์๋ก ์
๋ ฅ ๋ฐ๊ณ ์์ฑํ๋ค.
๋ค๋ฆฌ๋ฅผ ์์ฑํ ๋ ์ ์นธ๊ณผ ์๋ ์นธ ์ค ๊ฑด๋ ์ ์๋ ์นธ์ Random ๊ฐ์ ์ด์ฉํด์ ์ ํ๋ค.
์ ์นธ์ ๊ฑด๋ ์ ์๋ ๊ฒฝ์ฐ U, ์๋ ์นธ์ ๊ฑด๋ ์ ์๋ ๊ฒฝ์ฐ D ๊ฐ์ผ๋ก ๋ํ๋ธ๋ค.
Random ๊ฐ์ด 0์ธ ๊ฒฝ์ฐ ์๋ ์นธ, 1์ธ ๊ฒฝ์ฐ ์ ์นธ์ด ๊ฑด๋ ์ ์๋ ์นธ์ด ๋๋ค.
๋ค๋ฆฌ๊ฐ ์์ฑ๋๋ฉด ํ๋ ์ด์ด๊ฐ ์ด๋ํ ์นธ์ ์ ํํ๋ค.
์ด๋ํ ๋ ์ ์นธ์ ๋๋ฌธ์ U, ์๋ ์นธ์ ๋๋ฌธ์ D๋ฅผ ์
๋ ฅํ๋ค.
์ด๋ํ ์นธ์ ๊ฑด๋ ์ ์๋ค๋ฉด O๋ก ํ์ํ๋ค. ๊ฑด๋ ์ ์๋ค๋ฉด X๋ก ํ์ํ๋ค.
๋ค๋ฆฌ๋ฅผ ๋๊น์ง ๊ฑด๋๋ฉด ๊ฒ์์ด ์ข
๋ฃ๋๋ค.
๋ค๋ฆฌ๋ฅผ ๊ฑด๋๋ค ์คํจํ๋ฉด ๊ฒ์์ ์ฌ์์ํ๊ฑฐ๋ ์ข
๋ฃํ ์ ์๋ค.
์ฌ์์ํด๋ ์ฒ์์ ๋ง๋ ๋ค๋ฆฌ๋ก ์ฌ์ฌ์ฉํ๋ค.
์ฌ์ฉ์๊ฐ ์๋ชป๋ ๊ฐ์ ์
๋ ฅํ ๊ฒฝ์ฐ IllegalArgumentException๋ฅผ ๋ฐ์์ํค๊ณ , "[ERROR]"๋ก ์์ํ๋ ์๋ฌ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅ ํ ๊ทธ ๋ถ๋ถ๋ถํฐ ์
๋ ฅ์ ๋ค์ ๋ฐ๋๋ค.
Exception์ด ์๋ IllegalArgumentException, IllegalStateException ๋ฑ๊ณผ ๊ฐ์ ๋ช
ํํ ์ ํ์ ์ฒ๋ฆฌํ๋ค.
์๋์ผ๋ก ์์ฑํ ๋ค๋ฆฌ ๊ธธ์ด๋ฅผ ์
๋ ฅ ๋ฐ๋๋ค. 3 ์ด์ 20 ์ดํ์ ์ซ์๋ฅผ ์
๋ ฅํ ์ ์์ผ๋ฉฐ ์ฌ๋ฐ๋ฅธ ๊ฐ์ด ์๋๋ฉด ์์ธ ์ฒ๋ฆฌํ๋ค.
๋งค ๋ผ์ด๋๋ง๋ค ํ๋ ์ด์ด๊ฐ ์ด๋ํ ์นธ์ ์
๋ ฅ ๋ฐ๋๋ค. U(์ ์นธ)์ D(์๋ ์นธ) ์ค ํ๋์ ๋ฌธ์๋ฅผ ์
๋ ฅํ ์ ์์ผ๋ฉฐ ์ฌ๋ฐ๋ฅธ ๊ฐ์ด ์๋๋ฉด ์์ธ ์ฒ๋ฆฌํ๋ค.
๊ฒ์ ์ฌ์์/์ข
๋ฃ ์ฌ๋ถ๋ฅผ ์
๋ ฅ ๋ฐ๋๋ค. R(์ฌ์์)๊ณผ Q(์ข
๋ฃ) ์ค ํ๋์ ๋ฌธ์๋ฅผ ์
๋ ฅํ ์ ์์ผ๋ฉฐ ์ฌ๋ฐ๋ฅธ ๊ฐ์ด ์๋๋ฉด ์์ธ ์ฒ๋ฆฌํ๋ค.
๋ค๋ฆฌ ๊ฑด๋๊ธฐ ๊ฒ์์ ์์ํฉ๋๋ค.
์ต์ข
๊ฒ์ ๊ฒฐ๊ณผ
[ O | | ]
[ | O | O ]
๊ฒ์ ์ฑ๊ณต ์ฌ๋ถ: ์ฑ๊ณต
์ด ์๋ํ ํ์: 2
์ฌ์ฉ์๊ฐ ์ด๋ํ ๋๋ง๋ค ๋ค๋ฆฌ ๊ฑด๋๊ธฐ ๊ฒฐ๊ณผ์ ์ถ๋ ฅ ํ์์ ์คํ ๊ฒฐ๊ณผ ์์๋ฅผ ์ฐธ๊ณ ํ๋ค.
์ด๋ํ ์ ์๋ ์นธ์ ์ ํํ ๊ฒฝ์ฐ O ํ์
์ด๋ํ ์ ์๋ ์นธ์ ์ ํํ ๊ฒฝ์ฐ X ํ์
์ ํํ์ง ์์ ์นธ์ ๊ณต๋ฐฑ ํ์นธ์ผ๋ก ํ์
๋ค๋ฆฌ์ ์์์ [, ๋ค๋ฆฌ์ ๋์ ]์ผ๋ก ํ์
๋ค๋ฆฌ ์นธ์ ๊ตฌ๋ถ์ |(์๋ค ๊ณต๋ฐฑ ํฌํจ) ๋ฌธ์์ด๋ก ๊ตฌ๋ถ
ํ์ฌ๊น์ง ๊ฑด๋ ๋ค๋ฆฌ๋ฅผ ๋ชจ๋ ์ถ๋ ฅ
์์ธ ์ํฉ ์ ์๋ฌ ๋ฌธ๊ตฌ๋ฅผ ์ถ๋ ฅํด์ผ ํ๋ค. ๋จ, ์๋ฌ ๋ฌธ๊ตฌ๋ "[ERROR]"๋ก ์์ํด์ผ ํ๋ค.
[ERROR] ๋ค๋ฆฌ ๊ธธ์ด๋ 3๋ถํฐ 20 ์ฌ์ด์ ์ซ์์ฌ์ผ ํ๋ค.
๋ค๋ฆฌ ๊ฑด๋๊ธฐ ๊ฒ์์ ์์ํฉ๋๋ค.
๋ค๋ฆฌ์ ๊ธธ์ด๋ฅผ ์
๋ ฅํด์ฃผ์ธ์.
3
์ด๋ํ ์นธ์ ์ ํํด์ฃผ์ธ์. (์: U, ์๋: D)
U
[ O ]
[ ]
์ด๋ํ ์นธ์ ์ ํํด์ฃผ์ธ์. (์: U, ์๋: D)
D
[ O | ]
[ | X ]
๊ฒ์์ ๋ค์ ์๋ํ ์ง ์ฌ๋ถ๋ฅผ ์
๋ ฅํด์ฃผ์ธ์. (์ฌ์๋: R, ์ข
๋ฃ: Q)
R
์ด๋ํ ์นธ์ ์ ํํด์ฃผ์ธ์. (์: U, ์๋: D)
U
[ O ]
[ ]
์ด๋ํ ์นธ์ ์ ํํด์ฃผ์ธ์. (์: U, ์๋: D)
D
[ O | ]
[ | O ]
์ด๋ํ ์นธ์ ์ ํํด์ฃผ์ธ์. (์: U, ์๋: D)
D
[ O | | ]
[ | O | O ]
์ต์ข
๊ฒ์ ๊ฒฐ๊ณผ
[ O | | ]
[ | O | O ]
๊ฒ์ ์ฑ๊ณต ์ฌ๋ถ: ์ฑ๊ณต
์ด ์๋ํ ํ์: 2
๋ค๋ฆฌ ๊ฑด๋๊ธฐ ๊ฒ์์ ์์ํฉ๋๋ค.
๋ค๋ฆฌ์ ๊ธธ์ด๋ฅผ ์
๋ ฅํด์ฃผ์ธ์.
3
์ด๋ํ ์นธ์ ์ ํํด์ฃผ์ธ์. (์: U, ์๋: D)
U
[ O ]
[ ]
์ด๋ํ ์นธ์ ์ ํํด์ฃผ์ธ์. (์: U, ์๋: D)
D
[ O | ]
[ | X ]
๊ฒ์์ ๋ค์ ์๋ํ ์ง ์ฌ๋ถ๋ฅผ ์
๋ ฅํด์ฃผ์ธ์. (์ฌ์๋: R, ์ข
๋ฃ: Q)
Q
์ต์ข
๊ฒ์ ๊ฒฐ๊ณผ
[ O | ]
[ | X ]
๊ฒ์ ์ฑ๊ณต ์ฌ๋ถ: ์คํจ
์ด ์๋ํ ํ์: 1
๐ฏ ํ๋ก๊ทธ๋๋ฐ ์๊ตฌ ์ฌํญ
Kotlin 1.6.20์์ ์คํ ๊ฐ๋ฅํด์ผ ํ๋ค. Kotlin 1.6.20์์ ์ ์์ ์ผ๋ก ๋์ํ์ง ์์ ๊ฒฝ์ฐ 0์ ์ฒ๋ฆฌํ๋ค.
Java ์ฝ๋๊ฐ ์๋ Kotlin ์ฝ๋๋ก๋ง ๊ตฌํํด์ผ ํ๋ค.
ํ๋ก๊ทธ๋จ ์คํ์ ์์์ ์ Application์ main()์ด๋ค.
build.gradle(.kts)์ ๋ณ๊ฒฝํ ์ ์๊ณ , ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค.
Kotlin ์ฝ๋ ์ปจ๋ฒค์
๊ฐ์ด๋๋ฅผ ์ค์ํ๋ฉฐ ํ๋ก๊ทธ๋๋ฐํ๋ค.
ํ๋ก๊ทธ๋จ ์ข
๋ฃ ์ System.exit()๋ฅผ ํธ์ถํ์ง ์๋๋ค.
ํ๋ก๊ทธ๋จ ๊ตฌํ์ด ์๋ฃ๋๋ฉด ApplicationTest์ ๋ชจ๋ ํ
์คํธ๊ฐ ์ฑ๊ณตํด์ผ ํ๋ค. ํ
์คํธ๊ฐ ์คํจํ ๊ฒฝ์ฐ 0์ ์ฒ๋ฆฌํ๋ค.
ํ๋ก๊ทธ๋๋ฐ ์๊ตฌ ์ฌํญ์์ ๋ฌ๋ฆฌ ๋ช
์ํ์ง ์๋ ํ ํ์ผ, ํจํค์ง ์ด๋ฆ์ ์์ ํ๊ฑฐ๋ ์ด๋ํ์ง ์๋๋ค.
indent(์ธ๋ดํธ, ๋ค์ฌ์ฐ๊ธฐ) depth๋ฅผ 3์ด ๋์ง ์๋๋ก ๊ตฌํํ๋ค. 2๊น์ง๋ง ํ์ฉํ๋ค.
์๋ฅผ ๋ค์ด while๋ฌธ ์์ if๋ฌธ์ด ์์ผ๋ฉด ๋ค์ฌ์ฐ๊ธฐ๋ 2์ด๋ค.
ํํธ: indent(์ธ๋ดํธ, ๋ค์ฌ์ฐ๊ธฐ) depth๋ฅผ ์ค์ด๋ ์ข์ ๋ฐฉ๋ฒ์ ํจ์(๋๋ ๋ฉ์๋)๋ฅผ ๋ถ๋ฆฌํ๋ฉด ๋๋ค.
ํจ์(๋๋ ๋ฉ์๋)๊ฐ ํ ๊ฐ์ง ์ผ๋ง ํ๋๋ก ์ต๋ํ ์๊ฒ ๋ง๋ค์ด๋ผ.
JUnit 5์ AssertJ๋ฅผ ์ด์ฉํ์ฌ ๋ณธ์ธ์ด ์ ๋ฆฌํ ๊ธฐ๋ฅ ๋ชฉ๋ก์ด ์ ์ ๋์ํจ์ ํ
์คํธ ์ฝ๋๋ก ํ์ธํ๋ค.
else๋ฅผ ์ง์ํ๋ค.
ํํธ: if ์กฐ๊ฑด์ ์์ ๊ฐ์ returnํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ๋ฉด else๋ฅผ ์ฌ์ฉํ์ง ์์๋ ๋๋ค.
๋๋ก๋ if/else, when๋ฌธ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ๊น๋ํด ๋ณด์ผ ์ ์๋ค. ์ด๋ ๊ฒฝ์ฐ์ ์ฐ๋ ๊ฒ์ด ์ ์ ํ ์ง ์ค์ค๋ก ๊ณ ๋ฏผํด ๋ณธ๋ค.
๋๋ฉ์ธ ๋ก์ง์ ๋จ์ ํ
์คํธ๋ฅผ ๊ตฌํํด์ผ ํ๋ค. ๋จ, UI(println, readLine ๋ฑ) ๋ก์ง์ ์ ์ธํ๋ค.
ํต์ฌ ๋ก์ง์ ๊ตฌํํ๋ ์ฝ๋์ UI๋ฅผ ๋ด๋นํ๋ ๋ก์ง์ ๋ถ๋ฆฌํด ๊ตฌํํ๋ค.
ํจ์(๋๋ ๋ฉ์๋)์ ๊ธธ์ด๊ฐ 10๋ผ์ธ์ ๋์ด๊ฐ์ง ์๋๋ก ๊ตฌํํ๋ค.
ํจ์(๋๋ ๋ฉ์๋)๊ฐ ํ ๊ฐ์ง ์ผ๋ง ์ ํ๋๋ก ๊ตฌํํ๋ค.
๋ฉ์๋์ ํ๋ผ๋ฏธํฐ ๊ฐ์๋ ์ต๋ 3๊ฐ๊น์ง๋ง ํ์ฉํ๋ค.
์๋ ์๋ InputView, OutputView, BridgeGame, BridgeMaker ํด๋์ค์ ์๊ตฌ์ฌํญ์ ์ฐธ๊ณ ํ์ฌ ๊ตฌํํ๋ค.
๊ฐ ํด๋์ค์ ์ ์ฝ ์ฌํญ์ ์๋ ํด๋์ค๋ณ ์ธ๋ถ ์ค๋ช
์ ์ฐธ๊ณ ํ๋ค.
์ด์ธ ํ์ํ ํด๋์ค(๋๋ ๊ฐ์ฒด)์ ๋ฉ์๋๋ ์์ ๋กญ๊ฒ ๊ตฌํํ ์ ์๋ค.
InputView ํด๋์ค์์๋ง camp.nextstep.edu.missionutils.Console ์ readLine() ๋ฉ์๋๋ฅผ ์ด์ฉํด ์ฌ์ฉ์์ ์
๋ ฅ์ ๋ฐ์ ์ ์๋ค.
BridgeGame ํด๋์ค์์ InputView, OutputView ๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค.
์ ๊ณต๋ InputView ํด๋์ค๋ฅผ ํ์ฉํด ๊ตฌํํด์ผ ํ๋ค.
InputView์ ํจํค์ง๋ ๋ณ๊ฒฝํ ์ ์๋ค.
InputView์ ๋ฉ์๋์ ์๊ทธ๋์ฒ(์ธ์, ์ด๋ฆ)์ ๋ฐํ ํ์
์ ๋ณ๊ฒฝํ ์ ์๋ค.
์ฌ์ฉ์ ๊ฐ ์
๋ ฅ์ ์ํด ํ์ํ ๋ฉ์๋๋ฅผ ์ถ๊ฐํ ์ ์๋ค.
class InputView {
fun readBridgeSize (): Int {
return 0
}
fun readMoving (): String {
return " "
}
fun readGameCommand (): String {
return " "
}
}
์ ๊ณต๋ OutputView ํด๋์ค๋ฅผ ํ์ฉํด ๊ตฌํํด์ผ ํ๋ค.
OutputView์ ํจํค์ง๋ ๋ณ๊ฒฝํ ์ ์๋ค.
OutputView์ ๋ฉ์๋์ ์ด๋ฆ์ ๋ณ๊ฒฝํ ์ ์๊ณ , ์ธ์์ ๋ฐํ ํ์
์ ํ์์ ๋ฐ๋ผ ์ถ๊ฐํ๊ฑฐ๋ ๋ณ๊ฒฝํ ์ ์๋ค.
๊ฐ ์ถ๋ ฅ์ ์ํด ํ์ํ ๋ฉ์๋๋ฅผ ์ถ๊ฐํ ์ ์๋ค.
class OutputView {
fun printMap () {}
fun printResult () {}
}
์ ๊ณต๋ BridgeGame ํด๋์ค๋ฅผ ํ์ฉํด ๊ตฌํํด์ผ ํ๋ค.
BridgeGame์ ํ๋(์ธ์คํด์ค ๋ณ์)๋ฅผ ์ถ๊ฐํ ์ ์๋ค.
BridgeGame์ ํจํค์ง๋ ๋ณ๊ฒฝํ ์ ์๋ค.
BridgeGame์ ๋ฉ์๋์ ์ด๋ฆ์ ๋ณ๊ฒฝํ ์ ์๊ณ , ์ธ์์ ๋ฐํ ํ์
์ ํ์์ ๋ฐ๋ผ ์ถ๊ฐํ๊ฑฐ๋ ๋ณ๊ฒฝํ ์ ์๋ค.
๊ฒ์ ์งํ์ ์ํด ํ์ํ ๋ฉ์๋๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ๋ณ๊ฒฝ ํ ์ ์๋ค.
class BridgeGame {
fun move () {}
fun retry () {}
}
์ ๊ณต๋ BridgeMaker ํด๋์ค๋ฅผ ํ์ฉํด ๊ตฌํํด์ผ ํ๋ค.
BridgeMaker์ ํ๋(์ธ์คํด์ค ๋ณ์)๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค.
BridgeMaker์ ๋ฉ์๋์ ์๊ทธ๋์ฒ(์ธ์, ์ด๋ฆ)์ ๋ฐํ ํ์
์ ๋ณ๊ฒฝํ ์ ์๋ค.
class BridgeMaker (private val bridgeNumberGenerator : BridgeNumberGenerator ) {
fun makeBridge (size : Int ): List <String > {
return listOf ()
}
}
BridgeRandomNumberGenerator ํด๋์ค
Random ๊ฐ ์ถ์ถ์ ์ ๊ณต๋ bridge.BridgeRandomNumberGenerator์ generate()๋ฅผ ํ์ฉํ๋ค.
BridgeRandomNumberGenerator, BridgeNumberGenerator ํด๋์ค์ ์ฝ๋ ๋ฐ ํจํค์ง๋ ๋ณ๊ฒฝํ ์ ์๋ค.
๋ค๋ฆฌ ์นธ์ ์์ฑํ๊ธฐ ์ํ Random ๊ฐ์ ์๋์ ๊ฐ์ด ์ถ์ถํ๋ค.
val number = bridgeNumberGenerator.generate()
camp.nextstep.edu.missionutils ์์ ์ ๊ณตํ๋ Console API๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํํด์ผ ํ๋ค.
์ฌ์ฉ์๊ฐ ์
๋ ฅํ๋ ๊ฐ์ camp.nextstep.edu.missionutils.Console์ readLine()์ ํ์ฉํ๋ค.
โ๏ธ ๊ณผ์ ์งํ ์๊ตฌ ์ฌํญ
๋ฏธ์
์ kotlin-bridge ์ ์ฅ์๋ฅผ Fork & Cloneํด ์์ํ๋ค.
๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ docs/README.md์ ๊ตฌํํ ๊ธฐ๋ฅ ๋ชฉ๋ก์ ์ ๋ฆฌ ํด ์ถ๊ฐํ๋ค.
Git์ ์ปค๋ฐ ๋จ์๋ ์ ๋จ๊ณ์์ docs/README.md์ ์ ๋ฆฌํ ๊ธฐ๋ฅ ๋ชฉ๋ก ๋จ์ ๋ก ์ถ๊ฐํ๋ค.
๊ณผ์ ์งํ ๋ฐ ์ ์ถ ๋ฐฉ๋ฒ์ ํ๋ฆฌ์ฝ์ค ๊ณผ์ ์ ์ถ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ๋ค.