일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- kotlin spring
- Java
- Linux
- AWS EKS
- minikube
- Pinpoint
- AI
- aws
- APM
- IntelliJ
- kotlin coroutine
- mysql 튜닝
- Elasticsearch
- 공부
- kotlin querydsl
- PETERICA
- 코틀린 코루틴의 정석
- 정보처리기사실기 기출문제
- MySQL
- 정보처리기사 실기
- 티스토리챌린지
- CKA
- 정보처리기사 실기 기출문제
- Spring
- 기록으로 실력을 쌓자
- CKA 기출문제
- Kubernetes
- 오블완
- CloudWatch
- kotlin
- Today
- Total
목록Programming/Spring (57)
피터의 개발이야기
ㅁ 개요 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 ..
코드를 관리하는 방법은 다양합니다. 대표적으로 enum으로 관리할 수도 있지만, 코드들이 다양하고 정말 변하지 않는 것도 있을 수 있지만 때때로 변경 추가 삭제 작업이 필요한 경우가 있습니다. 이런 코드들을 대부분 동일한 데이터를 디비에서 조회하게 되는데요, 이것을 Bean으로 데이터를 저장하여 관리하는 방법에 대해서 정리하였습니다. 테스트 코드 테이블 생성 create table code_data ( id int auto_increment primary key, group_name varchar(10) not null, code_name varchar(20) not null, code_value varchar(20) not null, memo varchar(100) null comment '설명', c..
Spring에서 환경변수를 배열로 불러올 경우가 있습니다. 다중환변 변수를 리스트로 불러오는 방법을 정리하였습니다. application.properties # get the element as an array base.module.elementToSearch=1,2,3,4,5,6 base.module.elementToSearch2=a;b;c;d;e;f DemoController.java @Value("${base.module.elementToSearch}") private String[] elementToSearch; @Value("#{'${base.module.elementToSearch2}'.split(';')}") private String[] elementToSearch2; @GetMapping..
개발하면서 발생한 에러에 대한 정리입니다. JPA에서 데이터를 불러오는 쪽에서 에러가 발생하였습니다. 에러내용 2021-01-18 16:08:05.931 [http-nio-8080-exec-9] ERROR com.xxxxx.util.LoggerAspect [LoggerAspect.java:32] - err=org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet at org.springframework.orm.j..
서론회사에서 Intercom을 사용하고 있습니다. 고객과의 상담 내용을 백업하고자 Intercom API를 연동하는 작업을 정리하였습니다.백업의 필요성Note를 보면 Conversation(대화방)은 2년동안의 데이터만 확인 할 수 있어 과거 상담내역은 따로 백업을 해야합니다. 그리고 저장된 상담내용은 1. 고객과의 분쟁에서 사실관계 입증을 하고 2. IBM 왓슨으로 만들 자동상담 시스템을 위한 학습데이터가 됩니다.Intercom data back-up을 위한 용어의 정의Conversation : 대화방, 각각의 conversation ID가 있음.Conversation parts : 카톡으로 따지면 하나의 버블, Conversation > Transcript > 여기서 오간 하나하나의 대화를 Par..