본문 바로가기
교육 활동/TDD, Clean Code With Java 14기

TDD, Clean Code With Java 14기 1주차 회고 [2022. 04. 04 ~ 2022. 04. 10]

by WangTak 2022. 4. 11.
반응형

현직자를 대상으로 하는 강의인 우아한테크캠프 Pro에 관심이 있어서 우테켐을 운영하는 nextstep 플랫폼을 알게 되었습니다. 그런데 우테캠은 만 3년 이상의 경력을 지원 자격으로 두고 있기 때문에 저는 수강을 할 수 없었습니다... 그래서 nextstep을 둘러보면서 수강할 수 있는 강의를 찾아봤는데 TDD, Clean Code With Java는 수강할 수 있었습니다! TDD 강의가 어떤지 커리큘럼을 보고 기존에 수료하신 분들의 후기를 보니깐 너무 좋은 강의인 거 같아서 오픈 알림 신청을 하고 강의가 개설된 후에 바로 결제해서 4월 4일에 첫 시작을 했습니다!

 

아직 강의는 1주 차 밖에 안됐고 2022년 4월이긴 하지만 아마 올해 최고의 선택이 되지 않을까 생각됩니다. 특히나 개발 문화가 없는 회사를 다니시는 분들이라면 더욱더 유의미하고 재밌는 강의라 확신할 수 있습니다. 온라인 코드 리뷰를 통해 자기 주도적으로 강의를 이끌어나가면서 의식적인 코딩을 하고 피드백을 개선해 나아가면서 스스로 성장하는 것이 많이 느껴지는 강의입니다. 

 

다음 단계로 성장하는 개발자가 되고 싶으시면 이 강의를 꼭 들으시라고 추천해드리고 싶습니다.

https://edu.nextstep.camp

 

TDD에 대한 회고는 배운 내용을 정리하고 느낀 점 등과 같이 일기장의 형태로 진행하도록 하겠습니다.

assertThat, assertThatThrownByassertj의 Assertions를 사용한 것이며, Assertions는 static import를 통해 생략하고 사용한 예시로 정리합니다.

 

List Size Check

Set<Integer> numbers = new HashSet<>();

@BeforeEach
void setUp() {
    numbers.add(1);
    numbers.add(1);
    numbers.add(2);
    numbers.add(3);
}

// My Code
assertThat(numbers.size()).isEqualTo(3);

// Reviewed Code
assertThat(numbers).hasSize(3);

 

Exception Test

assertThatThrownBy(() -> exceptionMethod.callError())
	.isInstanceOf(RuntimeException.class);

// callError의 Exception이 RuntimeException인지 확인

 

@ParameterizedTest, @CsvSource

@ParameterizedTest
@CsvSource(value = {"1:true", "2:true", "3:true", "4:false", "5:false"}, delimiter = ':')
void csvSourceTest(int input, boolean expected) {
    assertThat(callMethod(input)).isEqualTo(expected);
}

input에는 1, 2, 3, 4, 5가 할당됩니다. expected는 그에 맞게 true, false가 각 input에 맞게 할당됩니다.

그리고 input 값을 통해서 특정 메서드를 호출했을 때 그 결과 값이 expected인지 확인하는 테스트입니다.

 

테스트 코드를 작성할 때 사용되는 코드 중에 처음 보는 것을 정리해봤습니다.

 

1주 차에는 깃을 사용해서 코드 리뷰를 받을 수 있는 방법 및 환경 설정을 진행했습니다. 1주 차를 통해 대부분의 회사에서 이런 식으로 코드 리뷰를 진행하는구나~라는 것을 알게 되었습니다. 

또한, 코드 리뷰를 진행하면서 역할과 책임의 분리, 클래스 분리, 메서드 분리, 메서드는 한 가지 일만 하도록 하거나, else 예약어 사용하지 않기, indent depth 2를 넘지 않도록 구현하기 등과 조건을 통해 의식적인 코딩을 할 수 있어서 너무 좋았습니다.

 

1주 차를 진행하면서 1개의 미션을 거의 완료했습니다. 총 4개의 미션이 있고 미션은 점차 난이도가 증가하기 때문에 앞으로 좀 더 시간과 노력이 필요할 것으로 예상됩니다. 꼭 8.5주 안에 4개의 미션을 완수하도록 꾸준히 해보겠습니다.

 

2주 차 회고에는 한 단계(nextstep) 성장한 모습으로 글을 작성하도록 하겠습니다.

반응형