문제 상황 JUnit으로 테스트코드를 짜던 중 다른 예외를 잡는 문제가 발생했다. 문제가 된 코드는 다음과 같다. 코드 내용은 테스트케이스 입력부를 넣으면 결과가 나오거나 IllegalArgumentException을 던지는지 확인하는 것이다. 일반적으로 잘 실행되었
빌더 패턴을 구현하고 있었다. 보통은 필수 매개변수를 빌더의 생성자에 두지만, 나는 빌터 패턴의 점진적 생성(?)을 차용하고 싶었기에 마지막에, 빌더를 통해 원래 클래스를 생성할 때 검증을 하고 싶었다. null로 생성되었는지를 검증하던 중 하나의 문제에 봉착했다. 기
추상화를 달성하기 위한 또다른 방식 (Another way to achieve abstraction)속성 없이 관련된 메서드를 묶는데 쓰이는 완전한 추상 클래스 (Completely “abstract class”that is used to group related me
강의를 담아 가격을 계산하는 로직에서 각 유형별로 특별한 로직(프로모션)을 부여하고자 한다. 다음과 같이 유형은 Enum으로 구현된 상태였고, 각 로직은 모두 "할인을 적용한다"는 측면에서 같은 역할을 가졌으나 개별적인 로직이 필요했다. SRP(Single Respon
코드에 메타데이터를 추가하는 방법어노테이션은 메타데이터만을 갖고있으나 리플렉션 API와 함께 사용하면 높은 활용도를 가진다. Reflection API : 동적으로 클래스를 다루는 API, 통상적으로는 개발 중 클래스를 개발자가 직접 다룬 후 런타임에서는 실행만 하게
프로그램을 실행하는 스레드 단위. JVM은 한 애플리케이션에서 여러 Excution을 동시에 이루어지도록 한다. (A thread is a thread of execution in a program. The Java virtual machine allows an app