๐Ÿงฃ Java ๊ณ„์‚ฐ๊ธฐ ํ”„๋กœ์ ํŠธ

์ด๋™๊ทผยท2025๋…„ 4์›” 23์ผ

Mini Project

๋ชฉ๋ก ๋ณด๊ธฐ
1/8
post-thumbnail

โœ… ์ฝ”๋“œ ํ™•์ธ -> github ๋งํฌ



๐Ÿ“‘ ๊ณ„์‚ฐ๊ธฐ ํ”„๋กœ์ ํŠธ (Calculator)



โœ… ํ”„๋กœ์ ํŠธ ์š”๊ตฌ์‚ฌํ•ญ

LV 1๏ธโƒฃ : ํด๋ž˜์Šค ์—†์ด ๊ธฐ๋ณธ์ ์ธ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ„์‚ฐ๊ธฐ ๋งŒ๋“ค๊ธฐ

๐Ÿญ ์–‘์˜ ์ •์ˆ˜ (0ํฌํ•จ)๋ฅผ ์ž…๋ ฅ ๋ฐ›๊ธฐ

๐Ÿญ ์‚ฌ์น™ ์—ฐ์‚ฐ ๊ธฐํ˜ธ ์ž…๋ ฅ ๋ฐ›๊ธฐ

๐Ÿญ ์ž…๋ ฅ ๋ฐ›์€ ๊ฐ’๊ณผ ์‚ฌ์น™ ์—ฐ์‚ฐ ๊ธฐํ˜ธ๋กœ ์—ฐ์‚ฐ ์ง„ํ–‰ ํ›„ ๊ฒฐ๊ณผ๊ฐ’ ์ถœ๋ ฅ

๐Ÿญ ์ข…๋ฃŒ๋ฅผ ์›ํ•  ์‹œ ์ข…๋ฃŒ๋ฅผ ์•Œ๋ ค์ฃผ๋Š” "exit" ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ



LV 2๏ธโƒฃ : ํด๋ž˜์Šค๋ฅผ ์ ์šฉํ•ด ๊ธฐ๋ณธ์ ์ธ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ„์‚ฐ๊ธฐ ๋งŒ๋“ค๊ธฐ

๐Ÿญ LV 1์—์„œ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ -> ๊ธฐ์กด ๊ธฐ๋Šฅ์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค

๐Ÿญ Lv1์—์„œ ๊ตฌํ˜„ํ•œ App ํด๋ž˜์Šค์˜ main ๋ฉ”์„œ๋“œ์— Calculator ํด๋ž˜์Šค ํ™œ์šฉ

๐Ÿญ App ํด๋ž˜์Šค์˜ main ๋ฉ”์„œ๋“œ์—์„œ Calculator ํด๋ž˜์Šค์˜ ์ปฌ๋ ‰์…˜ ํ•„๋“œ์— ์ง์ ‘ ์ ‘๊ทผ ๋ถˆ๊ฐ€ (์บก์Аํ™”)

๐Ÿญ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๋Š” ์ปฌ๋ ‰์…˜ ํ•„๋“œ์—์„œ ๊ฐ€์žฅ ๋จผ์ € ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ฉ”์„œ๋“œ ๊ตฌํ˜„



LV 3๏ธโƒฃ : Enum, ์ œ๋„ค๋ฆญ, ๋žŒ๋‹ค & ์ŠคํŠธ๋ฆผ์„ ์ดํ•ดํ•œ ๊ณ„์‚ฐ๊ธฐ ๋งŒ๋“ค๊ธฐ

๐Ÿญ Enum ํƒ€์ž…์„ ํ™œ์šฉํ•˜์—ฌ ์—ฐ์‚ฐ์ž ํƒ€์ž…์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ๊ณ„์‚ฐ๊ธฐ ํด๋ž˜์Šค(ArithmeticCalculator)์— ํ™œ์šฉ

๐Ÿญ ์ž…๋ ฅ ๋ฐ›๋Š” ๊ฐ’์„ ์ •์ˆ˜๊ฐ€ ์•„๋‹Œ ์‹ค์ˆ˜๋„ ๊ฐ€๋Šฅํ•˜๋„๋ก ๋งŒ๋“ค๊ธฐ

๐Ÿญ ์ €์žฅ๋œ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๋“ค ์ค‘ Scanner๋กœ ์ž…๋ ฅ๋ฐ›๋Š” ๊ฐ’๋ณด๋‹ค ํฐ ๊ฒฐ๊ณผ๊ฐ’ ๋“ค์„ ์ถœ๋ ฅ



๐Ÿ’  ์ง„ํ–‰ ๊ณผ์ •

  • 1. Git ์—ฐ๊ฒฐ -> ์›๊ฒฉ Repository ์ƒ์„ฑ

  • 2. Intellij ๋กœ์ปฌ Repository -> project ์ƒ์„ฑ ํ›„ -> Git ์—ฐ๊ฒฐ

  • 3. test ํŒŒ์ผ ์ƒ์„ฑ ํ›„ ์—ฐ๊ฒฐ ํ™•์ธ

  • 4. ํ”„๋กœ์ ํŠธ ์ง„ํ–‰



โœจ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

์ง„ํ–‰ ๊ณผ์ •

  • ์›๊ฒฉ Repository <-> ๋กœ์ปฌ Repository ์—ฐ๊ฒฐ ์‹œ README ํŒŒ์ผ์ด ์กด์žฌํ•  ๊ฒฝ์šฐ
  • ๊ฐ•์ œ ๋ณ‘ํ•ฉ ์ฝ”๋“œ: git pull origin main --allow-unrelated-histories ์‚ฌ์šฉ
  • Repository๋ฅผ ์„œ๋กœ ๋…๋ฆฝ์ ์œผ๋กœ ๋งŒ๋“ค์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ ๋ฐœ์ƒ

LV 1๏ธโƒฃ

  • ๋ฌธ์ œ : ์ˆซ์ž ์™ธ์— ๊ฐ’์„ ์ž…๋ ฅ ๋ฐ›์•˜์„ ๊ฒฝ์šฐ ์˜ค๋ฅ˜ ๋ฐœ์ƒ
  • ํ•ด๊ฒฐ : try-catch๋ฌธ์„ ์ด์šฉํ•˜์—ฌ ์˜ˆ์™ธ์ฒ˜๋ฆฌํ•˜์—ฌ ์žฌ์ž…๋ ฅํ•˜๋„๋ก ์œ ๋„

LV 2๏ธโƒฃ

  • ๋ฌธ์ œ : ์š”๊ตฌ์‚ฌํ•ญ ํŒŒ์•…์„ ์ œ๋Œ€๋กœ ํ•˜์ง€ ๋ชปํ•ด ๊ธฐ๋Šฅ์„ ์ž˜๋ชป ๊ตฌํ˜„ํ•จ

    • setter,getter ๊ตฌํ˜„ ํ›„ main ๋ฉ”์„œ๋“œ์—์„œ ํ™œ์šฉํ•˜์ง€ ์•Š์Œ

    • ์ปฌ๋ ‰์…˜ ํ•„๋“œ ์ƒ์„ฑ๊ณผ ๊ด€๋ จ๋œ ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์Œ

  • ํ•ด๊ฒฐ : ์—ฌ๋Ÿฌ ๋ฒˆ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ฝ์œผ๋ฉด์„œ ์š”๊ตฌ์‚ฌํ•ญ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ  ํ™œ์šฉ

    • setter, getter main ๋ฉ”์„œ๋“œ์—์„œ ํ™œ์šฉ

    • ์ปฌ๋ ‰์…˜ ํ•„๋“œ ์ƒ์„ฑ ํ›„ ์ €์žฅ๋œ ๊ฐ’์„ ํ™•์ธํ•˜๋Š” ๋ฉ”์„œ๋“œ, ๊ฐ’์„ ์ œ๊ฑฐํ•˜๋Š” ๋ฉ”์„œ๋“œ ํ™œ์šฉ


LV 3๏ธโƒฃ

๋ฌธ์ œ :

  • OperatorType ์—ด๊ฑฐํ˜• ํด๋ž˜์Šค ๊ฐœ๋… ๋ถ€์กฑ -> ์ƒ์ˆ˜์— ํ• ๋‹น๋œ ๊ฐ’์„ ๋ชป ๊ฐ€์ง€๊ณ ์˜ด
  • ๊ณ„์‚ฐ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ArithmeticCalculator ํด๋ž˜์Šค์—์„œ ์ œ๋„ค๋ฆญ ์‚ฌ์šฉ

    • ์‚ฌ์น™์—ฐ์‚ฐ ๊ณ„์‚ฐ ํ›„ ๊ฒฐ๊ณผ๊ฐ’ ํ‘œํ˜„ํ•  ๋•Œ ๋ฐ์ดํ„ฐ ํƒ€์ž… ์˜ค๋ฅ˜
    • ์ž…๋ ฅ๊ฐ’ ํƒ€์ž… ๋ฌธ์ œ -> ์‹ค์ˆ˜๋กœ ํƒ€์ž… ์„ค์ •์‹œ ์ž…๋ ฅ๊ฐ’์„ ์ •์ˆ˜๋กœ ๋ฐ›์•„๋„ ์‹ค์ˆ˜๋กœ ํ‘œํ˜„
  • showResult() ๋ฉ”์„œ๋“œ NullPointerException ์˜ค๋ฅ˜ ๋ฐœ์ƒ

ํ•ด๊ฒฐ :

  • ์ œ๋„ค๋ฆญ ํƒ€์ž…์€ ์‚ฌ์น™์—ฐ์‚ฐ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ •์ˆ˜,์‹ค์ˆ˜ ํƒ€์ž…์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์‚ฌ์šฉ
  • ์ˆซ์ž ์ž…๋ ฅ ๊ฐ’์„ String ํƒ€์ž…์„ ๋ฐ›์€ ํ›„ -> ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ๋‹ด์•„์„œ (Double,Integer)ํƒ€์ž…์„ ๋ณ€ํ™˜

    • ์‚ฌ์น™์—ฐ์‚ฐ ๊ธฐํ˜ธ ์ž…๋ ฅ ๊ฐ’์„ String ๊ฐ’์œผ๋กœ ๋ฐ›๊ณ  -> OperatorType ํƒ€์ž…์œผ๋กœ ๋ณ€๊ฒฝ -> ์ž…๋ ฅ๊ฐ’์„ ์ปค์Šคํ…€ํ•˜๋Š” getOperatorType() ์ƒ์„ฑ
  • showResult() ๋ฉ”์„œ๋“œ์— ๊ฐ’์ด ์—†์–ด์„œ ๋ฐœ์ƒ -> setter์„ ์ด์šฉํ•ด ํ•ด๊ฒฐ (๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ฐ›์•„์„œ ํ•ด๊ฒฐํ•  ์ˆ˜๋„ ์žˆ์Œ)

๋ฐฐ์šด์  :

  • enum์€ ์—ด๊ฑฐํ˜• ํด๋ž˜์Šค
  • enum์˜ ์ •์˜ : ์ƒ์ˆ˜๋“ค์˜ ์ง‘ํ•ฉ

    • (์ƒ์ˆ˜ : ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฐ’, final ํ‚ค์›Œ๋“œ๋กœ ์ •์˜๋œ ๋ณ€์ˆ˜)

    • ํ• ๋‹น๋œ ๊ฐ’์„ ํ™œ์šฉ

    • ex) EARTH("์ง€๊ตฌ") -> EARTH : ์ƒ์ˆ˜, "์ง€๊ตฌ" : ํ• ๋‹น๋œ ๊ฐ’

  • ์ œ๋„ค๋ฆญ ํƒ€์ž…์˜ ์ œํ•œ์œผ๋กœ ํƒ€์ž… ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•œ ๋ถ€๋ถ„์„ ๋ฐฐ์›€
  • ์‹คํ–‰ํ•  ๋•Œ ํƒ€์ž… ๋ณ€ํ™˜์— ๋Œ€ํ•ด์„œ ๋” ๊นŠ๊ฒŒ ์ƒ๊ฐํ•ด์•ผํ•˜๋Š”๊ตฌ๋‚˜๋ฅผ ๋А๋‚Œ


๐ŸŒŸ ํŠœํ„ฐ๋‹˜ ํ”ผ๋“œ๋ฐฑ ํ›„ ์ˆ˜์ •์‚ฌํ•ญ

LV 1๏ธโƒฃ

  • ์ฝ”๋“œ ๋“ค์—ฌ์“ฐ๊ธฐ
  • ์ค‘๋ณต๋œ ์ฝ”๋“œ ํ†ตํ•ฉ(System.out.println())

LV 2๏ธโƒฃ

  • ์ฝ”๋“œ ๋“ค์—ฌ์“ฐ๊ธฐ
  • ์ค‘๋ณต๋œ ์ฝ”๋“œ ํ†ตํ•ฉ(System.out.println())

  • ๊ฐ’์ด ์ค‘์ฒฉ ๋  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„ ์ˆ˜์ •

    • (setter ์„ค์ • ํ›„ ๋ฉ”์„œ๋“œ์—์„œ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ฐ›์„ ๊ฒฝ์šฐ ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ์—์„œ ๊ฐ’์ด ๋ฎํž ์ˆ˜ ์žˆ์Œ)

    • ์š”๊ตฌ์‚ฌํ•ญ์— setter, getter ํ™œ์šฉ์ด ์žˆ์—ˆ์ง€๋งŒ ์ฝ”๋“œ ํ˜ธ์œจ์ด ์•ˆ ์ข‹์„๊ฑฐ ๊ฐ™์•„ ์ˆ˜์ • -> ๋‹ค์‹œ ํ™œ์šฉํ•˜๋„๋ก ์ˆ˜์ • ๊ฐ€๋Šฅ

  • ์ฃผ์š” ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ ์œ„์น˜
    • ๋ฐ˜๋ณต๋ฌธ ์•ˆ๋ณด๋‹ค๋Š” ๋ฐ–์—์„œ ๊ตฌํ˜„ํ–ˆ์„ ๋•Œ ์„ฑ๋Šฅ์ด ์ข‹์Œ

LV 3๏ธโƒฃ

  • OperatorType ์—ด๊ฑฐํ˜• ํด๋ž˜์Šค์—์„œ ํ• ๋‹น๋œ ๊ฐ’ ๋ฉ”์„œ๋“œ ์ค‘๋ณต๋˜๋Š”๊ฑธ ํ™•์ธ -> ์ˆ˜์ •

    • toString(), getOperator() ๊ฐ™์€ ์˜๋ฏธ๋กœ ์‚ฌ์šฉ๋˜์–ด toString() ์‚ญ์ œ
  • calculator() : ์‚ฌ์น™์—ฐ์‚ฐ์„ ํ•˜๋Š” ๋ฉ”์„œ๋“œ -> ์ •์ˆ˜, ์‹ค์ˆ˜ ๋ถ€๋ถ„์„ ๋”ฐ๋กœ ๋‚˜๋ˆ”

    • intCalculate() , doubleCalculate() ๋กœ ๋‚˜๋ˆ”
  • LV2์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ setter, getter ์‚ฌ์šฉ์„ ํ•˜์ง€ ์•Š์Œ

    • ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ’์„ ๋ฐ›๊ณ  setter getter ์‚ฌ์šฉ์„ ์ค„์ž„ -> ์ฃผ์„ ์ฒ˜๋ฆฌ -> ๋‹ค์‹œ ํ™œ์šฉ ๊ฐ€๋Šฅ

    • showResult() : ์กฐํšŒ ๋ฉ”์„œ๋“œ๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๊ฐ’์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ์ˆ˜์ •

  • ์ˆซ์ž๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ  ์ •์ˆ˜ ์‹ค์ˆ˜๋ฅผ ๋‚˜๋ˆ„๋Š” ๋ถ€๋ถ„์— ์ฝ”๋“œ ์ค‘์ฒฉ์ด ์žˆ์–ด ์ˆ˜์ • ์‹œ๋„

    • ์ œ๋„ค๋ฆญ์„ Number๋กœ ๋ฐ›์•„์„œ ๊ฒฐ๊ตญ ์ค‘๋ณต ์ฝ”๋“œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ๊ปถ์Œ

      • ์ž…๋ ฅ๊ฐ’์ด String ํƒ€์ž…์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”์„œ๋“œ์—์„œ ๋ถ„๋ฅ˜ ํ›„ -> ๋‹ค์‹œ ํƒ€์ž… ๋ณ€ํ™˜์œผ๋ฅด ํ•ด์•ผํ•˜๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ

      • ์ •์ˆ˜ ์‹ค์ˆ˜ 2๊ฐœ์˜ ํƒ€์ž…์„ ๋งŒ์กฑํ•˜๊ธฐ ์œ„ํ•ด Number ํƒ€์ž…์œผ๋กœ ๋ฉ”์„œ๋“œ ๊ตฌํ—Œ -> ๋ฐ˜ํ™˜๊ฐ’ Number ํƒ€์ž…

      • ๊ฒฐ๊ตญ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์‹œ ํƒ€์ž… ๋ณ€ํ™˜ํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ ๋ฐœ์ƒ

  • ํด๋ž˜์Šค ๋ถ„๋ฅ˜๋ฅผ ํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์€ ๋“ค์—ˆ์ง€๋งŒ ์‹œ๊ฐ„์ด ์—†์–ด ์ผ๋‹จ ํ•œ ํด๋ž˜์Šค์—์„œ ๊ตฌํ˜„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„

    • ์ตœ๋Œ€ํ•œ ์œ ์ง€๋ณด์ˆ˜์™€ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๋ ค๊ณ  ํ•ด๋ด„

    • ์ถ”๊ฐ€์ ์œผ๋กœ ์ œ๋„ค๋ฆญ ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋Š”๊ฒƒ์œผ๋กœ ๋ณด์ž„

      • ๋‹จ instanceof๋„ ๊ฐ™์ด ์‚ฌ์šฉํ•ด์•ผ ํ•  ๊ฒƒ์œผ๋กœ ๋ณด์ž„
  • enum์— ๋Œ€ํ•ด ๋‹ค์‹œ ํ•œ ๋ฒˆ ์•Œ์•„๋ด„ -> enum์— ์‚ฌ์šฉ ์ด์œ ์— ๋Œ€ํ•ด ์กฐ๊ธˆ ์•Œ๊ฒŒ๋จ -> ๊ณ„์† ์‚ฌ์šฉํ•ด์•ผ ์•Œ๊ฑฐ ๊ฐ™์Œ..


โ— ํ”ผ๋“œ๋ฐฑ ํ›„ ๋А๋‚Œ์ 

์ฝ”๋“œ ์™„์„ฑ ํ›„ ๊ณ„์†ํ•ด์„œ ๋ฆฌํŒฉํ† ๋ง์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์— ์ค‘์š”์„ฑ์„ ๋А๋‚Œ

๋‚˜ ํ˜ผ์ž ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์œ ์ง€๋ณด์ˆ˜์™€ ๊ฐ€๋…์„ฑ์„ ์ƒ๊ฐํ•˜๋ฉด์„œ ์ฝ”๋“œ๋ฅผ ๋ฆฌํŒฉํ† ๋ง ํ•ด๋ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ•จ

profile
์•ˆ๋…•ํ•˜์„ธ์š”

0๊ฐœ์˜ ๋Œ“๊ธ€