-
Helm, Helm chart
Helm Kubernetes 클러스터에 어플리케이션을 쉽게 배포하고 관리하기 위해 개발된 Kubernetes용 패키지 매니저 ex) Node의 npm, Python의 pip, Mac의 brew 등 Kubernates의 resource 생성은 보통 kubectl을 사용하지 않고 Helm, Kustomize를 사용한다 (kubectl은 보통 조회 용으로 사용함) Helm을 사용해 service, deployment, configmap, secret, hpa, pv/pvc 등의 resource를 묶어서 관리 할 수 있다 설치 $ brew install helm Helm Chart(= Helm Pac...
-
[Spring] Log masking 처리
민감한 개인 정보(이메일, 주민번호, 계좌번호 등)는 로그에서 마스킹 처리 해야 하는 경우가 있다. 로그 설정에서 손쉽게 마스킹 처리를 할 수 있다. Logback MaskingPatternLayout : 마스킹을 위한 레이아웃 클래스 logback.xml의 마스킹 패턴을 읽고 이를 로그 메시지에 적용 PatternLayout 상속 public class MaskingPatternLayout extends PatternLayout { private Pattern multilinePattern; private List<String> maskPa...
-
Github actions gradle error 출력
Github Actions로 CI 단계에서 gradle test를 돌릴 때 에러 메시지를 확인 하지 못해 테스트 실패원인을 파악하기 어려운 경우가 많다 아래 설정을 통해 test의 assert 값을 간단하게 확인할 수 있다 tasks.test { ... testLogging { exceptionFormat = TestExceptionFormat.FULL } ... } 위 설정 외에도 다양하게 에러를 출력할 수 있다 testLogging { showStandardStreams = true // standard out, standa...
-
Spring Enum Validation
Enum을 파라미터로 받을 때 존재하지 않을 경우 HttpMessageNotReadableException처럼 컨버팅 exeception이 발생한다 이를 해결하고 적절한 에러로 전환하기 위해 컨버터를 사용해서 해결 할 수 있다 public enum Platform { GOOGLE, NAVER, KAKAO; } 컨버터 생성 컨버터에서 커스텀 exception으로 에러전환을 할 수 있다 public class PlatformConverter implements Converter<String, Platform> { @Override ...
-
[Kafka] Spring Kafka
파이프라인, 스트리밍 분석, 데이터 통합 및 미션 크리티컬 애플리케이션을 위해 설계된 고성능 분산 이벤트 스트리밍 플랫폼 Pub-Sub 모델의 메시지 큐 형태로 동작하며 분산환경에 특화 동작방식 1. 메시지 브로커 메시지를 처리하면 빠른시간내에 삭제 ex) 레디스 큐, RabbitMQ 2. 이벤트 브로커 이벤트를 처리하면 일정시간 보관가능 이벤트를 저장해서 장애시 시작위치 복구가능 ex) Kafka, AWS 키네시스 구성요소 1. Producer 메시지 전송시 Topic 설정 ack설정 (0:전달여부X, 1:전달여부O, all:복제여부까지) 2. Consumer...