[1주차] 자동차 구현
서론
우아한테크코스를 진행하면서 강의도 도움이 되고 좋았지만 코드 리뷰 또한 몰랐던 내용을 알게 되고, 바로 접목시켜볼 수 있어서 좋았다.
코드 리뷰를 받으면서 배운 점이 많기 때문에 블로그에 글을 작성하면서 정리하기 좋다고 생각되어 우테코를 진행하면서 받은 코드 리뷰들을 정리할 생각이다.
자동차 구현
프리코스때 진행했던 내용과 같지만 페어프로그래밍을 하면서 진행하다 보니 어렵게 느껴졌다. 처음으로 페어프로그래밍을 하면서 (+ TDD) 어색했지만 나의 첫 페어이자 성격좋은 조시덕분에 큰 갈등 없이 무난하게 처리했다.
랜덤 매서드 테스트
항상 궁금했던 랜덤 매서드 테스트! 방법은 크게 2가지로 나뉠 수 있다.
1. 랜덤한 값을 매개변수로 받도록 구현(의존 관계를 상위로 옮김으로써 응집도가 낮아진다.)
2. 전략패턴을 사용한 인터페이스 분리 구현
나는 우선 1번 방식으로 작성했다. 인터페이스를 이용한 방법은
2번 방식: https://tecoble.techcourse.co.kr/post/2020-05-17-appropriate_method_for_test_by_interface/
private 매서드 테스트
수업 중에 관련 문제를 다루면서 구구가 좋은 답변을 해주셨다!
public 메서드를 잘 활용해서 private 메서드를 테스트할 수 있습니다.
처음에는 이야기를 듣고 잘.. 활용...어떻게 잘 활용하는 건가 생각을 했다. 그러다 제이의 리뷰를 보고 private 매서드를 테스트할 수 없다면 기존의 코드를 뒤죽박죽 섞어서 해결하지 말고 구조를 바꾸면 가능하다는 것을 깨달았다!!
다른 방법으로 private 매서드를 테스트하고 싶다면 방법이 하나 있다. : http://shoulditestprivatemethods.com
인터페이스로 선언하자
구체타입이 아닌 인터페이스로 선언을 하자!
- 다형성을 보장할 수 있다.
- 결합도를 낮출수 있다.
최악으로 적었다. 다형성은 고려하지 않고 아마 시간이 촉박해서 빠르게 코딩하다 보니 그랬던 것 같다..😅😅
List<RacingCar> winners = getWinners();
1주차 진행 PR