spring cache 기본 사용법: https://dolgogae.tistory.com/85spring key generator 사용법: https://dolgogae.tistory.com/86Overview앞선 두 개의 게시글에서 spring cache 기본 사용법과 커스텀 key generator에 대해서 살펴보았다. 마지막으로 cache를 어떻게 사용할지 결정하는 config 설정에 대해서 알아보도록 하겠다. 캐싱을 사용할 때 만료시간이 어떻게 설정할지, xml 파일로 설정을 분리할 지 어떻게 캐싱을 분산처리 할지 등에 대해서 설정이 가능하다.CacheManager의 동작 원리cacheManage도 여느 spring 설정과 동일하게 AOP를 기반으로 동작한다.그리고 @EnableCaching이 ..
spring cache 기본 사용법: https://dolgogae.tistory.com/85Overview앞선 글에서 spring caching에 기본적인 사용법에 대해서 설명을 했다. 결과 값이 자주 업데이트 되지 않는 함수에 대해서 적용하면 in-memory에서 별도 연산없이 바로 결과를 가져오기 때문에 성능적인 이득을 볼 수 있었다. caching을 만드는 과정에서 각 cache를 구분하는 key를 생성하는 keyGenerator에 관한 내용을 이번 장에서 다뤄보고자 한다.SimpleKeyGeneratorSimpleKeyGenerator는 keyGenerator의 디폴트 설정값이다. 캐싱을 하는 메서드에서 인자값을 기반으로 key를 생성한다.@Cacheable(value = "products")p..
OverviewSpring에서 제공하는 caching이라는 기능이 있다. spring caching은 컴퓨터를 하는 사람이면 흔히 알고 있는 개념과 동작이 비슷하다. 여러 번 호출에 대해서 결과값이 비슷하다면 메서드를 직접 실행하지 않고 미리 메모리상에 저장을 해둬서 성능을 높이는 방법이다. 만약 DB 정보가 크게 바뀌지 않는다거나 네트워크를 타야하는 연산이라면 더욱 성능 향상에 도움이 될 것이다. 물론 계산 복잡도가 높은 메서드에 대해서도 많은 이점을 받을 수 있다.Caching 종류와 사용법@Cacheable캐시에서 값을 조회하거나 없으면 메서드를 실행해 값을 캐시에 저장하는 기능을 제공한다.@Cacheable(key = "#id")public String getItemById(Long id) { ..
서론 Testcontainers을 알게되기 전엔 테스트를 하며 임베디드 처리를 하던 DB, Kafka, Redis등의 인프라들이 있었습니다. 예를 들어, Redis는 https://www.baeldung.com/spring-embedded-redis를 참고하여 임베디드 처리했습니다. 그리고 Kafka는 @EmbeddedKafka를 사용하였습니다. 이런 임베디드 처리 코드를 늘려갈수록 불필요한 코드가 많아짐을 느꼈습니다. 또한, @Profile 처리를 해야하는 일이 많았습니다. 테스트 코드에는 어노테이션이 많아지고 이를 상속으로 해결하려해도 뭔가 지저분해 보여서 다른 방법이 없나에 대한 생각을 하다 Testcontainers를 발견하게 되었습니다. 임베디드보다 간단하게 설정이 가능하고 여러 인프라를 아우르..
서론 최근 부서에서 새로운 시스템 개발에 들어가며 MongoDB를 사용하게 됐습니다. MongoDB를 선택하게 된 이유는 sub-query join이 많이 필요한 상황이 많기 때문입니다. 그러면서 가장 처음 보게 된 insert()와 save()로 저장하는 방법이 2개가 있습니다. Spring Data Jpa는 save()를 통해 insert qeury를 실행하게 됩니다. 하지만 Spring Data MongoDB에서는 insert()라는 메서드도 제공이 되는걸 볼 수 있습니다. 따라서 이 글에서는 두 메서드의 차이점을 다뤄보고자 합니다. MongoDB Repository 간단하게 MongoDB의 DAO를 생성해봅니다. @Repository public interface EntityRepository e..
서론 애플리케이션에서 로깅(logging)은 디버깅, 모니터링, 그리고 성능 최적화를 위한 필수적인 요소입니다. 특히, 대규모 시스템에서는 로깅의 중요성이 더욱 강조됩니다. Spring 애플리케이션에서 Logback을 활용하여 로깅 시스템을 구축하는 방법에 대해 알아보고자 합니다. Logback은 SLF4J의 구현체 중 하나로, 강력한 성능과 유연성을 제공합니다. XML 구성이나 annotation을 통해 다양한 로깅 환경을 세밀하게 설정할 수 있습니다. Logback 초기 설정 Logback을 설정하기 위해서 dependency를 가장 먼저 설정해줘야 하는데 org.springframework.boot spring-boot-starter-logging 다음과 같은 logging을 넣어줘도 되지만 spr..
- Total
- Today
- Yesterday
- Container
- consumer
- NextJS
- 리액트
- React
- Producer
- Java
- K8S
- zookeeper
- KAFKA
- broker
- frontend
- spring
- Data Engineering
- caching
- apache kafka
- Front
- API
- cs
- JPA
- backend
- Firebase
- rhel
- 프론트엔드
- spring boot
- centos
- OS
- Linux
- apache
- feign client
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |