[우테코] 2주차 과제 소감문

유보라·2023년 11월 1일
0

우테코

목록 보기
2/2
post-thumbnail

이번 과제는 1주차 과제와 비슷한 게임 구현 과제였지만, 추가적으로 테스트 코드를 짜야했다. 테스트 코드는 단위 테스트를 하는게 목적인데, 나는 테스트 코드 구현에 익숙하지 않아 어려움을 겪었다. 과제를 다 구현한 후 기능 별로 테스트를 하면 된다고 생각했는데, void 형식으로 구현한 함수와 private으로 구현한 후 public 함수 안에서 호출한 함수가 많아서 단위 테스트에 어려움을 겪었다. 그래서 이번에 구현한 프로그램에서는 세세한 단위테스트까지는 하지 못해서 다음 주차에는 테스트 코드에 대해 더 공부하여 단위 테스트에 용이하도록 설계해야겠다고 다짐했다. 어디에선가 테스트를 위한 코드를 짜지 말라는 말을 봤지만, 단위 테스트를 하기 쉽다는 것은 함수가 1개의 기능만을 하도록 잘 구현했다는 뜻이 아닐까? 초보 테스터로서 아직 잘 모르겠어서 2주차 피드백이 기대가 된다.

프로그램 구현은 1주자처럼 MVC 패턴을 적용했는데 역할을 나눌 때 헷갈리는 부분이 있었다. View가 유저에게 화면을 표시해주는 역할을 해야하는데, 내가 구현한 코드에서는 각 자동차의 상황을 출력할 때 Game Model 안에서 출력을 하는게 훨씬 간단한 상황이었다. 오히려 View에서 출력을 하려고 하면 훨씬 더 복잡해지는 구조였다. 그래서 "MVC 패턴을 적용하는게 항상 옳은가?"라는 의문과, 앞서 말한 상황에서 "필요할 경우에만 MVC 패턴을 지키지 않는 것은 괜찮은가?"에 대해 생각해보게 되었다. 내가 내린 결론은 클래스들을 MVC 패턴에 따라 역할 별로 분리했기 때문에 번거롭더라도 View에서 출력을 해야한다는 것이었지만 아직 더 생각해보아야할 것 같다 :)

또, 다른 사람들의 PR을 보고 자극을 많이 얻었던 것 같다. 내 과제를 제출한 후 여유가 생겨 다른 사람들의 PR과 코드 리뷰 내역을 보았는데, stream 함수 등 잘 몰랐던 정보들에 대해 알게 되었다. 만약 다음 과제에 String이나 배열을 사용하게 된다면 stream()을 사용해볼 계획이다.구현할 기능 목록도 잘 정리하신 분들이 많아서 나도 다음엔 더 잘 설계하고, 더 잘 정리해야겠다고 생각했다.

그리고 프로그램을 구현하기 전에 구현할 기능 목록을 먼저 정리하여 커밋했는데, 실제로 구현을 하다보니 처음과 달라진 점이 많았던 것 같다. 하지만 오히려 처음에 작성한 것과 비교해보며 내가 어느 부분을 놓쳤는지 알 수 있어 좋았다.

결론은 내가 그동안 프로그램 완성을 위해 반드시 필요한 단계인 테스트 단계를 간과했던 것 같다. 앞으로 테스트 코드를 작성하는 것을 습관들여야겠다고 느꼈다. 또, 테스트 코드 짜는 방법에 대해 공부하게 되어 뿌듯한 한 주였다.

profile
인하대학교 컴퓨터공학과 학생입니다😀

0개의 댓글