Skip to content

Latest commit

ย 

History

History
167 lines (123 loc) ยท 7.02 KB

File metadata and controls

167 lines (123 loc) ยท 7.02 KB

๋ฏธ์…˜ - ์žํŒ๊ธฐ

๐Ÿ” ์ง„ํ–‰๋ฐฉ์‹

  • ๋ฏธ์…˜์€ ๊ธฐ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์š”๊ตฌ์‚ฌํ•ญ, ๊ณผ์ œ ์ง„ํ–‰ ์š”๊ตฌ์‚ฌํ•ญ ์„ธ ๊ฐ€์ง€๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.
  • ์„ธ ๊ฐœ์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋งŒ์กฑํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•œ๋‹ค. ํŠนํžˆ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์ „์— ๊ธฐ๋Šฅ ๋ชฉ๋ก์„ ๋งŒ๋“ค๊ณ , ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ ์ปค๋ฐ‹ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•œ๋‹ค.
  • ๊ธฐ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ์— ๊ธฐ์žฌ๋˜์ง€ ์•Š์€ ๋‚ด์šฉ์€ ์Šค์Šค๋กœ ํŒ๋‹จํ•˜์—ฌ ๊ตฌํ˜„ํ•œ๋‹ค.

โœ‰๏ธ ๋ฏธ์…˜ ์ œ์ถœ ๋ฐฉ๋ฒ•

  • ๋ฏธ์…˜ ๊ตฌํ˜„์„ ์™„๋ฃŒํ•œ ํ›„ GitHub์„ ํ†ตํ•ด ์ œ์ถœํ•ด์•ผ ํ•œ๋‹ค.
  • GitHub์— ๋ฏธ์…˜์„ ์ œ์ถœํ•œ ํ›„ ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค ์ง€์› ํ”Œ๋žซํผ ์— ์ ‘์†ํ•˜์—ฌ ํ”„๋ฆฌ์ฝ”์Šค ๊ณผ์ œ๋ฅผ ์ œ์ถœํ•œ๋‹ค.
    • ์ž์„ธํ•œ ๋ฐฉ๋ฒ•์€ ๋งํฌ ๋ฅผ ์ฐธ๊ณ ํ•œ๋‹ค.
    • Pull Request๋งŒ ๋ณด๋‚ด๊ณ , ์ง€์› ํ”Œ๋žซํผ์—์„œ ๊ณผ์ œ๋ฅผ ์ œ์ถœํ•˜์ง€ ์•Š์œผ๋ฉด ์ตœ์ข… ์ œ์ถœํ•˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๋‹ˆ ์ฃผ์˜ํ•œ๋‹ค.

โœ”๏ธ ๊ณผ์ œ ์ œ์ถœ ์ „ ์ฒดํฌ๋ฆฌ์ŠคํŠธ - 0์  ๋ฐฉ์ง€

  • ํ„ฐ๋ฏธ๋„์—์„œ java -version์„ ์‹คํ–‰ํ•ด ์ž๋ฐ” 8์ธ์ง€ ํ™•์ธํ•œ๋‹ค. ๋˜๋Š” Eclipse, IntelliJ IDEA์™€ ๊ฐ™์€ IDE์˜ ์ž๋ฐ” 8๋กœ ์‹คํ–‰ํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
  • ํ„ฐ๋ฏธ๋„์—์„œ ๋งฅ ๋˜๋Š” ๋ฆฌ๋ˆ…์Šค ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ ./gradlew clean test, ์œˆ๋„์šฐ ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ gradlew.bat clean test ๋ช…๋ น์„ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ๋ชจ๋“  ํ…Œ์ŠคํŠธ๊ฐ€ ์•„๋ž˜์™€ ๊ฐ™์ด ํ†ต๊ณผํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
BUILD SUCCESSFUL in 0s

๐Ÿš€ ๊ธฐ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ

๋ฐ˜ํ™˜๋˜๋Š” ๋™์ „์ด ์ตœ์†Œํ•œ์ด ๋˜๋Š” ์žํŒ๊ธฐ๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค.

  • ์žํŒ๊ธฐ๊ฐ€ ๋ณด์œ ํ•˜๊ณ  ์žˆ๋Š” ๊ธˆ์•ก์œผ๋กœ ๋™์ „์„ ๋ฌด์ž‘์œ„๋กœ ์ƒ์„ฑํ•œ๋‹ค.
    • ํˆฌ์ž… ๊ธˆ์•ก์œผ๋กœ๋Š” ๋™์ „์„ ์ƒ์„ฑํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ์ž”๋ˆ์„ ๋Œ๋ ค์ค„ ๋•Œ ํ˜„์žฌ ๋ณด์œ ํ•œ ์ตœ์†Œ ๊ฐœ์ˆ˜์˜ ๋™์ „์œผ๋กœ ์ž”๋ˆ์„ ๋Œ๋ ค์ค€๋‹ค.
  • ์ง€ํ๋ฅผ ์ž”๋ˆ์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.
  • ์ƒํ’ˆ๋ช…, ๊ฐ€๊ฒฉ, ์ˆ˜๋Ÿ‰์„ ์ž…๋ ฅํ•˜์—ฌ ์ƒํ’ˆ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์ƒํ’ˆ ๊ฐ€๊ฒฉ์€ 100์›๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ฉฐ, 10์›์œผ๋กœ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ ธ์•ผ ํ•œ๋‹ค.
  • ์‚ฌ์šฉ์ž๊ฐ€ ํˆฌ์ž…ํ•œ ๊ธˆ์•ก์œผ๋กœ ์ƒํ’ˆ์„ ๊ตฌ๋งคํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋‚จ์€ ๊ธˆ์•ก์ด ์ƒํ’ˆ์˜ ์ตœ์ € ๊ฐ€๊ฒฉ๋ณด๋‹ค ์ ๊ฑฐ๋‚˜, ๋ชจ๋“  ์ƒํ’ˆ์ด ์†Œ์ง„๋œ ๊ฒฝ์šฐ ๋ฐ”๋กœ ์ž”๋ˆ์„ ๋Œ๋ ค์ค€๋‹ค.
  • ์ž”๋ˆ์„ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์ž”๋ˆ์œผ๋กœ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธˆ์•ก๋งŒ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
    • ๋ฐ˜ํ™˜๋˜์ง€ ์•Š์€ ๊ธˆ์•ก์€ ์žํŒ๊ธฐ์— ๋‚จ๋Š”๋‹ค.
  • ์‚ฌ์šฉ์ž๊ฐ€ ์ž˜๋ชป๋œ ๊ฐ’์„ ์ž…๋ ฅํ•  ๊ฒฝ์šฐ IllegalArgumentException๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ณ , "[ERROR]"๋กœ ์‹œ์ž‘ํ•˜๋Š” ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅ ํ›„ ํ•ด๋‹น ๋ถ€๋ถ„๋ถ€ํ„ฐ ๋‹ค์‹œ ์ž…๋ ฅ์„ ๋ฐ›๋Š”๋‹ค.
  • ์•„๋ž˜์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹คํ–‰ ๊ฒฐ๊ณผ ์˜ˆ์‹œ์™€ ๋™์ผํ•˜๊ฒŒ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์ด ์ด๋ฃจ์–ด์ ธ์•ผ ํ•œ๋‹ค.

โœ๐Ÿป ์ž…์ถœ๋ ฅ ์š”๊ตฌ์‚ฌํ•ญ

โŒจ๏ธ ์ž…๋ ฅ

  • ์ƒํ’ˆ๋ช…, ๊ฐ€๊ฒฉ, ์ˆ˜๋Ÿ‰์€ ์‰ผํ‘œ๋กœ, ๊ฐœ๋ณ„ ์ƒํ’ˆ์€ ๋Œ€๊ด„ํ˜ธ([])๋กœ ๋ฌถ์–ด ์„ธ๋ฏธ์ฝœ๋ก (;)์œผ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค.
[์ฝœ๋ผ,1500,20];[์‚ฌ์ด๋‹ค,1000,10]

๐Ÿ–ฅ ์ถœ๋ ฅ

  • ์žํŒ๊ธฐ๊ฐ€ ๋ณด์œ ํ•œ ๋™์ „
500์› - 0๊ฐœ
100์› - 4๊ฐœ
50์› - 1๊ฐœ
10์› - 0๊ฐœ
  • ์ž”๋ˆ์€ ๋ฐ˜ํ™˜๋œ ๋™์ „๋งŒ ์ถœ๋ ฅํ•œ๋‹ค.
100์› - 4๊ฐœ
50์› - 1๊ฐœ
  • ์˜ˆ์™ธ ์ƒํ™ฉ ์‹œ ์—๋Ÿฌ ๋ฌธ๊ตฌ๋ฅผ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค. ๋‹จ, ์—๋Ÿฌ ๋ฌธ๊ตฌ๋Š” [ERROR]๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•œ๋‹ค.
[ERROR] ๊ธˆ์•ก์€ ์ˆซ์ž์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ป ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹คํ–‰ ๊ฒฐ๊ณผ ์˜ˆ์‹œ

์žํŒ๊ธฐ๊ฐ€ ๋ณด์œ ํ•˜๊ณ  ์žˆ๋Š” ๊ธˆ์•ก์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”.
450

์žํŒ๊ธฐ๊ฐ€ ๋ณด์œ ํ•œ ๋™์ „
500์› - 0๊ฐœ
100์› - 4๊ฐœ
50์› - 1๊ฐœ
10์› - 0๊ฐœ

์ƒํ’ˆ๋ช…๊ณผ ๊ฐ€๊ฒฉ, ์ˆ˜๋Ÿ‰์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”.
[์ฝœ๋ผ,1500,20];[์‚ฌ์ด๋‹ค,1000,10]

ํˆฌ์ž… ๊ธˆ์•ก์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”.
3000

ํˆฌ์ž… ๊ธˆ์•ก: 3000์›
๊ตฌ๋งคํ•  ์ƒํ’ˆ๋ช…์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”.
์ฝœ๋ผ

ํˆฌ์ž… ๊ธˆ์•ก: 1500์›
๊ตฌ๋งคํ•  ์ƒํ’ˆ๋ช…์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”.
์‚ฌ์ด๋‹ค

ํˆฌ์ž… ๊ธˆ์•ก: 500์›
์ž”๋ˆ
100์› - 4๊ฐœ
50์› - 1๊ฐœ

๐ŸŽฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์š”๊ตฌ์‚ฌํ•ญ

  • ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ์‹œ์ž‘์ ์€ Application์˜ main()์ด๋‹ค.
  • JDK 8 ๋ฒ„์ „์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค. JDK 8์—์„œ ์ •์ƒ ๋™์ž‘ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ 0์  ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • ์ž๋ฐ” ์ฝ”๋“œ ์ปจ๋ฒค์…˜์„ ์ง€ํ‚ค๋ฉด์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•œ๋‹ค.
  • indent(์ธ๋ดํŠธ, ๋“ค์—ฌ์“ฐ๊ธฐ) depth๋ฅผ 3์ด ๋„˜์ง€ ์•Š๋„๋ก ๊ตฌํ˜„ํ•œ๋‹ค. 2๊นŒ์ง€๋งŒ ํ—ˆ์šฉํ•œ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด while๋ฌธ ์•ˆ์— if๋ฌธ์ด ์žˆ์œผ๋ฉด ๋“ค์—ฌ์“ฐ๊ธฐ๋Š” 2์ด๋‹ค.
    • ํžŒํŠธ: indent(์ธ๋ดํŠธ, ๋“ค์—ฌ์“ฐ๊ธฐ) depth๋ฅผ ์ค„์ด๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์€ ํ•จ์ˆ˜(๋˜๋Š” ๋ฉ”์†Œ๋“œ)๋ฅผ ๋ถ„๋ฆฌํ•˜๋ฉด ๋œ๋‹ค.
  • 3ํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ์“ฐ์ง€ ์•Š๋Š”๋‹ค.
  • ํ•จ์ˆ˜(๋˜๋Š” ๋ฉ”์†Œ๋“œ)์˜ ๊ธธ์ด๊ฐ€ 15๋ผ์ธ์„ ๋„˜์–ด๊ฐ€์ง€ ์•Š๋„๋ก ๊ตฌํ˜„ํ•œ๋‹ค.
    • ํ•จ์ˆ˜(๋˜๋Š” ๋ฉ”์†Œ๋“œ)๊ฐ€ ํ•œ ๊ฐ€์ง€ ์ผ๋งŒ ์ž˜ ํ•˜๋„๋ก ๊ตฌํ˜„ํ•œ๋‹ค.
  • else ์˜ˆ์•ฝ์–ด๋ฅผ ์“ฐ์ง€ ์•Š๋Š”๋‹ค.
    • ํžŒํŠธ: if ์กฐ๊ฑด์ ˆ์—์„œ ๊ฐ’์„ returnํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•˜๋ฉด else๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.
    • else๋ฅผ ์“ฐ์ง€ ๋ง๋ผ๊ณ  ํ•˜๋‹ˆ switch/case๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”๋ฐ switch/case๋„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์š”๊ตฌ์‚ฌํ•ญ์—์„œ ๋ณ„๋„๋กœ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€ ์•ˆ๋‚ด๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ํŒŒ์ผ ์ˆ˜์ •๊ณผ ํŒจํ‚ค์ง€ ์ด๋™์„ ์ž์œ ๋กญ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์š”๊ตฌ์‚ฌํ•ญ - Coin

  • Coin ํด๋ž˜์Šค๋ฅผ ํ™œ์šฉํ•ด ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค.
  • ํ•„๋“œ(์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜)์ธ amount์˜ ์ ‘๊ทผ ์ œ์–ด์ž private์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.
public enum Coin {
    COIN_500(500),
    COIN_100(100),
    COIN_50(50),
    COIN_10(10);

    private final int amount;

    Coin(final int amount) {
        this.amount = amount;
    }

    // ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๊ตฌํ˜„
}

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์š”๊ตฌ์‚ฌํ•ญ - Randoms, Console

  • JDK์—์„œ ๊ธฐ๋ณธ ์ œ๊ณตํ•˜๋Š” Random, Scanner API ๋Œ€์‹  camp.nextstep.edu.missionutils์—์„œ ์ œ๊ณตํ•˜๋Š” Randoms, Console API๋ฅผ ํ™œ์šฉํ•ด ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค.
    • Random ๊ฐ’ ์ถ”์ถœ์€ camp.nextstep.edu.missionutils.Randoms์˜ pickNumberInList()๋ฅผ ํ™œ์šฉํ•œ๋‹ค.
    • ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•˜๋Š” ๊ฐ’์€ camp.nextstep.edu.missionutils.Console์˜ readLine()์„ ํ™œ์šฉํ•œ๋‹ค.
  • ํ”„๋กœ๊ทธ๋žจ ๊ตฌํ˜„์„ ์™„๋ฃŒํ–ˆ์„ ๋•Œ src/test/java ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ApplicationTest์— ์žˆ๋Š” ๋ชจ๋“  ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ์„ฑ๊ณตํ•ด์•ผ ํ•œ๋‹ค. ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ•  ๊ฒฝ์šฐ 0์  ์ฒ˜๋ฆฌํ•œ๋‹ค.

๐Ÿ“ˆ ๊ณผ์ œ ์ง„ํ–‰ ์š”๊ตฌ์‚ฌํ•ญ

  • ๋ฏธ์…˜์€ java-vendingmachine-precourse ์ €์žฅ์†Œ๋ฅผ Fork/Cloneํ•ด ์‹œ์ž‘ํ•œ๋‹ค.
  • ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์ „์— java-vendingmachine-precourse/docs/README.md ํŒŒ์ผ์— ๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ ๋ชฉ๋ก์„ ์ •๋ฆฌํ•ด ์ถ”๊ฐ€ํ•œ๋‹ค.
  • Git์˜ ์ปค๋ฐ‹ ๋‹จ์œ„๋Š” ์•ž ๋‹จ๊ณ„์—์„œ README.md ํŒŒ์ผ์— ์ •๋ฆฌํ•œ ๊ธฐ๋Šฅ ๋ชฉ๋ก ๋‹จ์œ„๋กœ ์ถ”๊ฐ€ํ•œ๋‹ค.
  • ๊ณผ์ œ ์ง„ํ–‰ ๋ฐ ์ œ์ถœ ๋ฐฉ๋ฒ•์€ ํ”„๋ฆฌ์ฝ”์Šค ๊ณผ์ œ ์ œ์ถœ ๋ฌธ์„œ ๋ฅผ ์ฐธ๊ณ ํ•œ๋‹ค.