분류 전체보기118 자바에서의 불변 객체 (Immutable Object) 불변 객체란 생성 후 상태(객체가 담고 있는 값)를 변경할 수 없는 객체를 말합니다. 불변 객체는 여러 스레드에 의해 동시에 사용되어도 상태가 변경되지 않으므로 동시성 문제가 발생하지 않습니다. 그런 이유로 불변 객체는 안전하게 재사용될 수 있습니다. 예를 들어, String 객체는 여러 참조에서 공유될 수 있습니다. 불변 객체 생성 클래스를 final로 선언하여 상속을 방지합니다. 모든 필드를 private final로 선언합니다. 외부에서 필드의 값을 변경할 수 있는 setter 메서드를 제공하지 않습니다. 생성자를 통해서만 상태를 설정할 수 있고, 객체 생성 후에는 이 상태를 변경할 수 없습니다. public final class ImmutablePerson { private final String.. 2024. 4. 3. 자바에서 동일성, 동등성 비교하기 자바 프로그래밍을 하다 보면 객체 간의 비교를 해야할 때가 종종 있습니다. 이 때 동일성(Identity), 동등성(Equality)의 개념을 정확히 이해하는 것이 중요합니다. 두 개념은 비슷해 보이지만, 자바에서는 매우 다른 의미를 가집니다. 동일성 (Identity) 동일성 비교란 두 객체의 참조가 실제로 같은 객체를 가르키고 있는지를 확인하는 것입니다. 즉, 두 객체의 메모리 주소가 같은지를 비교하는 것이죠. 자바에서는 "==" 연산자를 사용하여 동일성을 비교합니다. 동등성 ( Equality ) 반면, 동등성 비교는 두 객체가 논리적으로 같은가를 확인하는 것입니다. 이는 두 객체의 내용이 같은지를 보는 것이며, 이를 위해서는 equals() 메서드를 오버라이드 (재정의) 해야 합니다. Object.. 2024. 4. 3. QueryDsl 페이징 처리 이번 포스팅에서는 Springboot + Querydsl을 활용한 pageing 처리를 어떻게 하는지 살펴보겠습니다. DTO 설계 Request DTO 설계 조회 조건과 페이징 요청을 담은 객체를 설정합니다. 이때, 페이징 속성은 공통을 사용하기 위해 상속을 받습니다. @Data @NoArgsConstructor public class MemberSearchCond extends PageRequestDto { private String username; private String teamName; private Integer ageGoe; private Integer ageLoe; } PageRequestDto 클래스는 페이징 처리를 위한 요청 데이터 속성을 설정합니다. 이 클래스는 클라이언트로 부터 페.. 2024. 4. 1. QueryDsl에서 함수 사용 Expressions 클래스는 SQL 함수의 다양한 표현식을 Java 코드로 직접 사용할 수 있으며, JPA와 같이 Dialect(방언)에 등록된 내용만 호출할 수 있습니다. QueryDsl의 Expressions 클래스에서 자주 사용되는 다양한 함수의 사용 예시를 소개합니다. @Test void Expressions_사용() { List result = queryFactory .select( Expressions.currentDate().stringValue() .concat(" ") .concat(Expressions.currentTime().stringValue()).as("currentDate"), // member.username.concat(member.age.stringValue()) Exp.. 2024. 3. 27. 이전 1 ··· 5 6 7 8 9 10 11 ··· 30 다음