Kubernetes에서 CronJob을 suspend: true로 설정했다가 다시 suspend: false로 변경하면, 스케줄 시간이 아닌데도 즉시 실행되는 경우가 있습니다. 이 현상의 주요 원인과 해결 방법을 정리하겠습니다. 또한, Kubernetes 노드(Node)의 라벨(Label) 확인 방법도 함께 소개합니다. Kubernetes 노드 라벨 확인 방법 Kubernetes에서는 노드(Label)를 활용하여 워크로드를 특정 노드에 할당하거나, 스케줄링 정책을 적용할 수 있습니다. 노드의 라벨을 더 읽기
jaeuk
AWS Aurora RDS(MySQL) 환경에서 HikariCP의 keepaliveTime이 필요 없는 이유
AWS Aurora RDS(MySQL 호환) 환경에서 HikariCP의 keepaliveTime 설정을 사용하지 않는 것이 더 좋다는 점에 대해 설명드립니다. Aurora는 일반적인 MySQL과는 다르게 커넥션을 관리하는 방식이 다르며, 이를 고려하여 커넥션 풀링 전략을 최적화하는 것이 중요합니다. 1. Aurora MySQL의 커넥션 관리 특성 Aurora MySQL은 MySQL과 호환되지만 내부적으로 분산 스토리지 아키텍처를 사용하고, 자동 장애 조치(Failover) 더 읽기
EKS 환경에서 Pod 장애 발생 시 요청을 이어받아 처리하는 방법
1. 개요 EKS 환경에서 Spring Boot 애플리케이션이 여러 개의 Pod에서 실행되고 있을 때,특정 Pod가 요청을 처리하는 중 장애로 종료되면, 다른 Pod에서 동일 요청을 이어서 처리할 수 있는가? 이 문서에서는 일반적인 CRUD 요청과 파일 업로드 요청 모두에 대해Pod 장애 발생 시에도 중단 없이 이어서 처리할 수 있는 방법을 설명합니다. 2. 첫 더 읽기
AWS Aurora Failover 대비 Spring Boot 트랜잭션 유지 및 커넥션 폐기 대응 방법
AWS Aurora를 사용하는 Spring Boot 애플리케이션에서 Writer 장애(Failover) 발생 시 트랜잭션을 유지하면서 서비스 중단을 최소화하려면 어떻게 해야 할까?Aurora 클러스터에 연결된 상태에서 Writer 장애 발생 시 기존 커넥션이 유지되지 않으며, 트랜잭션 처리 방식은 autocommit 설정에 따라 다르게 동작한다. 이 글에서는 Aurora 장애 발생 시 트랜잭션이 어떻게 동작하는지와 애플리케이션에서 최적의 대응 방법을 더 읽기
KISA SEED ECB 암복호화 및 문자열 변환 방법
KISA SEED는 한국정보보호진흥원(KISA)에서 개발한 블록 암호 알고리즘으로, 국내에서 널리 사용되는 암호화 방식 중 하나입니다. SEED 알고리즘은 여러 운영 모드를 지원하는데, 그중 ECB(Electronic Codebook) 모드는 블록 단위로 독립적으로 암호화하는 방식입니다. SEED ECB 모드를 사용하여 데이터를 암·복호화하면 byte[] 형태의 결과값을 얻게 되는데, 이를 문자열(String)로 변환하여 저장하거나 전송하는 방법이 필요할 수 있습니다. 이 더 읽기
Kafka 컨슈머를 EKS에서 운영할 때 발생하는 문제와 해결 방법
1. 개요 Kafka 컨슈머를 Amazon EKS 환경에서 운영할 때, Pod가 생성 및 삭제되면서 중복 소비, 메시지 누락, Rebalance 지연 등의 문제가 발생할 수 있습니다. 이 글에서는 Kafka 컨슈머의 동작 방식과 안정적인 운영 방법을 정리합니다. 2. Kafka 컨슈머와 EKS의 배포 방식 EKS에서는 Rolling Update 방식으로 새로운 버전의 Pod를 배포하면 기존 Pod가 더 읽기
Spring Batch 5.1.2에서 HikariCP 연결 문제 해결 방법
Spring Batch 5.1.2를 사용하면서 HikariCP 연결 문제를 경험하는 경우가 많습니다. 특히, 데이터베이스 재시작 또는 세션 종료 후 커넥션이 끊기는 문제가 발생할 수 있습니다. 이 글에서는 이러한 문제의 원인을 분석하고, 해결 방법을 소개하겠습니다. 1. 문제 원인 분석 Spring Batch는 배치 작업을 실행하면서 데이터베이스와 지속적으로 연결을 유지합니다. 하지만 다음과 같은 상황에서 HikariCP의 더 읽기
아이폰에서 AWS 사이트가 비정상적으로 동작하는 경우
아이폰의 Safari 및 Chrome에서 AWS Application Load Balancer를 통해 사이트에 연결하는 문제가 발생하는 경우, 로드 밸런서에서 http/2가 활성화되어 있는지 확인해보는 것이 좋습니다. 활성화되어 있다면, Apache를 사용하고 있다면 .htaccess 파일에 다음 라인을 추가해보세요. Header unset Upgrade 이 작은 라인이 사이트가 작동하느냐 마느냐의 차이를 만들 수 있습니다. 왜 그러냐면 Http/2는 2015년에 출시된 더 읽기
VSCode에서 snake_case를 camelcase로 변경
# 작업전 원본hotel_Codeprom_Codeprom_Nameprom_Groupbook_Fdatebook_Tdatestay_Fdatestay_Tdatedc_Typedc_Amountamtlimitremarkspkg_Incinsert_Userinsert_Datetimeupdate_Userupdate_Datetime 1. CTRL + H (바꾸기 모드 대화창 열기)2. ALT + R (표현식 모드로 변경)3. _([a-zA-Z]) 입력 (언더스코어로 시작하는 첫문자 찾기)4. TAB 키를 치고 $1 입력하기, 대체 문자열 입력하는 칸으로 이동하여 대체 문자열 지정($1는 대체문자열을 지정하는 것임 변수같은 느낌)5. ALT + ENTER (해당하는 문자열 모두 선택)6. F1 키 더 읽기
ajax html data append CSR? SSR?
ajax를 사용하여 데이터를 받아와서 특정 아이디에 append하는 방법은 클라이언트 측에서 실행되는(Client-Side Rendering, CSR) 방식입니다. 이 방식은 웹 페이지가 브라우저에서 로드된 후 JavaScript를 사용하여 추가적인 데이터를 받아오고 동적으로 페이지를 업데이트하는 방식입니다. CSR은 웹 페이지가 초기에 로드되고 나면, JavaScript를 사용하여 필요한 데이터를 서버로부터 받아오고 동적으로 콘텐츠를 생성합니다. 사용자가 페이지와 상호작용하면, 필요한 데이터를 더 읽기