정답보다 해답을

[우테코] AOS 프리코스 1주차 회고 - 숫자 야구 게임 본문

우아한테크코스

[우테코] AOS 프리코스 1주차 회고 - 숫자 야구 게임

스탑스톤 2023. 10. 29. 15:26

 


아 기다리고 아 기다리던 1주차 미션!

 

 

지원서를 넣고 전 기수 온보딩 및 프리코스 미션을 보지 않고 진행하려고 했다.

순수 현재 내 실력만으로 어디까지 볼 수 있는지 궁금했기 때문이다.

 


 

미션이 숫자야구인 것을 보고 안도의 한숨을 돌렸다.

구현해본 경험이 있었기 때문에, 1주차에서는 프리코스 적응을 중점으로 진행해보자는 생각이였다.

 

하지만

- 나는 군인....... 코딩을 안 한지 17개월.. 

- Git조차 제대로 써보지 못한 전공자..

- Kotlin의 특성과 컨벤션을 잘 모르는 모바일 지원자

- 디자인패턴을 고려하지 않고 개발하는 개발..자..

 

차근차근 천천히 개발하는 방법밖엔 없었다.


✨ 기능목록

  • 기능목록에 명시된 순서로 구현할 것
  •  랜덤한 숫자를 생성하는 기능
    • 1~9 중 랜덤으로 3개의 수를 생성
    • 중복된 숫자가 나오지 않도록 구현할 것
    • 3자리 숫자는 자연수로 구성되어 있다.
  •  사용자에게 3개의 수 입력받는 기능
    • 사용자에게 3자리 수를 입력받는다.
    • 입력받은 수가 중복되지 않도록 구현
    • 잘못된 입력을 받는다면 IllegalArgumentException 후 종료
  •  사용자 숫자와 컴퓨터 숫자를 비교하는 기능
    • 입력 받은 수가 자리와 수 모두 같다면 스트라이크
    • 같은 수 다른자리라면 볼
    • 같은 수가 없다면 낫싱을 출력
  •  게임 종료 조건을 확인하는 기능
    • 사용자가 3개의 숫자를 모두 맞히면 (즉, 3 스트라이크가 나온다면) 게임을 종료한다.
  •  게임 종료 후 동작 기능
    • 게임을 종료한 후 다시 시작 또는 프로그램 종료를 할 수 있다.
    • 1 : 재시작
    • 2: 종료
    • [예외처리] 1이나 2가 아닌 다른 입력값일 경우 IllegalArgumentException 발생 후 종료

미션을 진행하기 전 작성한 기능목록이다.

이것또한 미션의 일부였기 때문에 작성한 것이였지만, 큰 도움이 됐다.

내가 이 미션을 어떻게 헤쳐나가야 할지 무엇부터 시작해야할지 갈피를 잡아주는 느낌이라 편했다.

 

 


https://github.com/stopstone/kotlin-baseball-6

 

GitHub - stopstone/kotlin-baseball-6: 숫자 야구 게임 미션을 진행하는 저장소

숫자 야구 게임 미션을 진행하는 저장소. Contribute to stopstone/kotlin-baseball-6 development by creating an account on GitHub.

github.com

 

마지막으로 나의 코드이다.

테스트코드에 대해 무지한 상황이라 기본 테스트만 작성되어있는 상태이다.

 


예재 테스트에 히든 테스트가 있을 줄 알았는데, 전부 통과했다!!

사실 이번에는 구현자체는 너무 쉬워서 리팩토링과 MVVM모델 구축에 대해 깊게 고민하고 미션에 임했다.

매 주차 목표를 하나씩 정해서 헤쳐나갈 생각이다.

2주차에서는 TDD를 중점으로 공부하며 미션을 꼭 완수하도록 하겠다.

 

오랜만에 하는 코딩으로 생각하는 고통과 해결에서 오는 성취감에 짜릿함을 느꼈다

이번 프리코스에서 얻을 것이 분명히 있을 것이라고 생각한다.

프리코스에서 얻은 것을 온전히 나의 것으로 만들기 위해 다음 미션에서도 성실하고 우아하게 임할 것을 다짐할 수 있는 미션이었다.