일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 컨텍스트 엔지니어링
- MySQL
- minikube
- kotlin querydsl
- AI
- APM
- PETERICA
- 티스토리챌린지
- golang
- CKA
- 오블완
- CKA 기출문제
- 기록으로 실력을 쌓자
- 바이브코딩
- go
- Kubernetes
- 정보처리기사 실기 기출문제
- Spring
- Linux
- aws
- kotlin coroutine
- Pinpoint
- 공부
- SRE
- AWS EKS
- CloudWatch
- 코틀린 코루틴의 정석
- kotlin
- tucker의 go 언어 프로그래밍
- Java
- Today
- Total
목록Programming/Spring (61)
피터의 개발이야기

ㅁ 개요 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 system..

ㅁ 개요 ㅇ 시스템 로그 점검 시 로그 저장 시 파일 시스템에 문제가 발생하였다. ㅁ 에러 내용 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..

Apache Log4j 보안이슈를 대응했던 히스토리를 남깁니다. □ 개요 o Apache 소프트웨어 재단은 자사의 Log4j 2에서 발생하는 취약점을 해결한 보안 업데이트 권고[1] o 공격자는 해당 취약점을 이용하여 악성코드 감염 등의 피해를 발생시킬수 있으므로, 최신 버전으로 업데이트 권고 □ 주요 내용 o Apache Log4j 2*에서 발생하는 원격코드 실행 취약점(CVE-2021-44228)[2] * 프로그램 작성 중 로그를 남기기 위해 사용되는 자바 기반의 오픈소스 유틸리티 □ 영향을 받는 버전 o 2.0-beta9 ~ 2.14.1 모든버전 □ 해결방안 1) 2.0-beta9 ~ 2.10.0 - JndLookup 클래스를 경로에서 제거 : zip -q -d log4j-core-*.jar org..

ㅁ 개요 ㅇ DTO를 생성하다보면 파일의 수가 엄청나게 많게 된다. ㅇ 더러는 거의 비슷하거나, DTO 파일 중에 중복되는 컬럼들이 많다. ㅇ 이를 해결할 수 있는 Inner Class 사용법을 정리하였다. ㅁ 중첩된 Dto는 하나의 파일로 모아야 함. public class User { @Data @AllArgsConstructor @NoArgsConstructor public static class UserInfoDto { private String name; private String age; private String sex; } @Data @AllArgsConstructor @NoArgsConstructor public static class UserJoinDto { private String ..