본문 바로가기

교육 및 책23

TDD, 클린 코드 - 로또(자동) 로또 자동 LottoNumber public class LottoNumber { public static final int LOTTO_MINIMUM_NUMBER = 1; public static final int LOTTO_MAXIMUM_NUMBER = 45; private static final String ILLEGAL_LOTTO_NUMBER_MESSAGE = "올바른 로또 번호를 입력해주세요. 입력된 번호 : "; private final int number; public LottoNumber(int number) { this.number = validatedLottoNumber(number); } public int number() { return number; } private int valid.. 2023. 4. 23.
TDD, 클린코드 - 문자열 사칙연산 계산기 2번째 미션 - 로또, TDD 로또 미션 이전에 자동차 경주 5단계까지 마무리했는데 스프링이나 DB 공부나 과제 미션 클리어하는데 집중한다고 제대로 블로그를 작성하지 못했다.. 지금부터라도 제대로 작성해보자! 이번 첫 단계인 문자열 사칙연산 계산기는 좋은 피드백도 많이 받아서 기분이 좋다ㅎㅎ 문자열 사칙연산 계산기 Operand 클래스 public class Operand { private static final Pattern NUMBER_PATTERN = Pattern.compile("^[0-9]*$"); private static final String ILLEGAL_NUMBER_MESSAGE = "양수를 입력해주세요."; private final String operand; // 양수만 입력가능하다.. 2023. 4. 19.
TDD, 클린 코드 - 자동차 경주 자동차 경주 피드백 Car public class Car { private int distance; public Car() { this.distance = 0; } public int distance() { return distance; } // 람다식으로 표현할 수 있도록 GameStrategy를 Funtional Inteface로 만들었는데 이 부분에 대해 따봉 받았다! // Predicate Interface와 고민했는데 movable 메서드로 좀 더 의도적으로 표현하기 위해 GameStrategy Interface를 만들었다. public void forward(GameStrategy racingStrategy) { if (racingStrategy.movable()) { distance++; }.. 2023. 4. 13.
TDD, 클린 코드 - 문자열 덧셈 계산기 2단계 - 문자열 덧셈 계산기 StringAddCalculator class StringAddCalculator { private static final int ZERO = 0; private static final String RUNTIME_EXCEPTION_MESSAGE = "문자열 계산기에 숫자 이외의 값 또는 음수를 전달하는 경우 RuntimeException 예외를 throw한다."; private static final String ZERO_TO_NONE_REGEX = "^[0-9]*$"; private static final String DEFAULT_DELIMITER = "[,:]"; private static final Pattern CUSTOM_DELIMITER = Pattern.com.. 2023. 4. 8.
TDD, 클린 코드 학습 테스트 TDD, 클린 코드 with Java 16기 시작 백엔드 개발자가 되자 목표를 하고 2주 동안 열심히 Java를 공부하고 박재성님의 TDD, 클린 코드 강의가 시작되었다! 물론 내가 들을 수준은 아니지만 하나라도 배우자는 마인드를 가지고 열심히 달려보자! 1단계 학습 테스트 자동차 경주를 시작하기에 앞서 선수 과제가 있었고, 이에 대한 피드백을 정리! String 클래스에 대한 학습 테스트 package study; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.pro.. 2023. 4. 5.