목록2024/02/29 (4)
csct3434
equals() 두 객체의 동등성을 비교하기 위해 오버라이딩하는 메서드 동등성 : 두 객체가 동등한 정보를 가지고 있는 지(equals) 동일성 : 두 객체가 동일한 객체인지 (==) Object 클래스의 equals()는 기본적으로 동일성을 비교하기 때문에, 객체의 동등성을 비교하려면 equals() 메서드를 재정의해야 함 hashCode() Object 클래스의 hashCode() 메서드는 네이티브 메서드로, 객체의 주소 값을 이용하여 생성한 해시 코드를 반환 주의할 점은, 객체의 주소 값을 이용하는 것이지 주소 값 자체가 해시 코드 값이 아니라는 점이다. equals() 메서드 오버라이딩 시 주의사항 Object 클래스의 hashCode() 메서드 주석을 보면, 빨간 글씨로 equals() 메서드를..
인트로 Offset 페이징과 No-Offset 페이징의 성능을 비교하기 위해 더미 데이터를 추가하던 중, 호기심이 생겨 다양한 방식으로 적재 속도를 비교해 보았습니다. 실행 환경 PC : Apple M2 Pro (저전력모드) Tool : IntelliJ Datagrip Docker : MySQL 8.0.31 더미 데이터 1,000만 건의 Article 레코드 외래키 제약조건 1개, Check 제약조건 2개가 존재 성능 측정 1. 개별 Insert from datetime import datetime #SQL 파일 생성 sql_file_path = 'individual_insert.sql' with open(sql_file_path, 'w') as sql_file: # 1부터 10000000까지의 데이터 ..
인생 처음으로 오픈소스 프로젝트에 기여를 했다! 🎉 주석에 있던 오타를 정정한 게 전부였지만, 오픈소스 기여 경험이 없었고 그 대상도 자바 개발자라면 한번쯤 들어본 AssertJ 라이브러리여서 몹시 두근거렸다 ❤️🔥 검토되는 데 오래 걸릴 줄 알았는데, 잠깐 사이에 AssertJ 레포지토리에 내 아이디가 떠있어서 정말 신기했다 😁 예전에 지나가다 본 블로그에서 대형 프로젝트에 이런 식으로 기여했다는 글을 보고 정말 부러웠는데, 나도 우연히 발견한 오타로 오픈소스 프로젝트에 기여해 볼 수 있어서 참 즐거웠다 :) 정말 사소한 기여였지만, 오픈소스 기여의 첫걸음을 떼었기에 나에게는 의미가 큰 경험이었다 👊
문제 상황테스트 코드를 작성하던 중, 실제 엔티티의 생성 시간과 DB에 저장된 값이 일치하지 않는 오류가 발생했습니다.로그를 확인해 보니, DB에 저장된 값은 22초인데 실제 생성 시간은 21.805265로 약 0.2초의 오차가 있었습니다.문제 원인JPA Auditing에서 LocalDateTime은 기본적으로 MySQL의 datetime과 매칭되는데, 이는 실제로 datetime(0)에 해당합니다.여기서 0은 반올림 자리수를 나타내는 값으로, 소수점 첫번째 자리에서의 반올림을 의미합니다.이로 인해, MySQL에 21.805265 값이 전달되어도 22.0으로 반올림 되어 오차가 발생하게 됩니다.해결 방법1. datetime 반올림 자릿수 변경datetime의 반올림 자리수를 변경하여 JPA Auditin..