Java 정규식을 활용한 주소 유형 판별 및 문자열 마스킹 방법

📌 Java 정규식을 활용한 주소 유형 판별 및 문자열 마스킹 방법 Java를 사용하여 주소 유형(도로명 주소 vs 지번 주소)을 판별하고, 문자열 마스킹을 수행하는 방법을 정리합니다. 주소 데이터를 처리하는 과정에서 정규식(RegEx)을 활용하여 빠르고 정확하게 판별하는 방법을 배울 수 있습니다. 🔎 1. 주소 유형 판별 (도로명 vs 지번 주소) ✅ 주소 판별 더 읽기

Spring Batch 멀티스레드 처리 중 대기 상태 발생 및 트랜잭션 롤백 해결 방법

Spring Batch 환경에서 멀티스레드 처리 중 특정 스레드가 대기 상태에 빠지고, Pod가 계속 Running 상태가 되는 문제를 해결하는 방법을 정리합니다. 1️⃣ 문제 상황 2️⃣ 대기 상태가 발생하는 원인 분석 3️⃣ 해결 방법 ✅ 스레드 타임아웃 적용 ✅ 예외 발생 시 CountDownLatch.countDown() 보장 ✅ 대기 상태 감지 및 강제 종료 (shutdownNow() 더 읽기

EKS CronJob에서 실행 시간이 지나면 자동으로 Pod 종료하는 방법

Kubernetes의 CronJob을 사용할 때, 실행 시간이 너무 길어지면 리소스를 낭비할 수 있습니다. 이를 방지하기 위해 activeDeadlineSeconds 옵션을 활용하면 일정 시간이 지나면 자동으로 Pod를 종료할 수 있습니다. ✅ activeDeadlineSeconds 옵션이란? activeDeadlineSeconds는 Job이 시작된 후 일정 시간이 지나면 강제 종료되는 기능입니다. 이를 설정하면, 지정된 시간이 초과되었을 때 Kubernetes가 자동으로 해당 Pod를 종료합니다. 더 읽기

Spring Batch 멀티스레드 환경에서 HikariCP Connection Leak 문제 해결 방법

🔹 개요Spring Batch에서 멀티스레드 환경을 사용한 후 HikariCP의 Connection Leak 경고가 발생하는 문제에 대해 분석하고 해결 방법을 정리합니다.특히 멀티스레드와 HikariCP의 connection-pool 설정, 트랜잭션 관리 방식, DAO 호출 구조가 Connection Leak에 미치는 영향을 집중적으로 다룹니다. 🔹 HikariCP 설정과 Connection Leak 원인 분석 사용된 HikariCP 설정은 다음과 같습니다. minimum-idle: 2 maximum-pool-size: 30 더 읽기

Spring Security & jOOQ with H2: 설정 및 문제 해결 가이드

Spring Security & jOOQ with H2: 설정 및 문제 해결 가이드 1. Spring Security 설정 Spring Boot 프로젝트에서 Spring Security를 설정하는 과정에서 몇 가지 문제가 발생할 수 있습니다. 주요 이슈와 해결 방법을 정리하겠습니다. 1.1. 기본 로그인 설정 변경 Spring Security는 기본적으로 로그인 페이지를 제공하지만, 이를 커스터마이징하려면 SecurityConfig 설정이 필요합니다. @Configuration@EnableWebSecuritypublic 더 읽기

H2 메모리 DB와 jOOQ 코드 생성 문제 해결 가이드

H2 데이터베이스를 메모리 모드로 사용하면서 jOOQ 코드 생성을 진행하려면 특정한 순서대로 작업해야 합니다.이 글에서는 발생할 수 있는 오류와 해결 방법을 정리하여 WordPress 게시글 형식으로 제공합니다. 1️⃣ 문제 상황 H2 데이터베이스를 메모리 모드로 설정한 상태에서 generateJooq을 실행하면 테이블이 생성되지 않아 jOOQ 코드가 만들어지지 않는 문제가 발생할 수 있습니다.이는 H2의 메모리 특성상 더 읽기

쿠버네티스 CronJob의 CPU 리소스 설정 가이드

1. 개요 쿠버네티스에서 CronJob을 사용하여 주기적으로 실행되는 작업을 관리할 때, 적절한 리소스 설정이 필요합니다. 특히, CPU 사용량이 예측할 수 없이 변동되는 경우 requests.cpu와 limits.cpu를 설정하여 안정적인 동작을 보장할 수 있습니다. 이 문서는 CronJob에서 CPU 리소스를 설정하는 방법을 설명합니다. 2. CronJob 정의 및 리소스 설정 아래는 requests.cpu와 limits.cpu를 설정한 CronJob 예제입니다. 더 읽기

Rancher에서 CronJob Suspend 로그를 CloudWatch에 남기는 방법

Rancher를 통해 Kubernetes CronJob을 suspend: true로 변경했을 때, CloudWatch에 해당 로그가 남지 않는 경우가 발생할 수 있습니다. 반면, suspend: false는 정상적으로 기록될 수 있습니다. 이런 문제를 해결하기 위해 Rancher에서 로그를 남기는 방법을 정리하였습니다. 1️⃣ Kubernetes 이벤트에서 suspend 변경 확인 먼저, Kubernetes 자체에서 suspend 변경 이벤트가 기록되는지 확인해야 합니다. 이를 위해 더 읽기

Kubernetes CronJob에서 nodeSelector와 nodeAffinity를 함께 사용하는 방법

Kubernetes의 CronJob을 특정 노드에 배포할 때, nodeSelector와 nodeAffinity를 조합하여 더욱 세밀한 노드 선택을 할 수 있습니다.이번 글에서는 기존 nodeSelector를 유지하면서 nodeAffinity를 추가하여 특정 조건을 만족하는 노드에서만 Pod가 실행되도록 설정하는 방법을 소개합니다. 기존 설정 (nodeSelector만 사용) 아래와 같은 CronJob 설정이 있다고 가정합니다.이 설정은 group=batch 라벨이 있는 노드에서만 실행됩니다. apiVersion: batch/v1kind: CronJobmetadata: 더 읽기

Kubernetes에서 특정 라벨을 가진 노드에 균등 분산하는 방법

Kubernetes 환경에서 특정 라벨을 가진 노드에 **Pod을 균등하게 분산(scheduling)**하는 방법을 정리합니다.이 글에서는 ext=test1 라벨을 가진 노드들에만 배포하면서, 특정 노드에 몰리지 않도록 균등 분산하는 방법을 다룹니다. 1️⃣ 문제 정의 📌 현재 노드 정보 노드 이름 ext 라벨 값 topology.kubernetes.io/zone ip-10-118-154-15 test1 ap-northeast-2c ip-10-118-153-114 test1 ap-northeast-2a ip-10-118-153-171 test2 ap-northeast-2a ✅ Pod을 ext=test1을 더 읽기