| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
- Kafka
- aws
- DFS
- 카프카
- gcp
- 백준
- 쿠버네티스
- 로드밸런서
- Spring
- Elasticsearch
- 자료구조
- VPC
- Spring Boot
- 스프링
- Apache Kafka
- 클라우드
- 스프링 부트
- Docker
- 알고리즘
- 클라우드 컴퓨팅
- JPA
- 스프링부트
- 머신러닝
- 백트래킹
- 코드업
- 개발
- Spring Data JPA
- 프로그래밍문제
- springboot
- 오일러프로젝트
- Today
- Total
목록Programming/Java (7)
GW LABS
Spring Rest API 캐싱전략 완벽 가이드: @Cacheable과 CacheManager 활용법서론Rest API 서버를 운영하다 보면 가장 큰 고민 중 하나는 성능과 응답 속도입니다. 특히 조회 요청이 빈번한 API의 경우, 매번 DB를 조회하는 것은 서버 부담을 크게 증가시킵니다. 이를 효율적으로 해결하는 방법이 바로 캐싱(Caching)입니다.Spring은 @Cacheable과 CacheManager를 통해 강력하면서도 유연한 캐싱 기능을 제공하고 있으며, 상황에 맞는 캐싱 전략을 적용하면 성능 최적화 효과를 극대화할 수 있습니다.이번 포스팅에서는 Spring Rest API 캐싱전략, CacheManager 사용법, @Cacheable 활용법을 중심으로 실무 적용 방법을 정리하겠습니다.본론..
Spring Batch 사용법: 대용량 데이터 처리를 위한 실무 가이드서론대규모 데이터 처리 작업은 단순히 코드 몇 줄로 해결할 수 있는 문제가 아닙니다. 안정성, 트랜잭션 관리, 스케줄링, 장애 복구 등 고려해야 할 요소가 많습니다. Spring Batch는 이러한 요구사항을 충족하기 위해 설계된 프레임워크로, 반복적이고 대량의 데이터 처리를 안정적으로 지원합니다.본 포스팅에서는 Spring Batch의 핵심 개념, 설정 방법, 그리고 실무에서 주의해야 할 사항을 다루어, 개발자가 바로 활용할 수 있는 지식을 제공합니다.본론1. Spring Batch의 핵심 개념Spring Batch는 크게 세 가지 개념으로 나눌 수 있습니다.Job 배치 작업의 최상위 단위 하나의 Job은 여러 개의 Step으로 ..
Spring Kafka 완벽 가이드: KafkaTemplate와 @KafkaListener, 재시도 및 Dead Letter Queue 활용법서론Apache Kafka는 대규모 실시간 데이터 스트리밍과 비동기 메시징을 처리하는 데 최적화된 분산 이벤트 스트리밍 플랫폼입니다.Spring Kafka는 이러한 Kafka의 기능을 Spring 환경에 자연스럽게 통합하여 개발자가 간결한 코드로 안정적이고 확장 가능한 메시지 기반 애플리케이션을 만들 수 있도록 지원합니다.이 글에서는 Spring Kafka의 핵심 개념, KafkaTemplate 사용법, @KafkaListener 활용법과 주의사항, 그리고 재시도 로직 및 Dead Letter Queue(DLQ) 적용 방법을 실무 중심으로 정리합니다.본론1. Spr..
Spring의 기본 개념 총정리: DI, IoC, AOP 완벽 가이드서론Spring Framework는 자바 기반 애플리케이션 개발에서 표준처럼 사용되는 강력한 프레임워크입니다.대규모 엔터프라이즈 애플리케이션부터 소규모 프로젝트까지, Spring은 DI(Dependency Injection), IoC(Inversion of Control), AOP(Aspect Oriented Programming)와 같은 핵심 개념을 기반으로 유연하고 유지보수성 높은 애플리케이션을 만들 수 있게 돕습니다.이번 포스팅에서는 Spring의 세 가지 핵심 개념을 정확하게 이해하고, 간단한 예제 코드로 구현 방법을 살펴보겠습니다.1. IoC (Inversion of Control) - 제어의 역전IoC는 객체의 생성과 의존성 ..
JVM 완벽 가이드: JVM 구조, JVM 역할, 동작 원리 총정리서론Java Virtual Machine(JVM)은 자바(Java)뿐 아니라 Kotlin, Scala 등 다양한 JVM 기반 언어의 실행을 책임지는 핵심 플랫폼입니다.많은 개발자가 "JVM은 자바 코드를 실행하는 프로그램"이라고 알고 있지만, JVM의 역할은 그 이상입니다.JVM 구조, JVM 역할, 그리고 C와 같은 언매니지드 언어와의 차이를 이해하면, 플랫폼 독립적인 애플리케이션 개발의 기반을 마련할 수 있습니다. 이번 글에서는 다음을 다룹니다:JVM의 기본 개념과 역사JVM과 C 같은 언매니지드 프로그래밍의 차이JVM 기반 언어의 컴파일부터 런타임까지 동작 과정1. JVM의 기본 개념과 역사JVM(Java Virtual Machin..
Single Thread로 처리하기에는 너무 많은 양의 데이터를 처리해야 할 경우가 있다. 특히 마이그레이션 작업 시에 이런 일이 자주 발생한다. 신속하게 대용량 데이터를 DB에 저장 및 업데이트하기 위해서 Spring Boot와 Spring Boot JDBC를 Multi-Thread와 함께 사용해보았다. DB 작업에 Multithread를 적용하기 위해서 어떤 부분을 주의해야 하는지 함께 살펴보자. DB 배치작업 소요시간을 줄이기 위해 선택한 Multithread DB 배치작업 소요시간을 줄이기 위해서 멀티쓰레드 방식으로 구현을 진행하기로 결정했다면 아래와 같은 사항들을 고려해야 할 것이다. Thread 단위로 데이터를 나눌 수 있는가? 데이터를 Key 기준으로만 제어하는 작업이라면 Multithrea..
이번 포스팅에서는 스프링 부트에서 여러 DataSource를 구성하는 방법을 소개한다. 보통의 경우 스프링 부트에서 DataSource는 하나로 유지해도 충분할 것이다. MSA 아키텍처가 유행하고 있고, 이에 따라 각각의 작은 API 프로젝트들이 하나의 DB만 바라보면 충분하기 때문이다. 그러나 특별한 상황에서 한 프로젝트에서 여러 DataSource가 필요한 경우가 있다. 이러한 Multi Datasource 같은 경우에도 구성방법은 어렵지 않다. 실수하기 쉬운 부분을 여기에 정리하려고 한다. 여러 개의 DataSource가 필요한 상황 마이그레이션 마이그레이션 작업을 스프링 부트를 이용해서 진행해야 할 때 여러 DataSource를 설정하여 작업이 필요하다. API없이 하나 이상의 DB처리 별도 AP..