public record BenefitDto(EnumMap<DiscountPolicy, Integer> discountResults, BenefitFood benefitFood) { public static BenefitDto create(EnumMap<DiscountPolicy, Integer> discountResults...
DTO 그리고 DTO 사용 이유
입력 값은 어떻게 처리하는 것이 좋을까?
private BonusNumber getBonusNumber(WinningNumbers winningNumbers) { try { String bonusNumber = InputView.inputBonusNumber(); return BonusNumber.create(bonusNumber, winningNumbers); } ...
프리코스 3주차 회고
[프리코스 3주차 미션 링크] https://github.com/woowacourse-precourse/java-lotto-6 [제출 코드 링크] https://github.com/woowacourse-precourse/java-lotto-6/pull/174 프리코스 3주차 3주차 문제는 로또 문제입니다. 사용자가 입력한 금액에 맞는 수량의...
Enum Map
Enum Map? Enum 타입만 Key로 사용 가능한 Map Array를 이용해 성능적으로 우수하다. 해싱 과정이 필요없어 HashMap보다 빠르다. null을 Key로 넣는 경우 NullPointerException이 발생한다. thread-safe 하지 않다. Enum Map을 thread-safe하게 사용하고 싶다면 아...
Integer.valueOf(127) == Integer.valueOf(127), Integer 캐시
Integer 객체를 비교함에 있어 정석은 equals 함수를 사용해 비교해야 한다. 그런데 ‘==’을 사용해 풀어도 어떤 경우에는 원하는 대로 동작하는 경우가 있다. @Test void compareInteger() { Integer num1 = 128; System.out.println(num1 == Integer.valueOf(...
변수 이름에 왜 자료형을 사용하면 안될까?
프리코스 공통 피드백 중 변수 이름에 자료형을 사용하지 말라는 피드백이 있었다. List<Car> carList = cars.getCars(); // X String carNameStr = car.getName(); // X 왜 변수명에 자료형을 사용하면 안될까? List<Car> carList = cars.getCars(...
함수형 프로그래밍 그리고 람다식과 함수형 인터페이스
함수형 프로그래밍 함수형 프로그래밍은 객체지향 프로그래밍과 같은 프로그래밍 패러다임 중 하나이다. 객체 지향 프로그래밍 객체 스스로가 상태를 가지고, 객체간에 메시지를 전달하며 협력하게 된다. 클래스 디자인과 객체들의 관계를 중심으로 코드 작성이 이루어진다. 따라서 상태, 멤버변수, 메서드 등이 긴밀한 관계를 가지고 있다. 특히 멤버변수...
record
Record Java 14부터 도입된 Record는 불변 데이터를 쉽게 생성할 수 있도록 도와주는 새로운 유형의 클래스이다. public class Student { private final String name; private final int number; public Student(String name, int numb...
프리코스 2주차 회고
[프리코스 2주차 미션 링크] https://github.com/woowacourse-precourse/java-racingcar-6 [제출 코드 링크] https://github.com/woowacourse-precourse/java-racingcar-6/pull/369 프리코스 2주차 2주차 문제는 자동차 경주 문제입니다. 경주에 참가할...
Input값의 검증은 어디서 이루어져야 할까?
미션을 진행하면서 나는 입력 값에 대한 검증을 View에서도 해보고, 각 도메인 객체에서 해보기도 했다. 이렇게 여러 곳에 검증을 둬보며 검증의 역할을 어디에 두어야 하는 지에 대해 고민한 결과를 기록해보려 한다. View에서 검증 public class InputView { private InputValidator inputV...