전체 글

github: https://github.com/belljun3395 email: belljun3395@gmail.com
· 스프링
AuditingEntityListener 등록AuditingEntityListener이 동작하기 위해서는 아래와 같은 설정이 필요하다.@Configuration@EnableJpaAuditingclass ApplicationConfig {} @Documented @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Import(JpaAuditingRegistrar.class) public @interface EnableJpaAuditingEnableJpaAuditing를 통해 JpaAuditingRegistrar가 임포트 된다. JpaAuditingRegistrar는 ImportBeanDefinitionRegistrar를 확장하고 있다.Im..
· 스프링
SliceSlice 정의다음 또는 이전 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() 같은 집계 함수는 시간 ..
· 개발
레디스를 캐시로 활용할 때 모든 키에 대해 만료 시간을 설정하는 것은 권장되지만, 대규모 트래픽 환경에서 만료 시간을 어떻게 설정하느냐에 따라 캐시 스탬피드와 같은 예상치 못한 문제 상황이 발생할 수 있다. 레디스에서 특정 키가 만료되는 시점을 생각해 보자. 만약 여러 개의 애플리케이션에서 바라보던 키가 레디스에서 만료돼 삭제된다면 이 서버들은 한꺼번에 데이터 베이스에 가서 데이터를 읽어오는 과정을 거친다. 이를 중복 읽기라고 한다. 이후 각 애플리케이션에서 읽어온 데이터를 레디스에 쓰게 되는데, 이 또한 여러 번 반복되기 때문에 중복 쓰기가 발생한다. 일반적으로 정렬이나 카운팅처럼 데이터베이스에서 쿼리하는 데 오랜 시간이 걸리는 작업을 미리 계산해서 캐시에 저장해 두기 때문에, 캐시에 데이터가 없는 경..
belljun
belljundev