AuditingEntityListener 등록AuditingEntityListener이 동작하기 위해서는 아래와 같은 설정이 필요하다.@Configuration@EnableJpaAuditingclass ApplicationConfig {} @Documented @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Import(JpaAuditingRegistrar.class) public @interface EnableJpaAuditingEnableJpaAuditing를 통해 JpaAuditingRegistrar가 임포트 된다. JpaAuditingRegistrar는 ImportBeanDefinitionRegistrar를 확장하고 있다.Im..
전체 글
github: https://github.com/belljun3395 email: belljun3395@gmail.comSliceSlice 정의다음 또는 이전 Slice가 있는지를 나타내는 데이터 조각을 의미한다. 이전 또는 다음 Slice를 요청할 수 있는 Pageable 객체를 얻을 수 있도록 해준다. Slice 요소public interface Slice extends Streamable { int getNumber(); int getSize(); int getNumberOfElements(); List getContent(); boolean hasContent(); Sort getSort(); boolean isFirst(); boolean isLast(); boolean hasNext(); boolean hasPrevious()..
NullAway 소개NullAway는 Java 코드에서 NullPointerException(NPE)을 제거하는 데 도움을 주는 도구다. NullAway를 사용하려면, 먼저 필드, 메서드 파라미터, 또는 반환 값이 null일 수 있는 경우 해당 부분에 @Nullable 어노테이션을 추가해야 한다. 이 어노테이션들을 기반으로, NullAway는 타입 기반의 로컬 검사를 수행하여 코드 내에서 dereference(참조)되는 어떤 포인터도 null이 아님을 보장한다. NullAway는 Kotlin이나 Swift 언어에서의 타입 기반 널 안정성 검사, 그리고 Java용 Checker Framework나 Eradicate와 유사하다. NullAway는 매우 빠르다. Error Prone의 플러그인으로 제작되었으며..
MIME미디어 타입 (Multipurpose Internet Mail Extensions 또는 MIME type로도 알려져 있음)이란 문서, 파일 또는 바이트 집합의 성격과 형식을 나타낸다. MIME 타입은 IETF의 RFC 6838에 정의 및 표준화되어 있다.브라우저는 '파일 확장자가 아닌' MIME 타입을 사용하여 URL 처리 방법을 결정한다. 따라서, 웹 서버가 응답의 Content-Type 헤더에 올바른 MIME 타입을 보내는 것이 중요하다. 올바르게 구성하지 않으면, 브라우저가 파일 내용을 잘못 해석할 가능성이 높고, 사이트가 제대로 작동하지 않고 다운로드한 파일이 잘못 처리될 수 있다. MIME의 구조type/subtype;parameter=value일반적으로 /으로 구분된 type과 subt..
MySQL 날짜 데이터 타입MySQL에서 지원하는 주요 날짜 및 시간 데이터 타입은 아래와 같다.DATE: 날짜 (연-월-일)TIME: 시간 (시:분:초)DATETIME: 날짜와 시간TIMESTAMP: 날짜와 시간 (자동 초기화 및 갱신 기능 있음)YEAR: 연도 (4자리 또는 2자리)2자리 연도의 경우 아래와 같은 규칙으로 처리된다.70~99: 1970~199900~69: 2000~2069SQL 모드에 따른 유효성 제어ALLOW_INVALID_DATES: 잘못된 날짜도 허용 (예: 11월 31일)NO_ZERO_IN_DATE: 월 또는 일이 0인 날짜 거부 (예: 2024-00-12)NO_ZERO_DATE: '0000-00-00' 같은 “zero” 날짜 거부SUM(), AVG() 같은 집계 함수는 시간 ..
레디스를 캐시로 활용할 때 모든 키에 대해 만료 시간을 설정하는 것은 권장되지만, 대규모 트래픽 환경에서 만료 시간을 어떻게 설정하느냐에 따라 캐시 스탬피드와 같은 예상치 못한 문제 상황이 발생할 수 있다. 레디스에서 특정 키가 만료되는 시점을 생각해 보자. 만약 여러 개의 애플리케이션에서 바라보던 키가 레디스에서 만료돼 삭제된다면 이 서버들은 한꺼번에 데이터 베이스에 가서 데이터를 읽어오는 과정을 거친다. 이를 중복 읽기라고 한다. 이후 각 애플리케이션에서 읽어온 데이터를 레디스에 쓰게 되는데, 이 또한 여러 번 반복되기 때문에 중복 쓰기가 발생한다. 일반적으로 정렬이나 카운팅처럼 데이터베이스에서 쿼리하는 데 오랜 시간이 걸리는 작업을 미리 계산해서 캐시에 저장해 두기 때문에, 캐시에 데이터가 없는 경..