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

ㅁ 개요 개발을 하면서 정규식을 다양하게 사용하게 된다. 로그분석 시 텍스트에서 특정패턴의 값을 추출할 때도 있고, 로그인 시 비밀번호와 이메일의 정합성을 식별하기 위해서도 정규식을 사용한다. 이 글에서는 그 정규식에 대해서 정리하고 자주 사용하는 패턴들에 대해서 정리하였다. ㅁ 정규식이란? 정규식이란 사전적인 의미로는 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어를 말한다. 주로 문자열의 검색과 치환을 위한 용도로 많이 쓰이고 있다. 입력한 문자열에서 특정한 조건의 문자를 추출하는 경우 일반적인 방법은 다소 복잡하고 반복적인 경우가 발생하지만, 정규식을 이용하면 매우 간단하게 표현하고 식별할 수 있다. 하지만 코드는 간소화 되었지만 정규식 자체의 복잡도로 인해 가독성이 많이 떨어지는..

구글 자바 컨벤션 가이드 ㅁ 코드 컨벤션(Code Convention) 코딩 컨벤션은 읽고, 관리하기 쉬운 코드를 작성하기 위한 일종의 코딩 스타일 규약이다. 개발은 대부분 혼자가 아닌 협업으로 개발하기 때문에 본인이 작성한 코드가 다른 사람들이 이해하기 어렵다면 협업에 문제가 발생하게 된다. 같은 프로젝트 안에서 다른 개발자의 코드를 이해하는데 시간이 소요된 만큼 작업의 능률은 떨어지고, 기능에 대한 오해로 인해 오류가 쉽게 발생할 수 있다. 그래서 코드의 스타일(코딩 규칙)을 통일하기 위한 협약, 약속을 코드 컨벤션이라고 한다. 코드 컨벤션의 궁극적인 목표는 누구나 쉽게 코드를 이해하고 사용할 수 있게 하기위함이다. ㅁ 코드컨벤션의 필요성소프트웨어를 개발하는 일련의 모든 과정에 들어가는 비용 중..

소스가 IO 채널인 Files.lines(Path, Charset) Stream만 닫아야 합니다. 스트림에는 BaseStream.close() 메서드가 있고 AutoCloseable을 구현하지만 거의 모든 스트림 인스턴스는 실제로 사용 후 닫을 필요가 없습니다. 일반적으로 소스가 IO 채널인 Stream(ex: Files.lines(Path, Charset)에서 반환된 스트림)만 닫아야 합니다. 대부분의 스트림은 특별한 리소스 관리가 필요하지 않은 Collections, Arrays, generating functions에 의해 지원됩니다. 스트림을 닫아야 하는 경우 try-with-resources 문에서 리소스로 선언할 수 있습니다. public static void main(String[] args..

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

ㅁ 개요 Mysql varchar 컬럼의 사이즈에 맞게 문자열을 짤라서 넣어야 되는 상황이었다. JAVA에서 책정한 문자길이와 디비 varchar에서 책정되는 문자길이가 다른점을 발견하였다. 정확히 varchar에 맞게 문자열을 짤라 넣기 위해서는 JAVA와 Mysql의 문자길이 체크 방법을 명확히 알아야만 한다. 그 방법에 대해서 정리하였다. ㅁ 테스트를 위한 TEST 테이블 생성 create table TEST ( TEST varchar(10) charset utf8 not null ); ㅁ Mysql의 length와 char_length 차이 비교 select TEST, CHAR_LENGTH(TEST) charLen, LENGTH(TEST) len from TEST; ㅇ char_length는 영어..

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..