Home

인스턴스화를 막으려거든 private 생성자를 사용해라

인스턴스화하지 않으려는 클래스?객체지향적이지 않지만 필요할 때가 있다.java.lang.Math, java.util.Array 같이 기본 타입 값이나 배열 관련 메서드를 모아둔 곳java.util.Collections와 같이 특정 인터페이스를 구현한 객체를 생성하는 정적 메서드를 모아둔 곳.final 클래스와 관련된 메서드를 모아놓을 때. (final 클래

자바 제네릭과 와일드카드 튜토리얼

요약 본 포스트는 오라클 자바 튜토리얼 제네릭 부분을 공부한 내용을 적은 포스트이다.JDK 8 기반으로 작성됐다. https://docs.oracle.com/javase/tutorial/java/generics/why.html 제네릭은 왜 쓰는가제네릭은 클래스, 인터페이스, 메서드를 선언할 때 타입(클래스, 인터페이스)도 매개변수로 만들 수 있다.전통적

Enum에서 메서드 참조와 BiFunction 사용하기

요약 int matchCount와 boolean bonusMatch를 BiFunction를 통해 해당 Enum 객체를 찾을 수 있다. 문제 배경 (안좋은 사례 모음) 로또 순위를 Enum LottoRank로 등수와 상금을 관리하고자 한다.LottoRank가 맞춘 번호 갯수와 보너스 번호 맞춤여부를 전달받아 등수를 판별해야 한다. LottoRank에

Junit으로 parameterized test

요약 @ParameterizedTest 어노테이션과 함께 @MethodSorce나 @ValueSource를 통해 한 테스트 메서드에 여러번 파라미터를 넘길 수 있다. @MethodSource 도입 배경 자동차 이름의 글자 갯수가 5개 이하여야 하고, 자동차 이름이 빈 문자열이면 안되고 등등 다양한 제약 사항을 테스트해보고 싶다고 하자.근데 테스트 코드

우아한테크코스 자동차 경주 미션 회고

아직도 내가 모르는 게 이렇게 많다니. 우테코 첫 미션을 하면서 배운 것도 많지만 그보다 더 많이 내가 모르고 있다는 걸 알게됐다.같이 공부하는 크루들도 출중한 사람이 엄청 많았다. 그에 비하면 내 코드는 뭐… 바보 같을 때가 많았다. 페어 프로그래밍으로 같이 하면서, 처음엔 나 혼자하는게 더 빠르지 않을까 싶기도 했었는데,같이하는 페어의 독특한 생각을 많

자바의 예외 Throwable, Error, Exception

요약 Throwable -> Exception -> RuntimeException 등 다양한 예외Throwable은 stackTrace 생성 등 예외에 필요한 다양한 일을 함Exception은 예외 메시지를 받아 초기화할 수 있다RuntimeException은 치명적이진 않은 예외를 뜻함.RuntimeException은 치명적일 수 있는 에외

자바 사용자 정의 예외 만들기

요약 예외를 상속하는 클래스를 통해 예외를 만들 수 있다.생성자를 통해 에러 메시지를 초기화 할 수 있다. 배경 12345public void checkCarNameEmpty(String carName) { if (carName == null || carName.equals("")) { throw new R

자바 일급 컬렉션 활용해보기

요약 일급 컬렉션은 컬렉션 객체를 감싸는 객체를 말한다.일급 컬렉션은 객체를 만들 때 검증해야 할 로직을 모아 둘 수 있다.일급 컬렉션은 해당 컬렉션이 행해야 할 책임을 모아 둘 수 있다. 불변성을 지키기 위해서는 setter 금지. 일급 컬렉션의 멤버 변수를 초기화할 때 가져온 인자를 새로운 주소값으로 재할당 getter 할 때 불변 객체 반

자바에서 정규 표현식 잘 활용하기

요약 Pattern 클래스와 Matcher 클래스를 활용해서 자바 정규 표현식을 잘 표현한다. 특히 Matcher클래스에 정규 표현식을 compile(String)하고, matcher(String)으로 대상 문자열을 전달해준다.이때 find()메서드를 반드시 실행해줘야 정상적으로 Matcher 객체에 관련 내용이 할당된다!! Pattern 클래스로 정규

JPA에서 @Embedded로 복합키 매핑하기

요약 @Embeddable를 붙인 복합키 클래스를 만든다 엔티티 클래스에 @EmbeddedId를 통해 복합키 필드를 만든다. 이때 엔티티 클래스의 모든 매개변수를 받는 생성자를 만든다.이때 복합키 필드는 new로 객체를 초기화해준다. 문제 상황챌린지 테이블과 태그 테이블이 다대다 관계인 상황이다.이때 태그 테이블은 이름이 기본키이고, 챌린지 테이블은