
처음 자바 프로그래밍을 시작했을 때, 테스트 코드를 작성하던 중 두 객체의 동등성을 비교하는데 어려움을 겪었다.두 객체의 파라미터가 같아서 isEqualTo를 사용하여 두 객체를 비교했지만 예상치 못한 실패가 발생했다.이에 대한 원인을 찾아보니 equals와 hashC

우아한테크코스 프리코스를 진행하면서 객체의 모음에 대한 처리가 필요한 경우가 많았다.예를 들어 Orders라는 클래스가 List을 멤버 변수로 가지고, Order의 개수에 대한 예외 처리가 필요한 부분이다.이런 고민들을 하면서 일급 컬렉션이 있다는 것을 알고, 재밌어서

우아한테크코스 레벨1에서 자동차 경주 미션을 받았다.이 미션의 목표는 단위테스트이다. 자동차는 이름과 위치를 가진다.이름과 위치에 대해서 검증을 하다보니 더 분리해서 테스트할 수 있을 것 같았고, 원시 값 포장에 대해서 알 수 있었다. 내가 배운 것을 정리해보려 한다.

방어적 복사란 객체를 복사하여 새로운 객체를 생성하는 것을 말한다.이렇게 복사된 객체는 원본 객체와 독립적으로 존재하며, 원본 객체의 상태 변경이 복사 객체에 영향을 주지 않는다.객체의 불변성과 안정성을 위해 사용한다. 이를 통해 예상치 못한 상태 변화나 외부에서의 객

우아한테크토스에서 사다리 미션을 진행하면서 생성자에서 객체를 생성하기 위한 어떠한 과정들이 많았다. 이것을 정적 팩토리 메서드를 통해서 분리하며 가독성을 높인 경험이 있다. 이 내용을 공유하고자 한다.정적 팩토리 메서드는 객체를 생성하는 메서드로, 해당 클래스의 인스턴

블랙잭 미션을 진행하면서 자주 사용하는 인스턴스가 많이 보였다.4가지 모양과 13가지 수로 만들 수 있는 카드는 총 52장이다. 즉, 블랙잭 게임에서 52장의 카드만 사용하고, 미리 생성해서 필요할 때마다 사용하면 성능에 이점이 있다.미리 생성해서 필요할 때마다 사용하

블랙잭 미션에서 플레이어나 딜러는 특정한 상태를 가진다.예를 들어, 2장을 뽑는 시작 상태, 카드를 뽑는 Hit 상태, 카드 뽑기를 멈춘 Stand 상태, 2장이 21점인 Blackjack 상태, 점수가 21점을 초과한 버스트 상태가 있다.bust 상태에서는 draw를