일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Spring Boot
- Web Server
- redis
- Spring
- IntelliJ
- laravel
- Oracle
- tool
- JVM
- db
- 요리
- linux
- ReactJS
- Gradle
- php
- ubuntu
- MySQL
- springboot
- it
- elasticsearch
- javascript
- AWS
- Git
- Spring Batch
- jsp
- 맛집
- devops
- jenkins
- Design Patterns
- java
- Today
- Total
목록전체 (810)
아무거나
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..
Optional 먼저 Optional 을 설명하기전에 NPE(=NullPointerException) 에 대해서 알아보자. NPE(=NullPointerException) 개발시 예외처리중 가장 많이 발생하는 오류가 NPE(=NullPointerException) 이다. NPE 를 방어하려면 null 여부를 검사해야 하는데 변수가 많을시에 코드의 가독성과 유지보수성이 떨어지기 때문에 null 대신 초기값을 사용하길 권장하기도 한다. Optional? Java8 에서 처음 도입되었으며 Optional 클래스를 사용하여 NPE를 방지할 수 있도록 도와준다. Optional 이란 Null 이 될 가능성을 가진 값을 객체로 감싸는 래퍼 클래스이다. 또한 하기 코드처럼 value 에 값을 저장하기 때문에 값이 n..
1. 좌측 메뉴에서 Settings > General 클릭 2. Merge requests 의 우측의 Expand 버튼 클릭 3. Merge suggestions > Default description template for merge requests 영역에 템플릿 작성 4. 다 완료하면 실제 Create Merge Requests 할 때 하기 이미지와 같이 내용이 보여지는걸 확인할 수 있다.
해당 포스팅은 2편인 이전 포스팅인 https://bkjeon1614.tistory.com/712을 참고하여 사전작업 후 진행하는것이 좋다. (모니터링 하는 방법에 대해서만 설명이 나오기 때문) prometheus 란? Prometheus는 이벤트 모니터링 및 경고에 사용되는 무료 소프트웨어 응용 프로그램입니다. 유연한 쿼리 및 실시간 경고와 함께 HTTP 풀 모델을 사용하여 구축 된 시계열 데이터베이스에 실시간 메트릭을 기록 풀 방식의 메트릭 수집, 시계열 데이터 저장 promQL을 활용하여 저장된 시계열을 쿼리 및 집계 promQL: 프로메테우스에서 실시간으로 시계열 데이터를 집계할 수 있는 함수형 쿼리 언어 서비스 디스커버리 데이터 시각화 grafana 란? Grafana는 오픈소스 메트릭 데이터 ..
1. 대파 껍질을 제거하고 흐르는 물에 씻는다. 2. 파의 길이는 약 5cm 정도로 잘라주고 (=손 3마디정도) 두꺼운 부분은 가운데에 칼집을 한 번 내주어 잘라준다. 3. 끓는 물에 소금 한 숟가락 넣고 대파를 살짝 데친다. ( 뜨거운 물에 들어가면 파향이 올라올때 바로 건져준다. ) 4. 건져준 대파를 바로 찬물에 넣는다. (파의 열기를 빼는게 중요하다 !!) 5. 대파를 직접 짜지말고 그물망에 냅두고 10~20분정도 물기를 제거한다. 6. " 참기름 1 스푼, 다진마늘 반스푼, 참깨 약간, 소금 반 스푼(=액젓도 좋음), 고춧가루 반 스푼 " 을 넣고 비비면 완성!
해당 포스팅은 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 에서 aws-java-sdk-dynamodb 를 활용한 AWS DynamoDB 연동 (+Credentials Setting 포함) 먼저 AWS Credentials 설정을 application.yml 기반으로 하게된다면 중요키들이 노출하게된다. 그래서 보통 KMS(=Key Management System)를 통한 관리, 키값 암호화 관리, 서버에 설정된 AWS CLI 를 통한 저장된 프로필 사용(Ex- ~/.aws/credentials) 등의 방법이 있으며 해당 내용에서는 서버에 설정된 AWS CLI 를 통한 저장된 프로필 사용 하는 방법으로 진행하도록 한다. aws-java-sdk-dynamodb 를 선택한 이유 (=spring-data-dynamodb 의 단점) 2020.03.0..