Coder Social home page Coder Social logo

java-lotto's Introduction

둜또

진행 방법

  • 둜또 μš”κ΅¬μ‚¬ν•­μ„ νŒŒμ•…ν•œλ‹€.
  • μš”κ΅¬μ‚¬ν•­μ— λŒ€ν•œ κ΅¬ν˜„μ„ μ™„λ£Œν•œ ν›„ μžμ‹ μ˜ github 아이디에 ν•΄λ‹Ήν•˜λŠ” λΈŒλžœμΉ˜μ— Pull Request(μ΄ν•˜ PR)λ₯Ό 톡해 μ½”λ“œ 리뷰 μš”μ²­μ„ ν•œλ‹€.
  • μ½”λ“œ 리뷰 ν”Όλ“œλ°±μ— λŒ€ν•œ κ°œμ„  μž‘μ—…μ„ ν•˜κ³  λ‹€μ‹œ PUSH ν•œλ‹€.
  • λͺ¨λ“  ν”Όλ“œλ°±μ„ μ™„λ£Œν•˜λ©΄ λ‹€μŒ 단계λ₯Ό λ„μ „ν•˜κ³  μ•žμ˜ 과정을 λ°˜λ³΅ν•œλ‹€.

온라인 μ½”λ“œ 리뷰 κ³Όμ •

λ¬Έμžμ—΄ 사칙 μ—°μ‚° 계산기 κ΅¬ν˜„ λ―Έμ…˜

κΈ°λŠ₯ μš”κ΅¬μ‚¬ν•­

  • μ‚¬μš©μžκ°€ μž…λ ₯ν•œ λ¬Έμžμ—΄ 값에 따라 사칙연산을 μˆ˜ν–‰ν•  수 μžˆλŠ” 계산기λ₯Ό κ΅¬ν˜„ν•΄μ•Ό ν•œλ‹€.
  • μž…λ ₯ λ¬Έμžμ—΄μ˜ μˆ«μžμ™€ 사칙 μ—°μ‚° μ‚¬μ΄μ—λŠ” λ°˜λ“œμ‹œ 빈 곡백 λ¬Έμžμ—΄μ΄ μžˆλ‹€κ³  κ°€μ •ν•œλ‹€.
  • λ‚˜λˆ—μ…ˆμ˜ 경우 κ²°κ³Ό 값을 μ •μˆ˜λ‘œ λ–¨μ–΄μ§€λŠ” κ°’μœΌλ‘œ ν•œμ •ν•œλ‹€.
  • λ¬Έμžμ—΄ κ³„μ‚°κΈ°λŠ” μ‚¬μΉ™μ—°μ‚°μ˜ 계산 μš°μ„ μˆœμœ„κ°€ μ•„λ‹Œ μž…λ ₯ 값에 따라 계산 μˆœμ„œκ°€ κ²°μ •λœλ‹€. 즉, μˆ˜ν•™μ—μ„œλŠ” κ³±μ…ˆ, λ‚˜λˆ—μ…ˆμ΄ λ§μ…ˆ, λΊ„μ…ˆ 보닀 λ¨Όμ € 계산해야 ν•˜μ§€λ§Œ 이λ₯Ό λ¬΄μ‹œν•œλ‹€.
  • 예λ₯Ό λ“€μ–΄ 2 + 3 * 4 / 2와 같은 λ¬Έμžμ—΄μ„ μž…λ ₯ν•  경우 2 + 3 * 4 / 2 μ‹€ν–‰ 결과인 10을 좜λ ₯ν•΄μ•Ό ν•œλ‹€.

ν”„λ‘œκ·Έλž˜λ° μš”κ΅¬μ‚¬ν•­

  • λͺ¨λ“  κΈ°λŠ₯을 TDD 둜 κ΅¬ν˜„ν•΄ λ‹¨μœ„ ν…ŒμŠ€νŠΈκ°€ μ‘΄μž¬ν•΄μ•Ό ν•œλ‹€. 단, UI(System.out, System.in) λ‘œμ§μ€ μ œμ™Έ
  • java enum 을 μ μš©ν•΄ ν”„λ‘œκ·Έλž˜λ°μ„ κ΅¬ν˜„ν•œλ‹€.
  • κ·œμΉ™ 8: 일급 μ½œλ ‰μ…˜μ„ μ“΄λ‹€.
  • indent(인덴트, λ“€μ—¬μ“°κΈ°) depth λ₯Ό 2λ₯Ό λ„˜μ§€ μ•Šλ„λ‘ κ΅¬ν˜„ν•œλ‹€. 1κΉŒμ§€λ§Œ ν—ˆμš©ν•œλ‹€.
  • ν•¨μˆ˜(λ˜λŠ” λ©”μ†Œλ“œ)의 길이가 15라인을 λ„˜μ–΄κ°€μ§€ μ•Šλ„λ‘ κ΅¬ν˜„ν•œλ‹€.
  • μžλ°” μ½”λ“œ μ»¨λ²€μ…˜μ„ μ§€ν‚€λ©΄μ„œ ν”„λ‘œκ·Έλž˜λ°ν•œλ‹€.
  • else μ˜ˆμ•½μ–΄λ₯Ό 쓰지 μ•ŠλŠ”λ‹€.

둜또 (μžλ™) κ΅¬ν˜„ λ―Έμ…˜

κΈ°λŠ₯ μš”κ΅¬μ‚¬ν•­

  • 둜또 κ΅¬μž… κΈˆμ•‘μ„ μž…λ ₯ν•˜λ©΄ κ΅¬μž… κΈˆμ•‘μ— ν•΄λ‹Ήν•˜λŠ” 둜또λ₯Ό λ°œκΈ‰ν•΄μ•Ό ν•œλ‹€.
  • 둜또 1μž₯의 가격은 1000원이닀.

ν”„λ‘œκ·Έλž˜λ° μš”κ΅¬μ‚¬ν•­

  • λͺ¨λ“  κΈ°λŠ₯을 TDD 둜 κ΅¬ν˜„ν•΄ λ‹¨μœ„ ν…ŒμŠ€νŠΈκ°€ μ‘΄μž¬ν•΄μ•Ό ν•œλ‹€. 단, UI(System.out, System.in) λ‘œμ§μ€ μ œμ™Έ
    • 핡심 λ‘œμ§μ„ κ΅¬ν˜„ν•˜λŠ” μ½”λ“œμ™€ UIλ₯Ό λ‹΄λ‹Ήν•˜λŠ” λ‘œμ§μ„ κ΅¬λΆ„ν•œλ‹€.
    • UI λ‘œμ§μ„ InputView, ResultView 와 같은 클래슀λ₯Ό μΆ”κ°€ν•΄ λΆ„λ¦¬ν•œλ‹€.
  • indent(인덴트, λ“€μ—¬μ“°κΈ°) depth λ₯Ό 2λ₯Ό λ„˜μ§€ μ•Šλ„λ‘ κ΅¬ν˜„ν•œλ‹€. 1κΉŒμ§€λ§Œ ν—ˆμš©ν•œλ‹€.
    • 예λ₯Ό λ“€μ–΄ while λ¬Έ μ•ˆμ— if 문이 있으면 λ“€μ—¬μ“°κΈ°λŠ” 2이닀.
    • 힌트: indent(인덴트, λ“€μ—¬μ“°κΈ°) depth λ₯Ό μ€„μ΄λŠ” 쒋은 방법은 ν•¨μˆ˜(λ˜λŠ” λ©”μ†Œλ“œ)λ₯Ό λΆ„λ¦¬ν•˜λ©΄ λœλ‹€.
  • ν•¨μˆ˜(λ˜λŠ” λ©”μ†Œλ“œ)의 길이가 15라인을 λ„˜μ–΄κ°€μ§€ μ•Šλ„λ‘ κ΅¬ν˜„ν•œλ‹€.
    • ν•¨μˆ˜(λ˜λŠ” λ©”μ†Œλ“œ)κ°€ ν•œ 가지 일만 잘 ν•˜λ„λ‘ κ΅¬ν˜„ν•œλ‹€.
  • λͺ¨λ“  λ‘œμ§μ— λ‹¨μœ„ ν…ŒμŠ€νŠΈλ₯Ό κ΅¬ν˜„ν•œλ‹€. 단, UI(System.out, System.in) λ‘œμ§μ€ μ œμ™Έ
    • 핡심 λ‘œμ§μ„ κ΅¬ν˜„ν•˜λŠ” μ½”λ“œμ™€ UIλ₯Ό λ‹΄λ‹Ήν•˜λŠ” λ‘œμ§μ„ κ΅¬λΆ„ν•œλ‹€.
    • UI λ‘œμ§μ„ InputView, ResultView 와 같은 클래슀λ₯Ό μΆ”κ°€ν•΄ λΆ„λ¦¬ν•œλ‹€.
  • μžλ°” μ½”λ“œ μ»¨λ²€μ…˜μ„ μ§€ν‚€λ©΄μ„œ ν”„λ‘œκ·Έλž˜λ°ν•œλ‹€.
  • else μ˜ˆμ•½μ–΄λ₯Ό 쓰지 μ•ŠλŠ”λ‹€.
    • 힌트: if μ‘°κ±΄μ ˆμ—μ„œ 값을 return ν•˜λŠ” λ°©μ‹μœΌλ‘œ κ΅¬ν˜„ν•˜λ©΄ else λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šμ•„λ„ λœλ‹€.
    • else λ₯Ό 쓰지 말라고 ν•˜λ‹ˆ switch/case 둜 κ΅¬ν˜„ν•˜λŠ” κ²½μš°κ°€ μžˆλŠ”λ° switch/case 도 ν—ˆμš©ν•˜μ§€ μ•ŠλŠ”λ‹€.
  • μ˜ˆμ™Έ 처리λ₯Ό 톡해 μ—λŸ¬κ°€ λ°œμƒν•˜μ§€ μ•Šλ„λ‘ ν•œλ‹€.
    • μ‚¬μš©μžκ°€ 잘λͺ»λœ 값을 μž…λ ₯ν–ˆμ„ λ•Œ java exception 으둜 μ—λŸ¬ 처리λ₯Ό ν•œλ‹€.
    • java 8 에 μΆ”κ°€λœ Optional 을 μ μš©ν•΄ NullPointerException 이 λ°œμƒν•˜μ§€ μ•Šλ„λ‘ ν•œλ‹€.
  • λͺ¨λ“  μ›μ‹œκ°’κ³Ό λ¬Έμžμ—΄μ„ 포μž₯ν•œλ‹€.
    • 둜또 숫자 ν•˜λ‚˜λŠ” int νƒ€μž…μ΄λ‹€. 이 숫자 ν•˜λ‚˜λ₯Ό μΆ”μƒν™”ν•œ LottoNo 객체λ₯Ό μΆ”κ°€ν•΄ κ΅¬ν˜„ν•œλ‹€.
  • 쀄여쓰지 μ•ŠλŠ”λ‹€(μΆ•μ•½ κΈˆμ§€).

κΈ°λŠ₯ λͺ©λ‘ 및 Commit 둜그 μš”κ΅¬μ‚¬ν•­

  • κΈ°λŠ₯을 κ΅¬ν˜„ν•˜κΈ° 전에 README.md νŒŒμΌμ— κ΅¬ν˜„ν•  κΈ°λŠ₯ λͺ©λ‘μ„ 정리해 μΆ”κ°€ν•œλ‹€.
  • git 의 commit λ‹¨μœ„λŠ” μ•ž λ‹¨κ³„μ—μ„œ README.md νŒŒμΌμ— μ •λ¦¬ν•œ κΈ°λŠ₯ λͺ©λ‘ λ‹¨μœ„λ‘œ μΆ”κ°€ν•œλ‹€.

java-lotto's People

Contributors

javajigi avatar osean-me 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.