윈도우 환경에서 Spring Cache 사용여부에 따른 성능 비교를 위해 Vegeta라는 툴을 사용해보고자 한다. Cache는 Redis Cache를 사용한다.local ip 확인해두기Vegeta 설치 전 명령프롬프트에서 ipconfig를 통해 local의 IPv4 주소를 확인해두자.Vegeta 설치윈도우 환경에서 Vegeta 설치를 위해서는 WSL를 이용하여 ubuntu를 설치해줘야 한다.윈도우에 ubuntu 설치WSL로 설치한 ubuntu에 접속하고 Vegeta를 설치한다sudo snap install vegeta참고 : 스냅(Snap)은 우분투의 개발사인 캐노니컬에서 개발한 패키지 관리 시스템이다아래 명령어를 통해 스냅으로 설치된 패키지 목록을 확인할 수 있다.snap list주요 명령어 및 파라미..
발생 상황특정 원데이 클래스에 대해 페이징 된 리뷰 목록을 반환하기 위해 Response DTO 를 Page 객체로 한번 감싸서 반환하고 있습니다. @GetMapping("/{classId}/reviews") public ResponseEntity>> getClassReviews( @PathVariable Long classId, @PageableDefault Pageable pageable ) { return ResponseEntity.ok().body( SuccessResponse.of( ResponseMessage.REVIEW_GET_SUCCESS, ..
`CascadeType.REMOVE` 와 `orphanRemoval = true` 는 JPA에서 엔티티 간의 관계를 관리할 때 사용하는 두 가지 기능으로, 각기 다른 상황에서 엔티티를 삭제하는 데 사용된다.CascadeType.REMOVE기능 : `CascadeType.REMOVE` 는 부모 엔티티가 삭제될 때, 관련된 엔티티도 함께 삭제하도록 설정하는 기능이다.사용 시기 : 부모 엔티티와 자식 엔티티가 강한 의존 관계를 가지고 있어서 부모 엔티티가 삭제 될 때 자식 엔티티도 함께 삭제되어야 하는 경우에 사용한다.예시@Entitypublic class Parent { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long..
LocalDateTime을 바이트화(직렬화) 할 때 어떤 규칙으로 할지 지정되지 않아 발생하는 에러이다. 에러가 발생한 대상 LocalDateTime 타입의 필드에 직렬화(Serialization)와 역직렬화(Deserialization)를 위한 어노테이션을 사용하여 해결. public class Dividend { @JsonSerialize(using = LocalDateTimeSerializer.class) @JsonDeserialize(using = LocalDateTimeDeserializer.class) private LocalDateTime date; private String dividend; } @JsonSerialize(using = LocalDateTimeSerializer.class)..