스프링부트51 외부 설정 파일 로딩하기 이번 포스팅에서는 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. 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. Spring Data Redis - Auto Configuration을 이용한 Redis 연결 설정 고성능 인메모리 데이터베이스 스토어인 Redis는 탁월한 데이터 캐싱 및 검색 속도를 제공하며 많은 프로덕션 환경에서 활용되고 있다.이에 발맞추어 Spring Data 프로젝트는 Redis 상호 작용에 대한 높은 수준의 추상화를 제공하여 개발자에게 최소한의 노력으로 Redis의 성능 이점을 활용하면서 기능이 풍부한 애플리케이션을 구축하는데 집중할 수 있도록 한다.이번 포스팅에서는 Spring에서 제공하는 Redis 관련 Auto Configuration에 대해서 다뤄보고자 한다. (Lettuce 위주로 살펴봄) 샘플 코드 작성은 spring boot 3.2.3과 JDK 21 버전에서 작성하였다.샘플 코드 확인을 위한 Redis 서버 환경 구성은 spring boot docker compose를 활용하였다.. 스프링부트 2024. 3. 24. Spring Data MongoDB - Custom Repository 사용하기 Spring Data는 코드 작업 없이 쿼리 메서드를 자동으로 생성할 수 있는 프레임워크를 제공한다. 그러나 이러한 자동 생성 메서드 이외에도 정밀한 DB 작업을 수행하기 위해서 때로는 사용자 정의 메서드를 구현해야 하는 경우도 있다. (ex. aggregation과 같은..)이러한 경우 inteface로 선언된 Repository 클래스 하나로 별도로 구현한 Custom Repository에 포함된 기능들과 더불어 자동 생성된 메서드를 사용할 수 있다. 먼저 Spring Data MongoDB를 사용하기 위한 연결 설정에 대한 내용은 아래 포스팅을 참고하기 바란다.2024.01.01 - [스프링부트] - spring data MongoDB - MongoTemplate 설정하기2023.12.29 - [스.. 스프링부트 2024. 3. 13. spring data MongoDB - auditing 설정 및 활용 Spring Data는 엔티티(도큐먼트)가 생성되거나 수정될 때 생성자, 수정자, 생성시간, 수정시간을 투명하게 추적할 수 있도록 Auditing 기능을 제공한다. 이번 포스팅에서는 spring data MongoDB 에서 Auditing 기능을 사용할 수 있는 방법에 대해서 정리하고자 한다. Auditing 기능 활성화@Configuration@EnableMongoAuditingpublic class MongoDBConfigurationByDirect {...}@EnableMongoAuditing 어노테이션은 Spring Data MongoDB에서 제공하는 auditing 기능을 활성화하기 위해서 사용한다.@EnableMongoAuditing을 사용하면 엔티티가 데이터베이스에 저장되거나 업데이트될 때 .. 스프링부트 2024. 2. 26. 이전 1 2 3 4 5 다음 💲 추천 글