본문 바로가기
공부 일지

[우테코 프리코스 6기] 2주차 자동차 경주 회고

by 그랴 2023. 11. 7.

1주차 과제를 무사히 제출하고 2주차 과제를 진행하게 되었다.

1주차 과제 덕분인지 클래스 개념에 한결 익숙해져 과제를 수월하게 진행할 수 있었다.

 

과제

이번 과제를 진행하면서는 1주차 과제 보다 기능 구현 목록을 좀 더 상세하게 작성해보고자 노력했다. 

필드에 대한 설명도 하고, 해당 기능은 어떤 함수로 구현했는 지도 작성했다.

 

그리고 이번 과제는 1주차와는 다르게 테스트 코드를 직접 작성하는 것이 추가 요구 사항으로 주어졌다. 

그치만 테스트 코드 작성이.. 맘처럼 쉽지 않았다...

그래서 예시로 주어진 코드를 분석해가며 작동 과정을 파악해서 이를 흉내내는 방식으로 테스트 코드를 작성했다.

 

 

배운 점

1. 기능 목록을 재검토한다

공통 피드백에서 이런 내용이 있었다.

기능 목록을 클래스 설계와 구현, 함수 설계와 구현과 같이 너무 상세하게 작성하지 않는다
- 언제든 변경될 수 있기 때문
- 너무 세세한 부분까지 정리하기보다 구현해야 할 기능 목록을 정리하는데 집중한다

마치 내 코드가 저격당한 기분이었다... ㅎ.ㅎ 

간단히와 상세히의 중간 타협 지점을 찾아 3주차 과제 기능 목록에 적용해야 겠다고 생각했다.

 

2. 테스트 코드는 필수

물론 테스트 코드를 이해하고 작성하는 과정은 어려웠지만, 한 번 작성해두니 내가 작성한 로직을 점검하기에 편리했다.

비록 지금은 코드가 몇 줄 안 되기 때문에 테스트 코드 없이도 눈으로 또는 손으로 점검할 수 있지만, 코드가 매우 복잡해지거나 길어지는 경우, 테스트 코드를 통해 로직을 점검하는 것이 좋을 것 같다는 생각이 들었다.

 

3. 한 함수가 한 가지 기능만 담당하게 한다

사실 이 부분은 잘 지켰다고 생각한다. 하지만 하나의 파일에 모든 기능 구현 로직을 작성해두어서 파일 길이가 다소 길어졌는데, 이를 여러 개의 파일로 (모듈로) 분리해야 하는 것이 더 좋을 까라는 개인적인 고민이 생겼다. 하지만 이번 과제는 간단한 기능 구현이다보니 굳이 그러지 않아도 될 것 같기도 하다. 물론 나중에 더 복잡한 기능을 구현할 때는 나눠야겠지만!