이 프로그램은 사용자가 입력한 금액만큼 로또를 자동으로 발행하고, 당첨 번호와 비교하여 등수 및 수익률을 계산하는 콘솔 기반 로또 시뮬레이션 프로그램입니다.
로또 번호는 1~45 사이의 중복되지 않는 숫자로 구성되며, 구매 금액, 당첨 번호, 보너스 번호를 입력하면 결과를 계산하여 출력합니다.
- 1~45 사이에서 중복 없는 6개 번호 생성 [ ]
- 로또 번호 유효성 검증 및 저장 [ ]
- 당첨 번호 6개와 보너스 번호 1개 입력받기 [ ]
- 당첨 번호와 구매 번호 비교하여 일치 개수 계산 [ ]
- 일치 개수와 보너스 번호 여부로 등수 판별 [ ]
- 구입 금액 입력 후, 금액만큼 로또 자동 발행 [ ]
- 모든 로또의 당첨 결과 계산 [ ]
- 등수별 당첨 개수와 총 상금, 수익률 계산 [ ]
- 결과(발행 내역, 당첨 내역, 수익률) 출력 [ ]
- 잘못된 입력 시 [ERROR] 메시지 출력 후 재입력 [ ]
- 전체 게임의 흐름을 순서대로 제어 [ ]
- 로또 게임 종료 [ ]
AngularJS Commit Message 규칙을 참고했습니다. 커밋은 기능 단위로 나누어 작성합니다. (예: 기본 구분자 처리, 커스텀 구분자 추가, 음수 예외 처리 등)
- feat: 새로운 기능 추가
- fix: 버그 수정
- docs: 문서 수정
- style: 코드 포맷팅
- refactor: 코드 리팩토링
- test: 테스트 코드 추가
- chore: 빌드, 설정 등 유지보수 작업
콜론(:) 뒤에는 반드시 공백 한 칸을 둡니다.
-
값을 하드코딩하지 않는다. → 상수나 설정 파일을 통해 관리하며 유연성을 확보한다.
-
객체 생성 책임을 명확히 한다. → 객체 생성을 전담하는 클래스를 설계해, 역할을 분리한다.
-
실패 케이스도 테스트한다. → 단순 성공뿐 아니라 예외 및 경계 조건 테스트를 포함한다.
-
예외 상황 전용 객체를 설계한다. → 단순 메시지 출력 대신, 예외 객체를 통해 상황을 명확히 표현한다.
-
static의 사용을 신중히 판단한다. → 상태를 가지지 않는 경우에만 static을 사용하고, 필요 시 인스턴스로 전환하여 객체지향적 구조를 유지한다.
-
주석의 목적을 분명히 한다. → *“무엇을”*이 아닌 *“왜 그렇게 했는가”*를 중심으로 작성하며, 코드 자체로 의도를 드러낼 수 있는 구조를 우선한다.