일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- db
- php
- Oracle
- 맛집
- devops
- tool
- javascript
- Design Patterns
- springboot
- redis
- MySQL
- 요리
- java
- IntelliJ
- laravel
- jsp
- elasticsearch
- Spring
- Gradle
- it
- AWS
- JVM
- linux
- Git
- Web Server
- Spring Batch
- ReactJS
- Spring Boot
- ubuntu
- jenkins
- Today
- Total
목록Spring (78)
아무거나
Java + Spring Boot 개발시에 빈번하게 작성되는 try ~ catch 또는 예외처리등을 간소화하며 에러를 공통으로 핸들링하기 위해 전역으로 사용되는 Exception Handler 객체를 만들어보자. @ControllerAdvice 사용한 방법으로 진행하자. 자세한 코드는 https://github.com/bkjeon1614/java-example-code/tree/develop/bkjeon-mybatis-codebase 를 참고하면 된다. Global Exception Handler 처리 에러 객체 생성 [ErrorResponse.java] import java.util.ArrayList; import java.util.List; import java.util.stream.Collector..
해당 포스팅은 2편인 이전 포스팅인 https://bkjeon1614.tistory.com/712을 참고하여 사전작업 후 진행하는것이 좋다. (모니터링 하는 방법에 대해서만 설명이 나오기 때문) prometheus 란? Prometheus는 이벤트 모니터링 및 경고에 사용되는 무료 소프트웨어 응용 프로그램입니다. 유연한 쿼리 및 실시간 경고와 함께 HTTP 풀 모델을 사용하여 구축 된 시계열 데이터베이스에 실시간 메트릭을 기록 풀 방식의 메트릭 수집, 시계열 데이터 저장 promQL을 활용하여 저장된 시계열을 쿼리 및 집계 promQL: 프로메테우스에서 실시간으로 시계열 데이터를 집계할 수 있는 함수형 쿼리 언어 서비스 디스커버리 데이터 시각화 grafana 란? Grafana는 오픈소스 메트릭 데이터 ..
해당 포스팅은 1편인 이전 포스팅인 https://bkjeon1614.tistory.com/711을 참고하여 사전작업 후 진행하는것이 좋다. (모니터링 하는 방법에 대해서만 설명이 나오기 때문) 서킷브레이커 테스트를 위한 코드수정 먼저 모니터링을 위하여 https://bkjeon1614.tistory.com/711 의 CircuitBreakerService.java 코드를 일부 변경하자. [CircuitBreakerService.java] import java.util.Random; import org.springframework.stereotype.Service; import com.example.bkjeon.constants.Resilience4jCode; import io.github.resilie..
서킷브레이커란 Fault Tolerance(=장애 허용 시스템) 에서 사용되는 대표적인 패턴으로써 서비스에서 타 서비스 호출 시 에러, 응답지연, 무응답, 일시적인 네트워크 문제 등을 요청이 무작위로 실패하는 경우에 Circuit를 오픈하여 메세지가 다른 서비스로 전파되지 못하도록 막고 미리 정의해놓은 Fallback Response를 보내어 서비스 장애가 전파되지 않도록 하는 패턴 (대표적으로 MSA 환경에서 사용) 상태가 정상 Client -> Service A -> Circuit Breaker (상태: 정상이므로 Bypass Traffic) -> Service B 상태가 장애상황 Client -> Service A Circuit Breaker (상태: 장애상황이므로 Fallback Message 처..
Gradle Multi Project (Gradle 7.1.1 기준 대응) 필수참고 https://bkjeon1614.tistory.com/38 포스팅을 먼저 참고하고오자. 해당 포스팅은 Gradle 업그레이드로 인한 Deprecate 대응이므로 일부 코드수정만 확인할 수 있다. (참고 Github Repo) 시작하기전에 이전 포스팅에서 작성했던 Gradle 기능중 일부 삭제된 부분이 존재한다. 삭제된 내용은 하기 내용을 참고하자. Could not find method compile() for arguments 오류해결 compile, runtime, testCompile, testRuntime 은 Gradle 4.10 (2018. 8. 27) 이래로 Deprecate 되었으며 Gradle 7.0 (2..
AWS JAVA SDK 사용시 AWS Credential 클래스별 자격증명 (AWS Credential 관련 코드를 작성할 때 필수적으로 참고해야되는 내용이다.) BasicAWSCredentials 직접 accessKey, secretKey 설정 ... .withCredentials( new AWSStaticCredentialsProvider( new BasicAWSCredentials( "{accessKey}", "{secretKey}" ) ) ) ... DefaultAWSCredentialsProviderChain 기본 작업 공급자 체인이며 하기 순서대로 자격 증명을 찾는다. EnvironmentVariableCredentialsProvider 환경변수 AWS_ACCESS_KEY_ID 과 AWS_SE..
spring boot 2.5 이상부터 생성된다고함 -plain 이 붙은 jar 파일은 plain archive 라고하며 애플리케이션 실행에 필요한 모든 의존성을 포함하지 않고, 작성된 소스코드의 클래스 파일과 리소스 파일만 포함 (즉, 모든 의존성이 존재하지 않기 때문에 java -jar 명령어로 실행시 오류가 발생) plain.jar 생성 방지를 위한 설정 추가 [build.gradle] ... jar { enabled = false }
@NotEmpty 등과 같은 Annotation 이 import 안될 때 NotEmpty 등과 같은 Annotation 은 javax.validation.constraints 패키지에 존재한다. 또한 스프링부트 2.3 이상부터 포함되지 않고 따로 의존성을 추가하여야한다. 의존성 추가는 하기 코드를 참고 [build.gradle] dependencies { implementation 'org.springframework.boot:spring-boot-starter-validation' }
결과값 리턴값이 String 인 경우 한글이 깨지는 현상 (설정 파일에서 인코딩을 지정해도 안될 경우) 원인은 HTTP 메소드 컨버터의 StringHttpMessageConverter 에서 기본 옵션 ISO-8859-1을 발견 해결방법 String 이 아닌 다른 값으로 가공 (굳이 String 이 아닌 Response Model 클래스를 따로 만들어서 리턴하였음) WebConfig 의 configureMessageConverters 오버라이딩하여 converter.setWriteAcceptCharset(false); 로 변경 @Configuration public class WebMvcConfig extends WebMvcConfigurerAdapter { @Override public void conf..
Blocked mirror for repositories .. 에러가 표시되며 다운로드가 안되는경우 현재 폐쇠망에서 특정 모듈을 Nexus에 모아 사용하고 있는 상태이며 알아본 결과 Maven 3.8.1 버전부터 http에 대한 외부 연결을 막는 설정이 default로 변경되었다고함 해결방법은 해당 nexus를 https로 변경시켜주는 방법 또는 maven의 settings.xml에 http를 무력화 시켜주는 코드를 삽입하는 총 두 가지의 방법이 있으며 우선 settings.xml 을 활용하는 방법으로 진행하였다. [settings.xml] ... maven-default-http-blocker external:dont-match-anything-mate:* Pseudo repository to mirr..