개발중622 [MYSQL] 이벤트 스케쥴러 (Event Scheduler) 사용법 🎉 안녕하세요!MySQL 이벤트 스케줄러를 사용하면, 정기적으로 반복되는 작업(예: 로그 정리, 데이터 백업, 오래된 레코드 업데이트 등)을 데이터베이스 내부에서 자동으로 실행할 수 있다고 해요!이번 포스팅에서는 이벤트 스케줄러를 조회, 생성, 삭제하는 방법과 이벤트 쿼리 작성법에 대해 알아보도록 할게요. 🚀 1. 이벤트 스케줄러 조회 🔍1-1. 이벤트 스케줄러 상태 확인먼저 이벤트 스케줄러가 활성화되어 있는지 확인해봅시다.MySQL 클라이언트에서 아래 명령어를 입력해 보세요.SHOW VARIABLES LIKE 'event_scheduler'; 결과가 ON이면 이벤트 스케줄러가 활성화된 상태예요. 만약 OFF라면, 다음 명령어로 활성화할 수 있어요. SET GLOBAL event_scheduler = .. 개발중/MYSQL 2025. 3. 26. Dockerfile 에서 Test 코드 실행하지 않고 Build 하는 방법 ( Gradlew, Maven ) Docker 이미지를 빌드할 때, 테스트 코드를 실행하지 않고 빠르게 빌드할 필요가 있을 때가 있습니다. 여기서는 Gradle Wrapper(gradlew)와 Maven을 사용하는 경우 각각 테스트를 건너뛰는 방법을 소개합니다.Gradle Wrapper (gradlew)Gradle로 프로젝트를 빌드할 때, 모든 테스트를 실행하지 않고 빌드를 진행하려면 -x test 옵션을 사용합니다. Dockerfile 내에서는 다음과 같이 명령어를 작성할 수 있습니다. RUN ./gradlew build -x test 위 명령어는 프로젝트의 빌드 작업을 수행하면서 테스트 태스크를 제외합니다. 이를 통해 테스트 실행에 소요되는 시간을 절약하고, 빠른 이미지 빌드가 가능합니다. MavenMaven 프로젝트의 경우, 테스트.. 개발중/Docker 2025. 3. 19. @JsonTypeInfo 활용 사례와 예제 @JsonTypeInfo란?@JsonTypeInfo는 Jackson 라이브러리에서 다형성(Polymorphism) 직렬화와 역직렬화를 지원하기 위해 사용되는 애너테이션입니다.객체지향 프로그래밍에서 상속 구조를 가지는 클래스 계층이 있을 때, 상위 클래스 타입으로 선언된 필드에 여러 하위 클래스의 객체가 저장될 수 있습니다.이러한 상황에서 객체를 JSON으로 직렬화할 때, 단순히 필드 값만 기록하면 역직렬화 시 원래의 구체적인 클래스 정보를 알 수 없습니다.@JsonTypeInfo는 이 문제를 해결하기 위해, JSON 데이터에 타입 정보를 포함시켜 저장함으로써, 역직렬화 시 원래의 하위 클래스로 복원할 수 있도록 도와줍니다.주요 속성은 다음과 같습니다:use: 타입 식별자(strategy)를 지정합니다.예.. 개발중/Spring 2025. 3. 17. Spring Boot JPA에서 엔티티를 읽기 전용으로 설정하는 방법 ( @Immutable과 readOnly 트랜잭션 활용하기 ) Hibernate의 @Immutable 사용Hibernate를 사용한다면, 엔티티 클래스에 @Immutable 어노테이션을 추가할 수 있습니다. @Immutable 어노테이션은 해당 엔티티가 수정되지 않는다는 것을 Hibernate에게 알려주며, 업데이트나 삭제 작업을 무시하거나 예외를 발생시킵니다. import javax.persistence.Entity;import org.hibernate.annotations.Immutable;@Entity@Immutablepublic class MyEntity { // 필드, getter 등} 읽기 전용 트랜잭션 사용서비스 계층에서 @Transactional(readOnly = true)를 사용하면, 해당 트랜잭션 내에서는 엔티티 변경 사항이 flush.. 개발중/Java Persistence API (JPA) 2025. 2. 24. Cherry keyboard Window 키 안눌릴 경우에 Cherry keyboard Window 키 안눌릴 경우에는 Fn + 오른쪽 하단 Ctrl 을 5초간 누르면 해결 ! 개발중/참고 기능 2025. 2. 21. Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field 'com.sun.tools.javac.tree.JCTree qualid' 스프링 배치 프로젝트 maven install 하는 과정에 이런 에러가 났다.Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field 'com.sun.tools.javac.tree.JCTree qualid' jdk 버전 문제니 걱정 하지말고 17 로 바꾸자. 나 같은 경우에는 21 안되고 1.8 이 안되었었다. 개발중/Spring Batch 2024. 12. 26. [Redis] Sentinel tilt mod Error 해결 : 버전문제 Sentinel 에러에서 아래와 같은 로그를 확인할 수 있었다.1:X 20 Dec 2024 01:34:50.922 # +tilt #tilt mode entered1:X 20 Dec 2024 01:34:50.922 # waitpid() returned a pid (168321) we can't find in our scripts execution queue! 사용량이 없는 시간대에도 에러가 산더미처럼 발생했다. 기존에 레디스 17.* 버전을 사용 중이었는데 19.* 버전대로 올리니 tilt 모드 에러의 빈도수가 줄었다.버전 문제일까 ? 개발중/Redis 2024. 12. 20. DBeaver: 데이터 가져오기 - 한글이 깨져서 저장됩니다. 해결하기. 이슈 정상적인 UTF-8 .cvs 파일을 "데이터 가져오기" 를 했는데 외계어로 저장이 되었다. 히스토리utf-8 로 했는데 깨졌음. euc-kr 로 바꾸라고 다들 그래서 바꿨는데 안됨. 여전히 깨짐. 디비버 기본값 인코딩을 바꿔도 안됨. 결론Toad 로 import 해서 해결했음.MYSQL 8버전은 Toad 에서 지원이 안되지만 5버전은 된다.Toad 에서 import 성공 했지만, 8버전은 디비버로 import 해야할텐데 왜 한글이 깨질까, 참 속상하군. 개발중/참고 기능 2024. 12. 19. package javax.xml.bind does not exist 해결 요즘 대부분의 프로젝트들은 jdk 11 / 17 버전을 사용하는데A 프로젝트는 JDK 1.8 이었다. 오랜만에 A 프로젝트를 오픈하니 아래와 같이 bind 패키지를 찾지 못했다. package javax.xml.bind does not exist 인텔리 제이의 jdk 설정을 확인하니 17 로 세팅되어있는 부분들도 있었다. 그 부분들을 1.8 으로 변경하니 해결 되었다. 그래도 안된다면 ,,, 캐시를 무효화 ( File > Invalidate Caches / Restart ) 시켜보자. 개발중/Spring 2024. 12. 11. Java: MAC Address 조회하기 예제 IP 구하는 메서드 구현 public static String getIpAddress(HttpServletRequest request) { String ipAddress = ""; try{ if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) { return ipAddress = request.getRemoteAddr(); } }catch (Exception e){ e.printStackTrace(); }finally { return ipAddr.. 개발중/Spring 2024. 12. 10. Spring Batch 관련 Table 자동 생성 안될 때 수동 생성하는 방법 initialize-schema: always 옵션을 지정했음에도 불구하고 Spring Batch 관련 Table 자동 생성 안될 때가 있다.그럴 경우에는 수동 생성해야한다. external libraries 에서 org.springframework.batch:spring-batch-core:*.*.* 라이브러리를 찾아보자. spring-batch-core-*.*.*.jar 하위에 org 패키지를 오픈한다. 이것저것 많지만, 좀 내리다보면 아래와 같이 .sql 문이 나온다. 내 데이터베이스와 일치하는 .sql 문을 찾는다. 나는 MYSQL 로 가정한다. 복사해서 수동으로 table 을 생성하자. db 에서 처음 배치 돌릴 때마다 에러나서 ( 버전이 낮음 ; 버전이 낮은 경우에는 안된다고 한다. .. 개발중/Spring Batch 2024. 11. 19. Spring Cache 이해하고 사용하기: 성능 최적화를 위한 데이터 캐싱 도구 Spring Cache란Spring Cache는 캐싱을 쉽게 구현할 수 있도록 하는 Spring의 추상화 레이어입니다. 이를 통해 애플리케이션은 특정 데이터를 메모리, 디스크, Redis, Ehcache 등 다양한 캐시 저장소에 저장하고 재사용할 수 있습니다. Spring Cache 주요 개념캐싱 메커니즘캐시 저장소: 데이터를 임시로 저장하는 공간(예: ConcurrentHashMap, Redis).캐시 키: 데이터를 식별하기 위한 고유 키.캐시 값: 캐시에 저장된 실제 데이터. 주요 어노테이션Spring Cache는 주로 어노테이션 기반으로 작동한다. @EnableCaching캐시 기능을 활성화한다.보통 Spring Boot의 메인 클래스나 구성 클래스에 선언한다.@SpringBootApplicatio.. 개발중/Spring 2024. 11. 19. 이전 1 2 3 4 ··· 52 다음