java 15

Spring Jpa - Paging api 처리하기

JPA를 이용해서 Paging API를 처리해보자. JpaRepository는 PagingAndSortingRepository를 상속받고 있으므로 CurdRepository보다 하위 클래스인 JpaRepository를 상속받아 구현하자. public interface WorkGroupRepository extends JpaRepository { Page findByWorkGroupNmContaining(String workGroupNm, Pageable pageable); } 예제 @RestController @RequestMapping("/workgroup") @RequiredArgsConstructor public class WorkGroupController { @GetMapping public P..

Spring 2020.09.18

한정적 와일드카드 (Bounded Wildcard Type)

한정적 와일드카드를 사용해 API 유연성을 높이라 매개변수화 타입은 불공변(invariant)이다. 즉, 서로 다른 타입 type1과 type2가 있을 때 List은 List의 하위 타입도 상위 타입도 아니다. List은 List의 하위 타입이 아니라는 뜻인데, List에는 어떤 객체든 넣을 수 있지만, List에는 문자열만 넣을 수 있다. 즉, List은 List가 하는 일을 제대로 수행하지 못하니 하위 타입이 될수 없다.(리스코프 치환 원칙 위배) 불공변 방식보다 유연한 무언가 필요 할때가 있다. public class Stack { public Stack(); public void push(E e); public E pop(); public boolean isEmpty(); } 여기에 일련의 원소를..

Java 2020.07.16

제네릭 메서드

제네릭 메서드의 작성법은 제네릭 타입 작성법과 비슷하다. 아래는 두 집합(Set)의 합 집합을 반환하는 문제가 있는 메서드다. public static Set union(Set s1, Set s2) { Set result = new HashSet(s1); // Type safety : unchecked call... 경고 result.addAll(s2); // Type Safety.. return result; } 컴파일은 되지만 경고가 발생한다. 메서드를 타입 안전하게 만들어야 경고가 사라진다. 메서드 선언에서의 세 집합(입력 2개, 반환 1개)의 원소 타입을 타입 매개변수로 명시하고, 메서드 안에서도 이 타입 매개변수만 사용하게 수정하면 된다.타입 매개변수의 목록은 메서드의 제한자와 반환 타입에서 온..

Java 2020.07.14

@NotNull @NotEmpty @NotBlank 차이

Bean Validation API의 NotNull, NotEmpty, NotBlank의 차이에 대해 설명한다. @NotNull The annotated element must not be null. Accepts any type. 모든 타입에 대해 null을 허용하지 않는다. @NotEmpty The annotated element must not be null nor empty. Supported types are: CharSequence (length of character sequence is evaluated) Collection (collection size is evaluated) Map (map size is evaluated) Array (array length is evaluated) ..

Java 2020.03.04

람다 (Lambda)

람다 람다 표현식이란 클로져(Closures)나 익명 함수, 익명 메서드(anonymous methods, anonymous functions)로 알려져있다. 다시 말해 자바에서는 익명 메서드를 나타내기 위한 표현식(expression)이라 생각하면 된다. (int x, int y) -> x + y () -> 42 (String s) -> { System.out.println(s); } 첫번째 식은 매개변수로 x, y를 받고 x, y의 합을 반환한다 두번째는 integer 42를 반환한다. 마지막은 매개변수로 String s를 받고 그것을 콘솔에 출력, 아무것도 반환하지 않는다. 일반적인 문법은 매개변수들, ->(화살표) 그리고 body로 이루어진다. body는 단독으로 표현 하거나 { } 중괄호 블럭으..

Java 2020.02.18