-
Multi Datasource 를 이용한 database routing 전략
Read/Write 만 Datasource 를 분리를 할때는아래처럼 그냥 분리해도 되는데. 3개이상 커스텀 한 데이터 소스를 써야 할때는.. 어떻게 해야 편하고 코드추가 없이 해야 하나.고민하다가 TransactionSynchronizationManager.isCurrentTransactionReadOnly() ? // DataSourceLookupKey.READ : DataSourceLookupKey.WRITE;데이터소스 구성spring: application: name: multi-datasource-demo jpa: hibernate: ddl-auto: update show-sql: trueread: datasource: hikari: jdbc-u..
2024.07.06
-
ITerms 설정
iTerm2 설정하기 iTerm2 애플리케이션을 다운로드하고 설치합니다. iTerm2는 여기에서 다운로드할 수 있습니다. iTerm2를 실행하고 메뉴에서 Preferences를 선택합니다. General 탭에서 Working Directory 섹션에서 "Reuse previous session's directory"를 선택합니다. 이렇게하면 iTerm2가 새 탭을 열 때 항상 이전 작업 디렉토리를 사용합니다. Profiles 탭에서 Default 프로필을 선택하고 Colors 탭을 클릭합니다. 여기서 Color Presets 드롭다운 메뉴에서 좋아하는 테마를 선택할 수 있습니다. 여기에서는 Solarized Dark를 선택해 보겠습니다. Text 탭으로 이동하여 Font을 변경할 수 있습니다. 여기에서는..
2023.02.18
-
Grafana Polystat chart
https://grafana.com/grafana/dashboards/11360 K8S Node,Container, pod Status dashboardData for Grafana kubernetes Node, Container, pod monitoring grafana.com source -> metricbeat, kube-state-metric datasource -> ES 구성방법 client workspace - helm 으로 metricbeat, kube-state-metric 설정 - 거의 모든 부분 디폴트에 output 부분만 central workspace 쪽으로 설정 central workspace - logstash, ES, grafana 설치
2019.12.06
-
Java stream 의 Optional.orElseThrow
Java 스트림 API에서 orElseThrow 메서드는 Optional 클래스의 메서드 중 하나로, Optional 객체에 값이 없을 경우 예외를 던지는 방식으로 사용됩니다. 이 메서드를 사용하면 값이 없을 때 특정 예외를 던질 수 있어서 더 안전한 코드 작성을 도와줍니다. 이를 스트림과 함께 사용하여 값을 처리하고 예외를 던지는 방법을 설명하겠습니다. import java.util.Optional;public class Example { public static void main(String[] args) { Optional optional = Optional.of("Hello, World!"); String value = optional.orElseThrow(() ->..
2024.07.28
-
@Configuable 과 @Configuation 의 차이
@Configuration@Configuration 어노테이션은 Spring 애플리케이션의 설정 클래스를 정의하는 데 사용됩니다. 이러한 클래스는 하나 이상의 @Bean 메서드를 포함하여 Spring IoC 컨테이너에서 관리되는 객체(Bean)를 정의합니다.주요 기능과 동작설정 클래스:@Configuration이 적용된 클래스는 Spring 애플리케이션 컨텍스트에 의해 설정 정보로 사용됩니다.이 클래스는 보통 애플리케이션의 환경설정을 Java 코드로 정의하는 데 사용됩니다.Bean 정의:@Bean 어노테이션이 적용된 메서드는 Spring 컨테이너에 의해 호출되어 Bean 객체를 생성하고 관리합니다.@Configuration 클래스 내의 @Bean 메서드는 Bean을 정의하고 이를 Spring 컨텍스트에 ..
2024.07.28
-
Jasypt library
gradle implementation 'com.github.ulisesbocchio:jasypt-spring-boot:3.0.5'ymljasypt: encryptor: bean: jasyptStringEncryptor Config@Configuration@EnableEncryptablePropertiespublic class JasyptConfiguration { @Bean("jasyptStringEncryptor") StringEncryptor stringEncryptor() { String key = "XXXXXXXXXXXXXXX"; PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor(); Simpl..
2024.07.28
-
@JsonIgnore, @JsonProperty
@JsonIgnore는 해당 필드를 JSON 직렬화/역직렬화 시 사용한다. 다만 아래와 같은 단점이 있다데이터 손실 위험: @JsonIgnore를 사용하면 해당 필드가 JSON 직렬화 및 역직렬화 과정에서 무시됩니다. 이는 클라이언트와 서버 간 데이터 전송 시 해당 필드의 데이터가 손실될 수 있음을 의미합니다. 예를 들어, 서버에서 생성된 lastUpdated 필드를 클라이언트로 전송하지 않으면, 클라이언트가 이 필드를 다시 서버로 전송할 때 최신 값을 알 수 없게 됩니다.데이터 불일치 문제: 특정 필드를 무시하면, 클라이언트와 서버 간 데이터 모델이 일치하지 않게 됩니다. 이는 특히 데이터 무결성을 유지해야 하는 시스템에서 문제가 될 수 있습니다. 클라이언트 측에서 변경된 데이터가 서버 측 데이터와 일..
2024.06.16