Languages/JavaScript

[우아한테크코스/프리코스] #4 다리 건너기

성중 2022. 11. 23. 16:08

마지막 미션은 다리 건너기 게임을 구현하는 것으로, 제약사항과 함께 학습 목표에 리팩터링이 추가된다

  • 함수(또는 메서드)의 길이가 10라인을 넘어가지 않도록 구현한다
  • 메서드의 파라미터 개수는 최대 3개까지만 허용한다
  • 제공된 InputView, OutputView, BridgeGame, BridgeMaker 클래스를 사용한다
  • InputView에서만 Console.readline()을 이용해 사용자의 입력을 받을 수 있다
  • BridgeGame 클래스에서 InputView와 outputView를 사용하지 않는다
  • Random 값 추출은 제공된 BridgeRandomNumberGenerator의 generate()를 활용한다
  • 이외에 각 클래스의 제약사항은 클래스별 세부 설명을 참고한다

 

클래스 분리와 메서드 구현에 있어 많은 가이드라인을 제공해준 느낌이다🤔 함수(또는 메서드) 길이 10줄 제한 등 제약사항이 많아 한 번에 구현하기보다는 기능을 완성하고 리팩터링해 나가는 과정이 중요할 것 같고, 미리 단위 테스트를 작성해두면 큰 도움이 될 것 같다 !

 

다리 건너기 게임을 시작합니다.

다리의 길이를 입력해주세요.
3

이동할 칸을 선택해주세요. (위: U, 아래: D)
U
[ O ]
[   ]

이동할 칸을 선택해주세요. (위: U, 아래: D)
U
[ O | X ]
[   |   ]

게임을 다시 시도할지 여부를 입력해주세요. (재시도: R, 종료: Q)
R
이동할 칸을 선택해주세요. (위: U, 아래: D)
U
[ O ]
[   ]

이동할 칸을 선택해주세요. (위: U, 아래: D)
D
[ O |   ]
[   | O ]

이동할 칸을 선택해주세요. (위: U, 아래: D)
D
[ O |   |   ]
[   | O | O ]

최종 게임 결과
[ O |   |   ]
[   | O | O ]

게임 성공 여부: 성공
총 시도한 횟수: 2

오징어 게임의 유리 징검다리가 생각나는 미션이다

재밌게 봤던 장면인데.. 직접 만드는 것도 재밌을까?

 

기능 목록을 정리하고 구현을 시작했다!

 

정리한 다리 건너기 기능 목록


Pull Request 주소🔽

 

[다리 건너기] 김성중 미션 제출합니다. by joseph-106 · Pull Request #196 · woowacourse-precourse/javascript-brid

 

github.com

 

미션 취지에 맞게 기능을 다 구현하고 리팩토링을 하려 했지만 이미 개판이 되어버린 코드를 건드리기 쉽지 않았다😅 그럼에도 테스트코드가 있어 어느정도 리팩토링이 가능했고 자연스럽게 복잡한 애플리케이션을 다루는 MVC 패턴에 대해서도 이해하게 된 것 같다

 

마지막 피드백

이렇게 4주간의 프리코스 과정이 끝이 났다. 그동안 개발을 하며 자바스크립트 기본기클린코드에 대해 막연한 궁금증이 있었는데 프리코스를 통해 어느정도 갈증을 해소한 것 같다. 최종 코딩 테스트도 통과한다면 좋겠지만.. 그러지 못해도 미련은 남지 않을 것 같다

 

이번 11월달은 이런저런 일이 겹쳐 유독 정신이 없었다. 다음달부터는 다시 일상으로 복귀해 사람도 좀 만나고 진행하던 사이드 프로젝트와 함께 내가 하고싶은 개발을 더 하고싶다😊

 

본 내용은 우아한테크코스의 프리코스 과정을 바탕으로 작성되었습니다.