이번 2주차는 '숫자 야구' 미션이었습니다.
고통받으면서 재밌게 해결했던 것 같습니다.
이번 미션을 진행하면서 배웠던 점, 느낀점들을 작성해보겠습니다.
기존의 저의 코드 작성방법에는 '설계'란 없었던것 같습니다.
그저 '동작만 하면 돼!' 라고 생각했습니다.
미션과정을 통해 기능목록을 작성하며, 설계에 대해서 깊게 고민하게 되는 과정을 겪었습니다.
우테코에서 기능목록을 작성하게 하는과정이 저에게는 많이 도움이 됐습니다.
하지만 기능목록을 작성하고, 순서에 맞게 코드를 작성했지만, 처음 설계와는 코드가 지속적으로 수정하는 과정을 겪었습니다.
이러한 과정을 통해서 설계의 중요성을 알게되었습니다.
'함수가 하나의 기능을 하게 하라'라는 말의 의미도 조금은 이해를 했습니다.
함수가 한 가지 일을하면 오류가 발생시 하나의 기능만 수정하면 되지만, 하나의 함수가 여러개의 기능을 수행하면 수정할게 많아집니다. 이러한 이유때문에 함수가 한가지의 기능을 수행하는것이 중요하다는것을 알았습니다.
우테코의 프리코스에는 크게 3가지의 요구사항으로 구분됩니다.
프로그래밍 요구사항으로 위 사진에서 보이는 것처럼
MissionUtils 라이브러리를 사용하여 미션을 수행해야하는 제한사항이 있었습니다.
라이브러리의 Console.readLine 이라는 메서드는 비동기로 동작하는 함수인데..
처음 저는 async와 await으로 해결하려고 했습니다.
이유는 콜백으로 해결하는 것이 가독성이 좋지 않아 보이는 이유에서 였습니다.
테스트를 거치는 과정에서 콜백이 아니면 테스트에 통과하지 못하는 것을 알게 되었고, 결국에는 콜백으로 코드를 수정해서 문제를 해결했습니다.
미션과정을 통해서 지속적으로 공부하고, 사고하는 습관이 길러져서 성장하는 느낌이었습니다.
개발을 하면서 코드의 품질과 로직 등에 대해서 이렇게 깊게 고민해 본 적이 없었던 것 같습니다.
작지만 의미 있는 고민을 하게 되고, 속도는 느리지만 목표한 방향대로 나아가고 있음을 느낍니다.
지난주 보다 힘든 과제였지만, 어려움 속에서 성장할 수 있는 시간을 보낸 것 같습니다!