Skip to content
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
wants to merge 20 commits into
base: main
Choose a base branch
from

Conversation

HYUNJIN105
Copy link

No description provided.

“HYUNJIN105” and others added 20 commits October 24, 2024 03:13
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
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant