전체 글91 외부 설정 파일 로딩하기 이번 포스팅에서는 spring boot 애플리케이션에서 application.yml (혹은 application.properties) 파일 외에 애플리케이션 외부의 설정 파일을 로딩하는 방법에 대해서 정리하고자 한다.Spring Boot 이벤트 리스너를 확장 구현하는 방법spring.config.import를 이용하는 방법@PropertySource로 외부 설정항목을 주입하는 방법 Spring Boot profile 적용 메커니즘Spring Boot 애플리케이션의 모든 설정 (시스템환경설정, JVM 환경설정, 애플리케이션 설정등)은 Environment의 PropertySource 리스트에 저장하여 처리한다.application.yml 파일에 여러 profile 설정이 지정되어 있는 경우 파일의 아래.. 스프링부트 2024. 8. 18. multipass를 이용하여 로컬 환경에 쿠버네티스 클러스터 구축하기 쿠버네티스를 처음 접하는 경우 로컬 환경에 kubernetes 클러스터를 구축하는 것은 다소 복잡하고 어려울 수 있다.이번 포스팅에서는 multipass 도구를 활용하여 간편하게 로컬 환경에 쿠버네티스 클러스터를 구축하는 방법을 소개하고자 한다. multipass는 경량의 VM 관리 도구로 간단한 명령어 몇 가지로 다양한 VM을 쉽게 생성하고 관리할 수 있다. 이를 통해 쿠버네티스 클러스터를 로컬 환경에서 쉽고 빠르게 설정할 수 있다. multipass 사용법 알아보기multipass를 활용하기 때문에 multipass 사용법에 대해서 알아야 한다.아래 포스팅을 참고하기 바란다.2024.07.02 - [ETC] - Multipass 사용법: 간편하게 가상 머신 관리하기 --cloud-init 옵션에 적용.. 쿠버네티스 2024. 7. 4. Multipass 사용법: 간편하게 가상 머신 관리하기 Multipass는 쉽고 빠르게 가상 머신을 생성하고 관리할 수 있는 도구다. MacOS, Linux, Windows 등 다양한 운영체제에서 사용할 수 있으며, 단시간에 클라우드와 유사한 환경을 로컬에 구축할 수 있다. Multipass는 기본적으로 우분투 이미지를 제공하지만, 다른 이미지를 사용할 수도 있어 다양한 개발 환경을 지원한다. Multipass의 주요 장점은 다음과 같다.간편한 설치와 사용: 몇 개의 명령만으로 가상 머신을 생성하고 관리할 수 있다.빠른 성능: 경량화된 VM으로 빠른 부팅 속도와 높은 성능을 제공한다.유연성: 다양한 운영체제와 호환되며, 여러 개의 VM을 동시에 관리할 수 있다.통합환경: 로컬에서 클라우드와 유사한 환경을 재현할 수 있어, 개발부터 테스트까지 모든 과정을 손쉽.. ETC 2024. 7. 2. Java Concurrent Map: 스레드 안전성을 보장하는 Atomic 메서드 소개 멀티스레드 애플리케이션에서는 데이터의 일관성과 스레드 안전성을 보장하는 것이 매우 중요하다. Java는 이러한 요구를 충족시키기 위해 다양한 동시성 컬렉션 클래스를 제공한다. 이번 포스팅에서는 Java ConcurrnetMap을 사용하여 스레드 안전성을 보장하는 방법에 대해서 소개한다.특히 computeIfAbsent, computeIfPresent, merge, putIfAbsent와 같은 원자적(atomic) 메서드들을 중점적으로 살펴보고자 한다. java.util.concurrent 패키지java.util.concurrent 패키지는 Java5에서 도입된 패키지로, 멀티스레드 프로그래밍을 보다 쉽고 효율적으로 할 수 있도록 다양한 동시성 유틸리티를 제공한다. 이 패키지는 고성능 멀티스레드 애플리케이.. 자바 2024. 6. 10. logback을 이용한 spring boot 애플리케이션 syslog 전송하기 로그 관리는 애플리케이션 개발과 운영에서 매우 중요한 부분을 차지한다. 특히, 분산 시스템 환경에서는 중앙 집중식 로그 관리가 필요하다. syslog는 이러한 로그 관리를 위한 표준 프로토콜로, 다양한 시스템과 애플리케이션에서 널리 사용된다.Spring boot 애플리케이션에서 syslog를 사용하면, 애플리케이션 로그를 중앙 로그 서버로 전송하여 쉽게 모니터링하고 분석할 수 있다. 이를 통해 시스템의 상태를 실시간으로 파악하고 문제 발생 시 신속하게 대응할 수 있다.이번 포스팅에서는 spring boot와 logback을 사용하여 syslog로 로그를 전송하는 방법에 대해서 정리하고자 한다. 우선 spring logback 설정에 대해서는 아래 포스팅을 참고하면 도움이 될 것 같다.2023.10.12 .. 스프링부트 2024. 6. 7. Spring Data Redis - cache 기능 사용하기 Spring Cache에서 Redis를 활용하는 방법에는 여러 가지가 있다. Spring Boot와 Spring Data Redis를 사용하여 Redis를 캐시로 설정하는 방법에 대해서 정리해 본다. 먼저 Spring Cache의 주요 어노테이션에 대해서 다음 포스팅을 참고하면 도움이 될 것이다.2024.05.20 - [스프링부트] - Spring Cache 주요 어노테이션 Spring Data Redis 관련 포스팅은 다음 포스팅을 참고하기 바란다.2024.05.12 - [스프링부트] - Spring Data Redis - Redis Repository 사용2024.04.29 - [스프링부트] - Spring Data Redis - RedisTemplate의 HashOperations2024.04.2.. 스프링부트 2024. 6. 2. Spring Cache 주요 어노테이션 Spring Cache는 캐싱 기능을 통해 애플리케이션 성능을 향상할 수 있는 강력한 도구를 제공한다. 이번 포스팅에서는 Spring Cache 추상화를 통해서 제공되는 주요 어노테이션과 기능에 대해서 정리하고자 한다. @Cacheable@Cacheable 어노테이션은 메서드 결과를 캐시에 저장하고, 이 후 같은 파라미터로 메서드가 호출될 경우 캐시 된 결과를 반환한다. 이는 주로 읽기 작업에 사용된다.속성value 또는 cacheNames: 캐시 이름을 지정한다.key: 캐시에 저장될 엔트리 키를 지정한다. SpEL(Spring Expression Language)를 사용하여 동적으로 설정할 수 있다.condition: 캐시를 적용할 조건을 SpEL로 지정한다.unless: 캐시에 저장하지 않을 조건을.. 스프링부트 2024. 5. 20. Spring 이벤트 시스템을 이용한 실시간 데이터 변경 감지 및 처리 애플리케이션 내에서 데이터의 변경을 실시간으로 감지 및 처리를 위해서 Spring 프레임워크의 이벤트 시스템을 활용할 수 있다.Spring 이벤트 시스템은 옵저버 패턴에 대한 추상화를 제공하여 결합도를 낮추면서도 강력한 이벤트 기반 프로그래밍 모델을 제공한다.이를 통해 데이터 변경 이벤트를 실시간으로 감지하고 처리하는데 매우 유용하다. 이번 포스팅에서는 Spring 이벤트 시스템을 이용하여 실시간 데이터 변경을 감지하고 처리하는 방법에 대해서 정리하고자 한다. Spring 이벤트 시스템 개요Spring 프레임워크는 강력한 이벤트 시스템을 제공하여 애플리케이션 내에서 발생하는 다양한 이벤트를 처리할 수 있도록 한다. Spring 이벤트 시스템의 주요 구성요소는 다음과 같다. Event: 발생한 이벤트를 나.. 스프링부트 2024. 5. 17. Spring Data Redis - Redis Repository 사용 Spring Data는 Repository 추상화를 통해서 저장소에 대한 편리한 CRUD를 제공한다. 관계형 DB 혹은 NoSQL DB 와는 약간 특성이 다른 Redis에서도 Repository 추상화를 사용할 수 있다.Spring Data Redis 의 Repository를 사용하여 DTO 클래스를 Redis Hash 타입으로 저장하고 조회하는데 편리한 사용성을 제공한다.이번 포스팅에서는 Spring Data Redis의 Repository 추상화를 사용하는 방법에 대해서 정리해 보고자 한다. Spring Data Repository 에서 제공되는 확장 인터페이스Spring Data Repository 추상화의 중심 인터페이스는 Repository 인터페이스 클래스다.Spring Data 는 Repos.. 스프링부트 2024. 5. 12. Spring Data Redis - RedisTemplate의 HashOperations RedisTemplate의 HashOperations는 Spring Data Redis의 모듈의 일부로써 해시 작업을 처리한다. Redis 해시는 단일 Redis 키 아래에 저장되는 키-값 쌍의 모음이다. 이는 애플리케이션 간에 전송되는 객체나 맵 데이터와 같은 데이터세트를 나타내는데 적합하다. RedisTemplate의 ValueOperations에 대한 내용은 아래 포스팅에 정리하였다.2024.04.24 - [스프링부트] - Spring Data Redis - RedisTemplate의 ValueOperations 코드를 통해서 HashOperations 에서 제공하는 메서드를 알아보자. 테스트 엔티티 클래스테스트 코드에 사용된 Person 클래스는 다음과 같다.@Builderpublic record.. 스프링부트 2024. 4. 29. Spring Data Redis - RedisTemplate 트랜잭션 RedisTemplate의 트랜잭션 기능은 데이터의 일관성과 무결성을 유지하기 위해 여러 명령을 그룹화하여 원자적으로 실행해야 할 때 사용한다. 이번 포스팅에서는 RedisTemplate를 이용하여 트랜잭션을 사용하는 방법과 트랜잭션 도중 키 감시기능을 통해서 데이터의 일관성을 보장하는 방식에 대한 내용을 다루고자 한다. 트랜잭션 사용 사례트랜잭션은 데이터의 일관성과 무결성을 보장하기 위해서 여러 명령 셋이 모두 성공을 해야 하는 경우, 더불어 하나라도 명령이 실패하면 이전에 수행했던 명령은 롤백이 되어야 하는 경우에 사용한다.간단한 사용 사례를 살펴보자.재고 관리 시스템온라인 쇼핑몰에서 상품의 주문 처리 과정에서 재고 수량을 감소시키고, 관련된 주문 정보를 업데이트해야 하는 경우.은행 계좌 이체두 계좌.. 스프링부트 2024. 4. 25. Spring Data Redis - RedisTemplate의 ValueOperations Spring Data Redis의 중심 클래스인 RedisTemplate의 여러 Operations 중에서 가장 기본적인 ValueOperations에 대해서 정리해보고자 한다. ValueOperations는 개발자가 Redis 문자열 값과 상호 작용하는 방식을 단순화하여 일반적인 작업에 대한 간단한 방법을 제공한다. 이번 포스팅에서는 Spring Data Redis에서 제공하는 RedisTemplate의 ValueOperations의 각 메서드에 대해서 테스트 코드와 함께 알아보고자 한다. 먼저 Spring Data Redis를 사용하기 위해서 Redis 사용을 위한 AutoConfiguration에 대해서 알아두면 좋다. 아래 포스팅에 정리해 두었다.2024.03.24 - [스프링부트] - Sprin.. 스프링부트 2024. 4. 24. 이전 1 2 3 4 ··· 8 다음 💲 추천 글