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이 ..
OverviewSpring에서 제공하는 caching이라는 기능이 있다. spring caching은 컴퓨터를 하는 사람이면 흔히 알고 있는 개념과 동작이 비슷하다. 여러 번 호출에 대해서 결과값이 비슷하다면 메서드를 직접 실행하지 않고 미리 메모리상에 저장을 해둬서 성능을 높이는 방법이다. 만약 DB 정보가 크게 바뀌지 않는다거나 네트워크를 타야하는 연산이라면 더욱 성능 향상에 도움이 될 것이다. 물론 계산 복잡도가 높은 메서드에 대해서도 많은 이점을 받을 수 있다.Caching 종류와 사용법@Cacheable캐시에서 값을 조회하거나 없으면 메서드를 실행해 값을 캐시에 저장하는 기능을 제공한다.@Cacheable(key = "#id")public String getItemById(Long id) { ..
서론 최근에 개발을 하면서 클래스 내에서 중복 되는 로직의 메서드가 많았던것 같다. 하지만 모든 부분이 겹치면 한 개의 메서드로 해결이 가능하지만, 같은 로직을 타다가 일부만 조금 다른 로직이거나 다른 switch 문을 타야하거나 등의 문제가 있었다. 이를 추상화 하면서 알게 된 지식에 대해 정리하고자 한다. 기존에 Consumer는 Kafka - Spring을 사용하면서만 사용했는데 이러한 중복 로직을 추상화하는데에도 쓰일 수 있다는 점을 알게 됐다. Problempublic class ExampleClass{ public void methodN(){ // logic A // logic B switch(type){ // logic N ..
서론 JDBC는 연결하는 과정에 있어서 표준화된 인터페이스이다. JDBC가 없을땐 각각의 DB(ORACLE, MySql 등..)마다 연결하는 과정이 달라 어려움이 있었다고 한다. 요즘에 누가 JDBC를 사용하냐고 하는데 사실 나는 요즘에 누가를 경험하고 있는 중이다. 그 이유로는 Data Engineering을 하는데 있어서 저장하는 DB의 경우에는 Oracle DB로 통합되어있기 때문에 JPA를 사용하고 있다.하지만, 문제점은 각각의 인프라들에서 파싱해가야하는 DB들이 하나가 아니라는 점에 있었다. (몇가지 생각나는 DB들만 해도 MS-SQL, MySQL, Orcale 등등...) 또한, 몇몇 DB들은 쿼리 권한도 없어 프로시져를 통해서 가져가야 했다. 따라서 데이터를 파싱하는 점에 있어서는 JPA를 ..
생성자 대신 정적 팩터리 메서드를 고려하라 정적 팩터리 메서드가 가지는 장점 이름을 가질 수 있다. 생성자를 통해서 객체를 생성하다보면 그 객체가 어떤 정보를 포함하여 생성하는지 정확히 모를 때가 많다. 또한, 생성자를 볼때 주석이나 설명 문서를 읽어야하는 수고로움을 덜어줄 수 있다. public class Student{ private String name; public Student(){} public Student(String name){ this.name = name; } public static Student nameOf(String name){ return new Student(name); } } 다음과 같은 소스 코드에서 그냥 생성자를 통해서와 nameOf라는 정적 팩터리 메서드를 통해서 생..
- Total
- Today
- Yesterday
- KAFKA
- caching
- spring
- Java
- OS
- frontend
- Linux
- broker
- Firebase
- rhel
- K8S
- NextJS
- backend
- 프론트엔드
- API
- Producer
- Data Engineering
- centos
- spring boot
- JPA
- zookeeper
- apache kafka
- consumer
- apache
- feign client
- Container
- React
- cs
- Front
- 리액트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |