이 프로그램은 로또 구매 금액을 입력받아, 해당 금액만큼 가상의 로또번호를 구입하고 당첨번호에 따른 결과와 수익률을 계산해주는 프로그램이다.
- 테스트 패키지 설치를 위해 Node.js 버전 18.17.1 이상이 필요하다.
- 다음 명령어를 입력해 패키지를 설치한다.
npm install
- 다음 명령어를 입력해 프로그램을 실행한다.
node ./src/index.js
- 제작 기간 : 2023.11.2 ~ 2023.11.8
- 기술스택 : Vanilla javascript, MissionUtils, jest
- 1,000원 단위로 나눠떨어지지 않는 경우 예외처리
- 숫자 외 다른 타입이 입력 들어올 경우 예외처리
- 입력부분을 Console.readLineAsync 함수로 구현
- 각 로또번호를 오름차순으로 정렬
- 랜덤으로 6개 번호를 픽하여 배열로 리턴
- Random.pickUniqueNumbersInRange() 함수를 통해 추출
- 구매 내역 출력부분을 Console.print 함수로 구현
- 발행 후 출력하는 기능
- 1 ~ 45 사이가 아닐 경우 예외처리
- 6개 이상의 숫자가 들어올 경우 예외처리
- 숫자 외 다른 타입이 들어올 경우 예외처리
- 중복된 숫자가 있으면 예외처리
- 쉼표로 시작하거나 끝나면 예외처리
- 입력부분을 Console.readLineAsync 함수로 구현
- 1 ~ 45 사이가 아닐 경우 예외처리
- 숫자 외 다른 타입이 들어올 경우 예외처리
- 기존 당첨번호와 중복될 경우 예외처리
- 당첨번호와 구매한 로또들 사이에 일치 갯수를 계산하는 로직 구현
- 수익률을 계산하는 로직 구현 ( 총 당첨 금액 / 구매 금액 , 소수점 둘째 자리에서 반올림)
- 결과 출력부분을 Console.print 함수로 구현
- 게임을 실행한다.
- User Interaction이 있는 UI 부분을 담당
- 구입금액을 입력한다.
- 당첨번호를 입력한다.
- 보너스번호를 입력한다.
- Console 상호작용이 있는 UI 부분을 담당
- 게임 진행을 위해 필요한 행동들을 순차적으로 작동시키는 역할을 담당한다.
- 로또 개별 객체를 정의한다.
- 6개의 번호를 받아 생성하고, 오름차순으로 정렬한 값을 출력한다.
- 당첨번호를 받으면, 당첨여부를 검증한다.
- 메세지를 인수로 받아 에러 메시지 컨벤션에 맞게 에러를 발생시킨다.