-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[자동차경주] 박정현 미션 제출합니다. #1475
base: main
Are you sure you want to change the base?
[자동차경주] 박정현 미션 제출합니다. #1475
Commits on Oct 27, 2024
-
docs(readme): 프로젝트 소개 및 기능 목록 작성
개발 전에 프로젝트 기능 목록에 대해 정리하였다. 각 목록은 TDD를 생각하며 나눴다. 각 기능 목록을 모두 구현 후에 리펙토링 및 추가 기능을 추가한다.
Configuration menu - View commit details
-
Copy full SHA for d8345c7 - Browse repository at this point
Copy the full SHA d8345c7View commit details -
feat(RacingCar): 유효한 입력 및 입력 예외 처리
유효한 입력을 받았을 때, 쉼표로 구분하여 해시맵에 올바르게 저장되는지 확인한다. Application.java에서 입력을 받은 후 run()함수로 넘겨준다. run 함수에서는 blank, null 처리 후에 쉼표(,)로 구분하고, 해시맵에 저장한다. 자동차 이름의 길이가 5 초과일 경우에는 예외를 발생시킨다.
Configuration menu - View commit details
-
Copy full SHA for a8e0671 - Browse repository at this point
Copy the full SHA a8e0671View commit details -
test(ApplicationTest): 자동차 이름의 길이가 5이상인 경우 예외 테스트
쉼표로 구분한 뒤에 자동차의 이름의 길이가 5를 넘으면 IllegalArgumentException을 발생시킨다.
Configuration menu - View commit details
-
Copy full SHA for d7072ff - Browse repository at this point
Copy the full SHA d7072ffView commit details -
feat(RacingCar): 각 라운드별 실행결과 출력 및 테스트
입력받은 roundCount만큼 반복해 게임을 진행시킨다. randomMove가 4 이상일 때는 전진하고, 4 미만일 경우 멈춘다. BeforEach를 통해 Test를 실행할 때마다 리스트를 초기화했다. 유효한 값을 입력했을 때, 라운드를 진행하면 해시맵이 달라지므로 Key값만 비교해 자동차 이름이 잘 입력되었는지만 확인했다.
Configuration menu - View commit details
-
Copy full SHA for ece39d1 - Browse repository at this point
Copy the full SHA ece39d1View commit details -
feat(RacingCar): 최종 우승자 출력 및 테스트
컬렉션을 통해 해시맵 value의 최대값(winValue)을 찾았다. stream을 사용해 winValue와 같은 경우 key값을 findWinner에 삽입 컬렌션을 사용해 join() 함수로 쉼표(,)로 결과를 출력하였다.
Configuration menu - View commit details
-
Copy full SHA for d0e4f94 - Browse repository at this point
Copy the full SHA d0e4f94View commit details
Commits on Oct 28, 2024
-
refactor(view): inputView, outputView 생성 후 분리
View 패키지에 inputView, outputView를 작성하였다. camp.nextstep.edu.missionutils.Console을 통해 입력받는다. outputView에서는 결과를 출력하는 부분을 두 개의 함수로 나타냈다.
Configuration menu - View commit details
-
Copy full SHA for df74adb - Browse repository at this point
Copy the full SHA df74adbView commit details -
refactor(ErrorMessage): ErrorMessage를 통해 예외 설명
각각의 예외에 해당하는 메시지를 정의했다. getMessage() 함수로 해당 메시지를 불러온다.
Configuration menu - View commit details
-
Copy full SHA for 30289af - Browse repository at this point
Copy the full SHA 30289afView commit details -
refactor(Validator): 예외 처리를 담당하는 Validator 생성
예외 상황을 함수로 정의하고, 해당하는 메시지를 ErrorMessage를 통해 출력한다. roundCount는 숫자여야 하며 1 이상이어야 한다. carNameString은 빈칸이 없어야 하며 carName은 길이가 5 이하여야 한다. carName은 중복될 수 없다.
Configuration menu - View commit details
-
Copy full SHA for dec2dab - Browse repository at this point
Copy the full SHA dec2dabView commit details -
refactor(InputParser): 입력 데이터를 검증하는 로직을 구현
InputView를 통해 입력받은 데이터를 Validator로 검증한다. carNameString을 쉼표(,)로 구분하고 예외 처리하여 carNames 리스트를 반환한다. roundCountString을 검증하여 int형식의 roundCount로 반환한다.
Configuration menu - View commit details
-
Copy full SHA for c2e702a - Browse repository at this point
Copy the full SHA c2e702aView commit details -
refactor(RacingCarService): 경기를 진행하고 우승자를 찾는 로직 구현
initCarList()로 입력받은 데이터로 해시맵을 생성한다. raceAllRound()를 통해 roundCount만큼 경기를 진행한다. 각 경기가 진행될 때마다 게임 결과를 출력하며, 경기가 종료되면 getWinnerList()를 통해 우승자 리스트를 가져온다.
Configuration menu - View commit details
-
Copy full SHA for a048e74 - Browse repository at this point
Copy the full SHA a048e74View commit details -
refactor(RacingCarController): 컨트롤러로 분리 후 의존성 주입과 로직 구현
race()함수를 통해 데이터를 입력받고 경기를 진행하는 run()을 실행시킨다. run()에서는 service의 raceAllRound()로 경기 후 winnerList를 불러온다. 이를 출력함수 printWinner()로 경기 결과를 출력한다.
Configuration menu - View commit details
-
Copy full SHA for 27bc4ad - Browse repository at this point
Copy the full SHA 27bc4adView commit details -
Configuration menu - View commit details
-
Copy full SHA for c1b4510 - Browse repository at this point
Copy the full SHA c1b4510View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2ee1c34 - Browse repository at this point
Copy the full SHA 2ee1c34View commit details