일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- kubectl 설치
- minikube
- minikube dashboard
- AWS EKS
- Elasticsearch
- Java
- APM
- 기록으로 실력을 쌓자
- 정보처리기사실기 기출문제
- skaffold
- 공부
- Linux
- CloudWatch
- PETERICA
- Pinpoint
- Spring
- aws
- CKA 기출문제
- mysql 튜닝
- kubernetes tool
- 정보처리기사 실기 기출문제
- Kubernetes
- 쿠버네티스
- Kubernetes 자격증
- k9s
- MySQL
- IntelliJ
- CKA
- AWS EBS
- Redis 모니터링
- Today
- Total
목록Programming/Spring (34)
피터의 개발이야기
ㅁ 들어가며 지인과 대화 중 TDD의 어려움에 대해서 질문을 드렸다. 테스트 케이스 중에 제일 어려운게 Insert문이다. H2DB를 이용해 메모리상에 기능을 구현할 수 있는 방법도 있지만 한계가 있었다. Testcontainer는 이런 한계를 넘어 운영과도 똑같은 테스트환경에서 테스트를 가능하게 된다. 더욱이 코드상으로 구현하면 알아서 환경을 만들어 준다. 도저히 잠이 안와서 빠르게 테스트 환경만 구성해 보려고 한다. 현재 시간 00시 30분이다. ㅁ 통합 테스트 환경 유지의 어려움 [DevOps] Kube환경 Node, Redis, RDS 성능 업그레이드 작업 정리, 이 글은 검수기 테스트 환경을 구축하기 위해 AWS 환경을 증설하는 과정을 정리하였다. 통합 테스트 환경을 유지하는 데는 비용적 어려움..
ㅁ 개요 ㅇ Hateoas가 무엇인지 정의해 보고 Spring Boot REST API CRUD with HATEOAS Tutorial에 따란 Maven 프로젝트를 구성해 보았습니다. ㅁ Hateoas란 HATEOAS(Hypermedia As The Engine of Application State)는 웹 API를 실제로 "RESTful"로 만드는 REST 애플리케이션 아키텍처의 제약 조건입니다. 기본적으로 요청에 대해 서버는 데이터만 클라이언트에 보냅니다. HATEOAS를 사용하면 응답에 데이터뿐만 아니라 해당 데이터와 관련된 가능한 작업도 링크 형식으로 포함됩니다. ㅁ Leonard Richardson이 제시한 REST 성숙도 모델 이 모델은 아래에 설명된 대로 네 가지 수준으로 구성됩니다. 이 모델..
ㅁ 개요 Spring Cloud Gateway 로그 상에서 308 PERMANENT_REDIRECT 상태 코드가 지속적으로 발견되었다. 이를 모니터링하고 원인을 분석하는 과정을 정리하였다. ㅁ Http status Code Http Status Code는 크게 다섯 가지 HTTP 상태 코드 범주(또는 클래스)가 있다. 각각은 서버에서 브라우저로의 다른 응답을 나타낸다. 1XX — 정보 코드 : 서버가 요청을 확인하고 처리 중이다. 2XX — 성공 코드 : 서버가 요청을 성공적으로 수신, 처리하였다. 3XX — 리디렉션 코드 : 서버가 요청을 받았지만 다른 곳으로 리디렉션된다. 4XX — 클라이언트 오류 코드 : 서버가 페이지 또는 웹사이트를 찾을 수 없거나 연결할 수 없다. 이것은 사이트 측의 오류이다...
@Valid 벨리데이션 체크가 필요한 Dto에 @Valid 어노테이션을 붙인다. @ 중첩된 Dto validation 벨리데이션 체크가 필요한 dto 안에 중첩되는 dto가 있는 경우 다시 @Valid 어노테이션을 선언할 수 있다. @Schema(description = "벨리데이션 1단계 DTO") public class ValidationDepth1Dto { @NotNull(message = "Null만 체크하고 빈값을 체크하지 않는다.") private String nullChkStr; @NotEmpty(message = "Null, \"\"만 체크하고 공백은 체크하지 않는다.") private String emptyChkStr; @NotBlank(message = "Null, \"\", 공백을 포..
ㅁ 들어가며 Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. - 에러에 대한 조치 과정을 정리하였다. ㅁ 에러 내용 [admin] [restartedMain] [2023-04-21 11:46:32:7022] ERROR i.n.r.d.DnsServerAddressStreamProviders - Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to syste..
ㅁ 개요 ㅇ 시스템 로그 점검 시 로그 저장 시 파일 시스템에 문제가 발생하였다. ㅁ 에러 내용 2022-12-07 10:16:20,753 I/O dispatcher 435 ERROR An exception occurred processing Appender error_file org.apache.logging.log4j.core.appender.AppenderLoggingException: Error writing to stream efs/logs/ts/error/gw-ts.log at org.apache.logging.log4j.core.Logger.log(Logger.java:161) at org.springframework.util.concurrent.ListenableFutureAdapter$1..
ㅁ 개요 Webflux로 파일객체를 받아 동기화 하는 로직을 테스트 중 이었다. Postman으로 테스트 과정에서 Invalid boundary in the content type multipart/form-data 다음과 같은 에러가 발생하여 해결하는 과정을 정리하였다. ㅁ 발송 Postman Head와 Body curl --location --request POST 'https://127.0.0.1:8080/legacy/v1/npdb/npdb_00001' \ --header 'Content-Type: multipart/form-data;' \ --form 'file=@"/Users/peterseo/test_10000.sql"' ㅇ 발송할 때에 Content-Type을 multipart/form-dat..
ㅁ 개요 SOAP과 REST 비교에 관한 글을 작성하였고, 이번 글은 간결한 URI에 대해서 정리하였다. 이전 글을 읽어보면 REST API의 핵심은 간결성이며, 그 간결성을 통한 궁극적인 통신 속도에 최적화이다. 다시 정리하여 말하자면, SOAP(Simple Object Access Protocol)는 그 자체로 프로토콜이며, 보안이나 메시지 전송 등에 있어서 REST보다 더 많은 표준들로 정의되어 보안을 강조하는 금융권에서 사용하고, REST는 아키텍처 스타일로 기업들에서 애플리에이션 서버에 접속할 수 있는 도구로서 빠른 속도와 수정의 용이성으로 인해 빠르게 시장의 요구를 수용할 수 있다. ㅁ REST API의 탄생 REST는 Representational State Transfer라는 용어의 약자로..
ㅁ 개요 ㅇ Kubernetes환경에서 시스템을 운영하면서 트래픽에 따라 수시로 scale In/Out된다. ㅇ 이런 과정에서 pod가 종료되는 시점에 502 에러가 발생하여 이를 해결하기 위해 고민하게 되었다. ㅇ [Kubernetes] Kubernetes환경에서 graceful shutdown이란 글을 작성하였고, 이 글에서는 graceful shutdown을 적용하는 방법에 대해서 정리하였다. ㅁ SpringBoot에서 graceful Shutdown이란 graceful Shutdown이란 할건 하고 종료하자이다. graceful shutdown은 SpringBoot 어플리케이션 서버 종료 시 webserver를 우선 종료시켜 새로운 요청을 받지 않고, 처리 중인 요청을 완료한 후에 종료하는 것이다..
ㅁ SpringBoot 2.3 이전 버젼에서 graceful shutdown 구현 import org.apache.catalina.connector.Connector; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer; import org.springframework.context.ApplicationListener; import org.springframework.context.event.ContextClosedEvent; import java.util.concurrent.Executor; import java.u..