-
[2주차 미션] 후기 및 피드백교육/우아한 테크 코스 2019. 5. 27. 15:02SMALL
2주차의 미션은 사다리타기 미션
이번 미션에서 제일 중점을 둔 부분은 TDD 방식으로 코드를 짜는 거 였습니다.
TDD는 간단하게는 테스트 코드부터 코드를 빠르게 짜고, 테스트를 통과하기 위한 프러덕션 코드를 빠르게 짜고, 이후에 리팩토링을 진행하는 방식으로 코드를 짜는 방법입니다.
TDD에 대한 포스팅을 다룰 예정이니, TDD에 대한 자세한 부분은 그 곳에서 참고하시면 될 거 같습니다.
사다리타기를 구현하기 전 문자열 계산기를 먼저 구현하게 되었습니다.
문자열 계산기의 조건은 저번과는 다르게
이러한 요구사항을 가지고 있었습니다.
123456789@Testvoid 문자열_더하기_커스텀() {assertThat(stringCalculator.add("//;\n1;2;3")).isEqualTo(6);}@Testvoid 문자열_더하기_한_개() {assertThat(stringCalculator.add("1")).isEqualTo(1);}이런식으로 테스트 코드를 먼저 작성하고, 프로덕션 코드를 이후에 작성하는 방식으로 진행을 했습니다.
문자열 계산기에서 나왔던 피드백으로는
- 에러 메세지 작성하기
- 정규표현식 단축 사용
- stream 사용하기 (코드가 더 깔끔해진다.)
- 코드 컨벤션... (실수를 줄이자 ...)
사다리 타기는 요구사항이 다음과 같았다.
이 또한 TDD 방식으로 테스트 코드부터 작성을 하였고, 결론적으로 아쉬웠던 부분은 랜덤으로 매번 정해지다 보니, 테스트하기가 어려웠다. TDD 방식을 하는 이유 중 하나가 테스트를 하기 쉬운 코드를 짜기 위함도 있는데, 그게 너무 아쉬웠다. 다른 팀들의 코드를 참고하니 인터페이스를 활용해서 테스트를 할 때는 Random이 아니게 했는데, 더욱 공부를 해봐야겠다.
사다리타기에 대한 피드백으로는
- 요구사항에 대해 생각해보기 (요구사항을 맞추고, 이외의 상황에 관해서는 기획자, 요구사항을 작성한 사람에게 물어보는게 맞다.)
- if문 컨벤션 맞추기(이러한 실수가 너무 잦다. - 포맷팅 기능을 마지막에 꼭 활용하자.)
- input.isEmpty() || input == null 이 부분에 대한 순서 맞추기 ( 왼쪽에서 오른쪽으로 실행하기 때문에 ..)
=> input == null || input.isEmpty() 가 실행이 될 맞는 순서이다.
- for each를 쓸 수 있는 부분 수정하기 ( 코드를 최대한 깔끔하게 쓰자 )
- temp 변수 사용하지 않기 (무슨 의미, 의도 하는지 ... )
- CustomSeparatorGroup => CustomSeparators (클래스명 수정)
- IDE 활용하기 ( IDE가 추천해주는 값, 방식 사용해보기)
TDD를 하면서 느낀 점은 리팩토링을 하는데 있어서 겁이 드는게 없다. 리팩토링을 하고 나서 테스트 코드를 실행시키면 어떤 부분에서 에러가 나는지를 한 번에 파악할 수 있기 때문이다. TDD 방식이 근데 적응하기 어렵고, 아직도 습관적으로 프러덕션 코드부터 짜려고 한다. 의식적으로 연습을 해야겠다.
LIST'교육 > 우아한 테크 코스' 카테고리의 다른 글
[1주차 미션] 후기 및 피드백 (0) 2019.05.24 단위 테스트 (0) 2019.05.12 코드 컨벤션 (0) 2019.05.10 우아한 테크코스 채용과정에 대한 소개와 느낀점 (0) 2019.05.09