목록TDD (5)
개발일기
사실 지금 회사 프로젝트 구조는 테스트 코드를 짜기에는 적합한 구조는 아니다. 하지만 그럼에도 불구하고 테스트 코드를 작성하였다. 내가 테스트 코드를 작성한 몇가지 이유는 아래와 같다.1. 부동산 관련 세금 정산은 오차가 있으면 안된다. 반드시, 검증을 통해 값이 올바르게 사용자에게 보여주는 지 확인이 가능해야 한다.2. 특정 코드를 수정하면 다른 코드까지 사이드 이펙트가 번질 확률이 있다. 3. 해당 코드는 한번 작성하면 부동산 정책이 바뀌지 않는 한 코드를 다시 작성할 이유가 없으며 추후에도 검증 코드를 리팩토링하여 재사용할 수 있다.4. 우리가 원하는 MSA구조로 리팩토링 할 경우, 기존에 가지고 있는 테스트 코드를 리팩토링하여 활용할 확률이 있다. 위에와 같은 이점 때문에 나는 테스트 코드를 작..
나는 해당 프로젝트를 다시 작성하며 몇 가지 포인트에 힘을 쓰며 코딩을 하였다. 1. 다시 만드는 레이싱 게임은 원자 값 또한 객체로 포장하려고 노력하였다. 이러한 노력 덕분에 얻을 수 있었던 이 점은 이름이나 이동하는 숫자에 대한 여부를 Parsing 해주는 부분에서 해당 객체에 책임을 부여하여 조금 더 코드가 객체지향적으로 변경되었던거 같다..! 2. Oracle에 나와있는 자바 표준 스타일을 지키며 코딩하려고 노력하였다.3. indent 들여쓰기를 3이상 만들지 않으려고 노력하였다. 예를 들어 for 문 안에 if문을 작성하는 행위 4. 중복되는 테스트를 작성하지 않으려고 노력하였다. 이유는 테스트 코드 또한 요구 사항이 변경하면 유지보수 해야하는 코드이기 때문에 중복하여 테스트를 작성하지 않으려..
RacingCar 공부 회고.. 리팩토링을 하면서 가장 우선적으로 일급 컬렉션을 사용하기 위하여 노력하였다. 일급 컬렉션의 장점은 일급 컬렉션을 사용하면서 기존에 car에 있던 코드들이 일급 컬렉션 안에 코드로 옮겨가지면서 조금 더 큰 틀을 쉽게 볼 수 있으며 OOP 규칙을 조금 더 잘지키면서 코드를 작성하는 느낌이 든다. 사실 OOP라는 말을 정말 많이 들었다. 근데 문득 "나는 OOP가 뭔지 잘 알고 있을까?" 라는 고민을 가지게 되었다. OOP는 4가지 규칙을 가지고 있다. 1) 캡슐화- 캡슐화는 객체의 데이터와 메서드를 하나의 단위로 묶고, 외부로부터 내부 상태를 숨기는 개념이다. - 객체의 데이터는 private로 막아 외부에서 직접 접근을 불가능하도록 하고, getter, setter 메서드..
우선 나는 레이싱 게임을 구현하는 TDD 과제를 받았다. 이를 통해서 어디서 부터 작성해야하는지 고민하였고 실패 코드 먼저 작성하려고 하는데 감이 안잡혀서 요구사항을 먼저 작성하였다. ## 기능 구현* 초간단 자동차 경주 게임을 구현한다.* 주어진 횟수 동안 n대의 자동차는 전진 또는 멈출 수 있다.* 사용자는 몇 대의 자동차로 몇 번의 이동을 할 것인지를 입력할 수 있어야 한다.* 전진하는 조건은 0에서 9 사이에서 random 값을 구한 후 random 값이 4이상일 경우이다.* 자동차의 상태를 화면에 출력한다. 어느 시점에 출력할 것인지에 대한 제약은 없다.* 사용자에게 받은 자동차 대수가 2대 이하면 게임을 진행할 수 없다.* 시도할 회수가 0이하이면 게임을 진행할 수 없다.### 기능 구현* ..
나는 이번에 TDD 공부를 강의도 사서 보고, 직접 프로젝트를 적용하면서 공부하다가 과연 이렇게 하는게 맞을까? 내가 작성하는 코드들은 왜이렇게 별로인거같지라는 생각이 끊임 없이 들었고 공부할 수록 어떤 코드가 좋은 코드인지 몰랐다. 그래서 next-step을 듣고 해당 글들을 블로그에 저장하고 두고두고 보려고 한다. 📖 StringTest package study;import org.junit.jupiter.api.DisplayName;import org.junit.jupiter.api.Test;import static org.assertj.core.api.Assertions.assertThat;import static org.assertj.core.api.Assertions.assertThatT..