Spring Framework/Spring

Spring Framework/Spring

Spring AttributeConverter로 엔티티와 DB 컬럼 간 데이터 변환하기 - 엔티티와 DB 컬럼 매핑

Converter란DB에서 어떤 값을 저장할 때 전/후 처리가 필요한 경우가 있습니다.이를 Spring AttributeConverter 인터페이스를 구현하여 처리할 수 있습니다. 사용 예시로, 자바 코드에서는 성과 이름을 따로 관리하고, 데이터베이스에서는 성이름을 그대로 저장하려는 경우 어떻게 처리하는지 보겠습니다. AttributeConverterpublic interface AttributeConverter { public Y convertToDatabaseColumn (X attribute); public X convertToEntityAttribute (Y dbData);}convertToDatabaseColumn : 데이터베이스 컬럼으로 변환해주는 메서드이며, 자바 객체를 어떻게 변..

Spring Framework/Spring

[Spring] Optional 주요 메서드 활용법 - map, orElse, orElseGet, isPresent, ifPresent

OptionalOptional은 값이 있을 수도 있고 없을 수도 있는 상황을 처리할 때 사용합니다.이를 통해 null을 직접 다루지 않고, 값의 유무를 명시적으로 처리할 수 있습니다.NullPointerException을 방지하면서 코드 가독성을 높일 수 있다. Map()Optional.map() 은 값이 있으면 해당 값을 꺼내와서 코드 블럭을 실행합니다.map() 함수는 간단히 A type을 B type으로 변경하는 역할을 합니다.Optional을 사용하면서 메서드 체이닝을 사용해 처리할 수 있습니다.public String getTeamNameFromDevice(Optional optDevice){ return optDevice .map(Device::getOwner) .map(Use..

Spring Framework/Spring

Java HashMap vs LinkedHashMap 차이점 - 스프링에서 데이터 삽입 순서 유지하기

Map - Grouping 데이터 삽입 순서대로 안 돼요..HashMap을 이용해서 Grouping 하여 데이터가 삽입된 순서대로 반환하려고 했는데, 데이터의 순서가 변경되어 반환되는 문제가 있었습니다.해당 문제는 HashMap으로 Map 객체를 만들어 데이터의 삽입 순서가 보장되지 못한 문제였습니다.Map> groupedCategory = Categories.stream() .collect(Collectors.groupingBy(Category -> Category.type().get(locale))); 위 코드에서 데이터를 순서대로 그룹핑하기 위해 기본적으로 적용되는 Map 구현체가 아닌 LinkedHashMap을 사용하여 입력된 순서가 유지되도록 해야 합니다.Map> groupedC..

Spring Framework/Spring

Spring 정렬 Sort, Order 클래스 이해하기 - 정렬 방향, 속성 접근하기

Sort란Sort 클래스는 스프링에서 정렬을 위한 정보를 담고 있습니다.Sort.Order 객체는 정렬 방향과 정렬할 타겟에 대한 정보를 가지고 있습니다.Order 클래스는 Sort 클래스 내부에 있는 내부 클래스입니다. Sort 객체 생성Sort 클래스를 여러 정렬 조건을 정의할 수 있습니다.Sort.by()를 통해 정렬 방향과 속성을 정의합니다.Sort sort = Sort.by(Sort.Order.asc("name"), Sort.Order.desc("age"));Order 클래스property : 정렬할 필드 이름direction : 정렬 방향 Sort.Order 접근Sort 객체 내의 정렬 조건과 정렬 대상 속성을 확인하기 위해서는 Sort 객체를 Stream으로 순회하거나 forEach를 사용해..