Git Product home page Git Product logo

java-menu's Introduction

๋ฏธ์…˜ - ์ ์‹ฌ ๋ฉ”๋‰ด ์ถ”์ฒœ

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

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

๐Ÿ“ฎ ๋ฏธ์…˜ ์ œ์ถœ ๋ฐฉ๋ฒ•

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

๐Ÿšจ ๊ณผ์ œ ์ œ์ถœ ์ „ ์ฒดํฌ ๋ฆฌ์ŠคํŠธ - 0์  ๋ฐฉ์ง€

  • ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ๋ชจ๋‘ ์ •์ƒ์ ์œผ๋กœ ํ–ˆ๋”๋ผ๋„ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋ช…์‹œ๋œ ์ถœ๋ ฅ๊ฐ’ ํ˜•์‹์„ ์ง€ํ‚ค์ง€ ์•Š์„ ๊ฒฝ์šฐ 0์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ์™„๋ฃŒํ•œ ๋’ค ์•„๋ž˜ ๊ฐ€์ด๋“œ์— ๋”ฐ๋ผ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ๋ชจ๋“  ํ…Œ์ŠคํŠธ๊ฐ€ ์„ฑ๊ณตํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
  • ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ•  ๊ฒฝ์šฐ 0์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๋ฏ€๋กœ, ๋ฐ˜๋“œ์‹œ ํ™•์ธ ํ›„ ์ œ์ถœํ•œ๋‹ค.

ํ…Œ์ŠคํŠธ ์‹คํ–‰ ๊ฐ€์ด๋“œ

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

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

ํ•œ ์ฃผ์˜ ์ ์‹ฌ ๋ฉ”๋‰ด๋ฅผ ์ถ”์ฒœํ•ด ์ฃผ๋Š” ์„œ๋น„์Šค๋‹ค.

  • ์ฝ”์น˜๋“ค์€ ์›”, ํ™”, ์ˆ˜, ๋ชฉ, ๊ธˆ์š”์ผ์— ์ ์‹ฌ ์‹์‚ฌ๋ฅผ ๊ฐ™์ด ํ•œ๋‹ค.
  • ๋ฉ”๋‰ด๋ฅผ ์ถ”์ฒœํ•˜๋Š” ๊ณผ์ •์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์ด๋ค„์ง„๋‹ค.
    1. ์›”์š”์ผ์— ์ถ”์ฒœํ•  ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๋ฌด์ž‘์œ„๋กœ ์ •ํ•œ๋‹ค.
    2. ๊ฐ ์ฝ”์น˜๊ฐ€ ์›”์š”์ผ์— ๋จน์„ ๋ฉ”๋‰ด๋ฅผ ์ถ”์ฒœํ•œ๋‹ค.
    3. ํ™”, ์ˆ˜, ๋ชฉ, ๊ธˆ์š”์ผ์— ๋Œ€ํ•ด i, ii ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.
  • ์ฝ”์น˜์˜ ์ด๋ฆ„์€ ์ตœ์†Œ 2๊ธ€์ž, ์ตœ๋Œ€ 4๊ธ€์ž์ด๋‹ค.
  • ์ฝ”์น˜๋Š” ์ตœ์†Œ 2๋ช…, ์ตœ๋Œ€ 5๋ช…๊นŒ์ง€ ์‹์‚ฌ๋ฅผ ํ•จ๊ป˜ ํ•œ๋‹ค.
  • ๊ฐ ์ฝ”์น˜๋Š” ์ตœ์†Œ 0๊ฐœ, ์ตœ๋Œ€ 2๊ฐœ์˜ ๋ชป ๋จน๋Š” ๋ฉ”๋‰ด๊ฐ€ ์žˆ๋‹ค. (, ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์ž…๋ ฅํ•œ๋‹ค.)
    • ๋จน์ง€ ๋ชปํ•˜๋Š” ๋ฉ”๋‰ด๊ฐ€ ์—†์œผ๋ฉด ๋นˆ ๊ฐ’์„ ์ž…๋ ฅํ•œ๋‹ค.
    • ์ถ”์ฒœ์„ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋‹ˆ ๊ณ ๋ คํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.
  • ํ•œ ์ฃผ์— ๊ฐ™์€ ์นดํ…Œ๊ณ ๋ฆฌ๋Š” ์ตœ๋Œ€ 2ํšŒ๊นŒ์ง€๋งŒ ๊ณ ๋ฅผ ์ˆ˜ ์žˆ๋‹ค.
  • ๊ฐ ์ฝ”์น˜์—๊ฒŒ ํ•œ ์ฃผ์— ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ๋ฉ”๋‰ด๋ฅผ ์ถ”์ฒœํ•ด์•ผ ํ•œ๋‹ค.
    • ์˜ˆ์‹œ)
      • ๊ตฌ๊ตฌ: ๋น„๋น”๋ฐฅ, ๊น€์น˜์ฐŒ๊ฐœ, ์Œˆ๋ฐฅ, ๊ทœ๋™, ์šฐ๋™ โ†’ ํ•œ์‹์„ 3ํšŒ ๋จน์œผ๋ฏ€๋กœ ๋ถˆ๊ฐ€๋Šฅ
      • ํ† ๋ฏธ: ๋น„๋น”๋ฐฅ, ๋น„๋น”๋ฐฅ, ๊ทœ๋™, ์šฐ๋™, ๋ณถ์Œ๋ฉด โ†’ ํ•œ ์ฝ”์น˜๊ฐ€ ๊ฐ™์€ ๋ฉ”๋‰ด๋ฅผ ๋จน์œผ๋ฏ€๋กœ ๋ถˆ๊ฐ€๋Šฅ
      • ์ œ์ž„์Šค: ๋น„๋น”๋ฐฅ, ๊น€์น˜์ฐŒ๊ฐœ, ์Šค์‹œ, ๊ฐ€์ธ ๋™, ์งœ์žฅ๋ฉด โ†’ ๋งค์ผ ๋‹ค๋ฅธ ๋ฉ”๋‰ด๋ฅผ ๋จน์œผ๋ฏ€๋กœ ๊ฐ€๋Šฅ
      • ํฌ์ฝ”: ๋น„๋น”๋ฐฅ, ๊น€์น˜์ฐŒ๊ฐœ, ์Šค์‹œ, ๊ฐ€์ธ ๋™, ์งœ์žฅ๋ฉด โ†’ ์ œ์ž„์Šค์™€ ๋ฉ”๋‰ด๊ฐ€ ๊ฐ™์ง€๋งŒ, ํฌ์ฝ”๋Š” ๋งค๋ฒˆ ๋‹ค๋ฅธ ๋ฉ”๋‰ด๋ฅผ ๋จน์œผ๋ฏ€๋กœ ๊ฐ€๋Šฅ
  • ๋ฉ”๋‰ด ์ถ”์ฒœ์„ ์™„๋ฃŒํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋œ๋‹ค.
  • ์‚ฌ์šฉ์ž๊ฐ€ ์ž˜๋ชป๋œ ๊ฐ’์„ ์ž…๋ ฅํ•  ๊ฒฝ์šฐ IllegalArgumentException๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ณ , "[ERROR]"๋กœ ์‹œ์ž‘ํ•˜๋Š” ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅ ํ›„ ๊ทธ ๋ถ€๋ถ„๋ถ€ํ„ฐ ์ž…๋ ฅ์„ ๋‹ค์‹œ ๋ฐ›๋Š”๋‹ค.
    • Exception์ด ์•„๋‹Œ IllegalArgumentException, IllegalStateException ๋“ฑ๊ณผ ๊ฐ™์€ ๋ช…ํ™•ํ•œ ์œ ํ˜•์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.

์ž…์ถœ๋ ฅ ์š”๊ตฌ ์‚ฌํ•ญ

์ž…๋ ฅ

  • ๋ฉ”๋‰ด ์ถ”์ฒœ์„ ๋ฐ›์„ ์ฝ”์น˜์˜ ์ด๋ฆ„์„ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ๊ฐ’์ด ์•„๋‹ˆ๋ฉด ์˜ˆ์™ธ ์ฒ˜๋ฆฌํ•œ๋‹ค.
ํ† ๋ฏธ,์ œ์ž„์Šค,ํฌ์ฝ”
  • ๊ฐ ์ฝ”์น˜๊ฐ€ ๋ชป ๋จน๋Š” ๋ฉ”๋‰ด๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.
์šฐ๋™,์Šค์‹œ

์ถœ๋ ฅ

  • ์„œ๋น„์Šค ์‹œ์ž‘ ๋ฌธ๊ตฌ
์ ์‹ฌ ๋ฉ”๋‰ด ์ถ”์ฒœ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  • ์„œ๋น„์Šค ์ข…๋ฃŒ ๋ฌธ๊ตฌ
๋ฉ”๋‰ด ์ถ”์ฒœ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.
[ ๊ตฌ๋ถ„ | ์›”์š”์ผ | ํ™”์š”์ผ | ์ˆ˜์š”์ผ | ๋ชฉ์š”์ผ | ๊ธˆ์š”์ผ ]
[ ์นดํ…Œ๊ณ ๋ฆฌ | ํ•œ์‹ | ํ•œ์‹ | ์ผ์‹ | ์ค‘์‹ | ์•„์‹œ์•ˆ ]
[ ํ† ๋ฏธ | ์Œˆ๋ฐฅ | ๊น€์น˜์ฐŒ๊ฐœ | ๋ฏธ์†Œ์‹œ๋ฃจ | ์งœ์žฅ๋ฉด | ํŒŸํƒ€์ด ]
[ ์ œ์ž„์Šค | ๋œ์žฅ์ฐŒ๊ฐœ | ๋น„๋น”๋ฐฅ | ๊ฐ€์ธ ๋™ | ํ† ๋งˆํ†  ๋‹ฌ๊ฑ€๋ณถ์Œ | ํŒŒ์ธ์• ํ”Œ ๋ณถ์Œ๋ฐฅ ]
[ ํฌ์ฝ” | ๋œ์žฅ์ฐŒ๊ฐœ | ๋ถˆ๊ณ ๊ธฐ | ํ•˜์ด๋ผ์ด์Šค | ํƒ•์ˆ˜์œก | ๋‚˜์‹œ๊ณ ๋  ]

์ถ”์ฒœ์„ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์˜ˆ์™ธ ์ƒํ™ฉ ์‹œ ์—๋Ÿฌ ๋ฌธ๊ตฌ๋ฅผ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค. ๋‹จ, ์—๋Ÿฌ ๋ฌธ๊ตฌ๋Š” "[ERROR]"๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•œ๋‹ค.
[ERROR] ์ฝ”์น˜๋Š” ์ตœ์†Œ 2๋ช… ์ด์ƒ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‹คํ–‰ ๊ฒฐ๊ณผ ์˜ˆ์‹œ

์ ์‹ฌ ๋ฉ”๋‰ด ์ถ”์ฒœ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ฝ”์น˜์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”. (, ๋กœ ๊ตฌ๋ถ„)
ํ† ๋ฏธ,์ œ์ž„์Šค,ํฌ์ฝ”

ํ† ๋ฏธ(์ด)๊ฐ€ ๋ชป ๋จน๋Š” ๋ฉ”๋‰ด๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”.
์šฐ๋™,์Šค์‹œ

์ œ์ž„์Šค(์ด)๊ฐ€ ๋ชป ๋จน๋Š” ๋ฉ”๋‰ด๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”.
๋‡จ๋ผ,์›”๋‚จ์Œˆ

ํฌ์ฝ”(์ด)๊ฐ€ ๋ชป ๋จน๋Š” ๋ฉ”๋‰ด๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”.
๋งˆํŒŒ๋‘๋ถ€,๊ณ ์ถ”์žก์ฑ„

๋ฉ”๋‰ด ์ถ”์ฒœ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.
[ ๊ตฌ๋ถ„ | ์›”์š”์ผ | ํ™”์š”์ผ | ์ˆ˜์š”์ผ | ๋ชฉ์š”์ผ | ๊ธˆ์š”์ผ ]
[ ์นดํ…Œ๊ณ ๋ฆฌ | ํ•œ์‹ | ํ•œ์‹ | ์ผ์‹ | ์ค‘์‹ | ์•„์‹œ์•ˆ ]
[ ํ† ๋ฏธ | ์Œˆ๋ฐฅ | ๊น€์น˜์ฐŒ๊ฐœ | ๋ฏธ์†Œ์‹œ๋ฃจ | ์งœ์žฅ๋ฉด | ํŒŸํƒ€์ด ]
[ ์ œ์ž„์Šค | ๋œ์žฅ์ฐŒ๊ฐœ | ๋น„๋น”๋ฐฅ | ๊ฐ€์ธ ๋™ | ํ† ๋งˆํ†  ๋‹ฌ๊ฑ€๋ณถ์Œ | ํŒŒ์ธ์• ํ”Œ ๋ณถ์Œ๋ฐฅ ]
[ ํฌ์ฝ” | ๋œ์žฅ์ฐŒ๊ฐœ | ๋ถˆ๊ณ ๊ธฐ | ํ•˜์ด๋ผ์ด์Šค | ํƒ•์ˆ˜์œก | ๋‚˜์‹œ๊ณ ๋  ]

์ถ”์ฒœ์„ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค.

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

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

์นดํ…Œ๊ณ ๋ฆฌ์™€ ๋ฉ”๋‰ด ์š”๊ตฌ ์‚ฌํ•ญ

  • ๋ฉ”๋‰ด ์ถ”์ฒœ ์„œ๋น„์Šค์—์„œ ์ถ”์ฒœํ•  ์ˆ˜ ์žˆ๋Š” ์นดํ…Œ๊ณ ๋ฆฌ์™€ ๊ฐ ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋ฉ”๋‰ด๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
์ผ์‹: ๊ทœ๋™, ์šฐ๋™, ๋ฏธ์†Œ์‹œ๋ฃจ, ์Šค์‹œ, ๊ฐ€์ธ ๋™, ์˜ค๋‹ˆ๊ธฐ๋ฆฌ, ํ•˜์ด๋ผ์ด์Šค, ๋ผ๋ฉ˜, ์˜ค์ฝ”๋…ธ๋ฏธ์•ผ๋ผ
ํ•œ์‹: ๊น€๋ฐฅ, ๊น€์น˜์ฐŒ๊ฐœ, ์Œˆ๋ฐฅ, ๋œ์žฅ์ฐŒ๊ฐœ, ๋น„๋น”๋ฐฅ, ์นผ๊ตญ์ˆ˜, ๋ถˆ๊ณ ๊ธฐ, ๋–ก๋ณถ์ด, ์ œ์œก๋ณถ์Œ
์ค‘์‹: ๊นํ’๊ธฐ, ๋ณถ์Œ๋ฉด, ๋™ํŒŒ์œก, ์งœ์žฅ๋ฉด, ์งฌ๋ฝ•, ๋งˆํŒŒ๋‘๋ถ€, ํƒ•์ˆ˜์œก, ํ† ๋งˆํ†  ๋‹ฌ๊ฑ€๋ณถ์Œ, ๊ณ ์ถ”์žก์ฑ„
์•„์‹œ์•ˆ: ํŒŸํƒ€์ด, ์นด์˜ค ํŒŸ, ๋‚˜์‹œ๊ณ ๋ , ํŒŒ์ธ์• ํ”Œ ๋ณถ์Œ๋ฐฅ, ์Œ€๊ตญ์ˆ˜, ๋˜ ์–Œ๊ฟ, ๋ฐ˜๋ฏธ, ์›”๋‚จ์Œˆ, ๋ถ„์งœ
์–‘์‹: ๋ผ์ž๋ƒ, ๊ทธ๋ผํƒฑ, ๋‡จ๋ผ, ๋ผ์Šˆ, ํ”„๋ Œ์น˜ ํ† ์ŠคํŠธ, ๋ฐ”๊ฒŒํŠธ, ์ŠคํŒŒ๊ฒŒํ‹ฐ, ํ”ผ์ž, ํŒŒ๋‹ˆ๋‹ˆ

์นดํ…Œ๊ณ ๋ฆฌ

  • ์ถ”์ฒœํ•  ์นดํ…Œ๊ณ ๋ฆฌ๋Š” camp.nextstep.edu.missionutils์—์„œ ์ œ๊ณตํ•˜๋Š” Randoms.pickNumberInRange()์—์„œ ์ƒ์„ฑํ•ด ์ค€ ๊ฐ’์„ ์ด์šฉํ•˜์—ฌ ์ •ํ•ด์•ผ ํ•œ๋‹ค.
// ์˜ˆ์‹œ ์ฝ”๋“œ. ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ์— ๋”ฐ๋ผ ๋‚œ์ˆ˜๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ๊ฐ€๊ณตํ•ด๋„ ๋œ๋‹ค.
String category = categories.get(Randoms.pickNumberInRange(1, 5));
  • ์ž„์˜๋กœ ์นดํ…Œ๊ณ ๋ฆฌ์˜ ์ˆœ์„œ ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์•ˆ ๋œ๋‹ค.
    • Randoms.pickNumberInRange()์˜ ๊ฒฐ๊ณผ๊ฐ€ 1์ด๋ฉด ์ผ์‹, 2๋ฉด ํ•œ์‹, 3์ด๋ฉด ์ค‘์‹, 4๋ฉด ์•„์‹œ์•ˆ, 5๋ฉด ์–‘์‹์„ ์ถ”์ฒœํ•ด์•ผ ํ•œ๋‹ค.
  • ์ถ”์ฒœํ•  ์ˆ˜ ์—†๋Š” ์นดํ…Œ๊ณ ๋ฆฌ์ธ ๊ฒฝ์šฐ ๋‹ค์‹œ Randoms.pickNumberInRange()๋ฅผ ํ†ตํ•ด ์ž„์˜์˜ ๊ฐ’์„ ์ƒ์„ฑํ•ด์„œ ์ถ”์ฒœํ•  ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์ •ํ•ด์•ผ ํ•œ๋‹ค.

๋ฉ”๋‰ด

  • ์ถ”์ฒœํ•  ๋ฉ”๋‰ด๋Š” ์ •ํ•ด์ง„ ์นดํ…Œ๊ณ ๋ฆฌ์— ์žˆ๋Š” ๋ฉ”๋‰ด๋ฅผ camp.nextstep.edu.missionutils์—์„œ ์ œ๊ณตํ•˜๋Š” Randoms.shuffle()์„ ํ†ตํ•ด ์ž„์˜์˜ ์ˆœ์„œ๋กœ ์„ž์€ ํ›„, ์ฒซ ๋ฒˆ์งธ ๊ฐ’์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
    • ์นดํ…Œ๊ณ ๋ฆฌ์— ํฌํ•จ๋˜๋Š” ๋ฉ”๋‰ด ๋ชฉ๋ก์„ List<String> ํ˜•ํƒœ๋กœ ์ค€๋น„ํ•œ๋‹ค.
String menu = Randoms.shuffle(menus).get(0);
  • ์ž„์˜๋กœ ๋ฉ”๋‰ด์˜ ์ˆœ์„œ ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์•ˆ ๋œ๋‹ค.
    • Randoms.shuffle() ๋ฉ”์„œ๋“œ์˜ ์ธ์ž๋กœ ์ „๋‹ฌ๋˜๋Š” ๋ฉ”๋‰ด ๋ฐ์ดํ„ฐ๋Š”, ์ตœ์ดˆ์— ์ œ๊ณตํ•œ ๋ชฉ๋ก์„ ๊ทธ๋Œ€๋กœ ์ „๋‹ฌํ•ด์•ผ ํ•œ๋‹ค.
      • ์ฝ”์น˜์—๊ฒŒ ์ถ”์ฒœํ•  ๋ฉ”๋‰ด๋ฅผ ์ •ํ•  ๋•Œ ์ด๋ฏธ ์ถ”์ฒœํ•œ ๋ฉ”๋‰ด, ๋จน์ง€ ๋ชปํ•˜๋Š” ๋ฉ”๋‰ด๋„ ํฌํ•จ๋œ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ „๋‹ฌํ•ด์•ผ ํ•œ๋‹ค.
  • ์ถ”์ฒœํ•  ์ˆ˜ ์—†๋Š” ๋ฉ”๋‰ด์ธ ๊ฒฝ์šฐ ๋‹ค์‹œ ์„ž์€ ํ›„ ์ฒซ ๋ฒˆ์งธ ๊ฐ’์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

โœ๏ธ ๊ณผ์ œ ์ง„ํ–‰ ์š”๊ตฌ ์‚ฌํ•ญ

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

java-menu's People

Contributors

geoje avatar seokhongkim avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.