본문 바로가기
반응형

API2

[Spring Boot] Record 객체를 이용하여 DTO 작성 Java record란?Java record는 Java 14에서 도입된 기능이다. 주로 데이터 전달 객체(DTO)와 같은 불변 객체를 정의할 때 사용된다. record는 클래스를 정의할 때 필드, 생성자, 접근자, toString(), equals() 및 hashCode() 메서드를 자동으로 생성하여 코드가 간결해진다. 주요 특징은 다음과 같다: 1. 불변성 (Immutability):record는 기본적으로 불변 객체이다. 생성 후 상태를 변경할 수 없다. 2. 자동 생성되는 메서드들:record는 필드를 기반으로 toString(), equals(), hashCode(), getter 메서드를 자동으로 생성한다. 3. 간결한 문법:record는 클래스를 정의하는 것보다 간단한 문법을 제공한다.기존 c.. 2025. 1. 25.
[Spring boot jpa] 찜하기/좋아요 api에서 나온 race condition 문제 해결 찜하기 기능을 구현하기 위해 하나의 PATCH API를 사용하였고, 이를 통해 찜하기와 해제 기능을 동시에 처리하도록 설계했습니다. 그러나 다량의 찜하기/해제 요청이 동시에 들어오면서, user_id와 house_id가 같은 pin 엔티티가 중복 생성되는 문제가 발생하였고, 이에 따라 서버 오류가 발생했습니다. 아래와 같이 다대다 관계로 찜/좋아요 기능을 위해 엔티티를 설계했습니다.@Entity@Table(name="pin")@Datapublic class Pin { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne(fetch = FetchType.LAZY, cascade = Casc.. 2025. 1. 24.