Spring Batch 병렬 처리 전략
💿 Overview Spring Batch 는 주로 대용량 데이터를 효율적으로 자동 처리하기 위해 사용한다. batch 작업 특성상 실시간 성이 떨어지는 경우가 많아 성능이 크게 중요하지 않지만, 데이터 양이 너무 많아 처리 시간이 지나치게 오래 걸린다던지, 다른 작업과 연결되어 최소한의 처리 시간이 요구되는 경우도 분명히 존재한다. 이 때 Sprin...
S3 Storage Class 와 Lifecycle rule 을 활용한 저비용 장기 보관 전략
🪣 S3 Storage Class S3 Storage Class 는 AWS S3 에 저장된 객체(파일) 들의 저장 유형을 정의하는 설정이다. 모든 Class 는 기본적으로 내구성, 가용성, 가용성 SLA 들을 기본적으로 99% 이상 제공한다. 모든 Storage Class 들은 내구성과 가용성은 높게 보장되니, 사용자는 데이터 종류, 접근 빈도 2가지...
WebFlux 환경에서 BlockHound 를 통해 blocking call 탐지하기
🐕 Spring WebFlux 와 BlockHound Spring WebFlux 는 Netty 를 기반으로 Non-Blocking 방식의 프로그래밍 모델을 제공한다. 이 덕분에 적은 수의 thread 로 수 많은 요청을 처리할 수 있다(C10K problem 해소)는 강점이 있다. 이 강점을 살리기 위해서는 WebFlux 프로젝트 전반에 걸쳐 Non-...
Kafka Producer 는 message 재전송시 어떤 partition 을 선택할까?
Kafka 스터디 중 Producer 의 message 재전송 동작에 대해 궁금증이 생겨 시작해본 실험. 실험 결과 및 코드는 https://github.com/Hyeon9mak/lab/tree/master/spring-kafka 에서 확인할 수 있다. 🔗 상황 가정 및 결론 kafka producer 가 발송한 message 를 broker 가 수신...
홈 서버 구축기 - 웹서버 추가와 DNS 설정
💾 홈 서버 구축 목표 서비스보다는 서버환경 구축 자체에 집중한다. 만들고 싶은 서비스가 있으면 바로 파이프라인 구성 후 배포해서 확인해볼 수 있는 환경을 만든다. 첫 스텝은 단일 애플리케이션 CI-CD 파이프라이닝 두 번째 스탭은 컨테이너화(도커라이징) 세 번째 스탭은 데스크탑 리소스 모니터링 환경 구축 마지막 스탭으로 컨테이너 오케스트레이션(k8s...