-
Notifications
You must be signed in to change notification settings - Fork 476
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
[자동차 경주] 최현진 미션 제출합니다. #442
Open
HYUNJIN105
wants to merge
20
commits into
woowacourse-precourse:main
Choose a base branch
from
HYUNJIN105:workspace
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
airbnb style 을 적용한 ESLint 코드 포맷터를 이용하여, 코드를 airbnb style 을지키면서 작성할 수 있도록 도움을 주는 ESLint 포맷터의 환경 설정을 했다.
max-dapth 를 추가하여 들여쓰기 깊이를 2로 제한하였다. no-ternary 를 추가하여 삼항 연산자 사용을 금지하였다.
과제에서 요구하는 사항을 분석하고 구현할 기능의 목록의 체크 리스트를 아래와 같이 작성했다. - 기능 요구 사항 - 입출력 요구 사항 - 기능 구현 목록 체크 리스트 - 과제 진행 요구 사항 - 프로그래밍 요구 사항 - 실행 요구 사항
기본적으로 SNAKE_CASE 네이밍을 과제에서 요구하고 있기 때문에 ESLint의 기본적인 네이밍 컨벤션인 CAMEL_CASE를 비활성화 했다.
자동차의 이름을 입력받고, 이름은 쉼표(,)를 기준으로 구분하여 5자 이하의 이름만 입력 가능하게 구현했다. 5자를 초과하는 이름을 입력했을 경우, [ERROR] 처리를 했다.
자동차 이름 입력 기능 구현 후 commit 했으므로 README 기능 구현 목록에 체크.
자동차를 몇번 전진 또는 멈출 것인지에 대한 이동 횟수를 사용자가 입력할 수 있는 기능을 구현했다. 입력한 이동 횟수가 양의 정수여야하는 조건을 추가해, 양의 정수가 아닌 입력일 경우, [ERROR] 처리를 했다. 또, 변수명을 camelCase 네이밍으로 통일하고, 상수는 snakeCase 네이밍 규칙을 지키도록 변수명을 수정했다.
try-catch에서의 출력에 [ERROR]를 이미 출력하고 있는 것을 잊고, 각 함수의 에러를 처리하는 출력 문구에 [ERROR]를 포함시켜버린 것을 제거했다.
각 자동차에 대해 매 시도마다 0에서 9 사이의 무작위 값을 생성하여 4 이상일 경우에 한 칸 전진한다. 0에서 9사이의 무작위 값을 추출하기 위해서 @woowacourse/mission-utils의 Random.pickNumberInRange() 메서드를 이용했다.
이동 횟수 입력 기능 및 자동차 전진 기능을 구현했으므로 README 기능 구현 목록에 체크.
각 자동차의 이름과 해당 라운드에 전진한 진행 상태를 매 라운드마다 출력하는 기능을 구현했다. 각 자동차의 진행 상황은 '-' 로 표시했다.
라운드별 진행 상황 출력하는 기능을 구현했으므로 README 기능 구현 목록에 체크.
모든 라운드가 종료된 후 가장 멀리 이동한 자동차(들)를 우승자로 결정하고 출력하는 기능을 구현했다. 우승자가 여러 명일 경우, 쉼표로 구분하여 출력하도록 구현했다.
우승자 결정 기능을 구현했으므로 README 기능 구현 목록에 체크.
App.js 하나의 코드에 많은 기능이 포함되어 있던 것들을 각 기능에 맞게끔 쪼개어 코드를 분리화 작업을 했다. - constant/Constant.js 는 프로그램에 필요한 상수들을 모아둔 파일이다. - utils의 getInput.js 와 Print.js 는 사용자의 입력과 출력을 위한 모듈이다. - Car.js 는 자동차 객체의 name과 position을 관리하며, 이동과 관련된 메서드를포함한다. - Race.js 는 게임의 흐름과 직접적인 연관이 있는 함수들을 모아둔 모듈이다.
Jest 를 이용한 각 기능의 테스트를 진행하기 위해 Jest 설치 및 각 기능에 대한 각각의 테스트 코드를 작성했다.
mock 설정 및 테스트 상황에 맞지 않다고 판단된 테스트 코드 삭제.
빈 입력을 했을 경우 나와야하는 에러 문구를 상수로 추가했다.
Jest를 이용한 테스트를 진행한 후, 코드에서 명확하게 나타내지 않았거나 부족했던 테스트 케이스에 대한 처리 동작 추가 및 수정했다.
구현 성공한 기능 및 요구 사항을 충족한 목록에 대해서 모두 체크 후 과제를 제출했다.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.