일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- APM
- 오블완
- AI
- 정보처리기사 실기
- Linux
- kotlin spring
- MySQL
- minikube
- Pinpoint
- 정보처리기사실기 기출문제
- aws
- Java
- 정보처리기사 실기 기출문제
- CKA
- Elasticsearch
- mysql 튜닝
- 공부
- 코틀린 코루틴의 정석
- Kubernetes
- PETERICA
- IntelliJ
- AWS EKS
- 티스토리챌린지
- kotlin
- kotlin querydsl
- 기록으로 실력을 쌓자
- CloudWatch
- kotlin coroutine
- CKA 기출문제
- Spring
- Today
- Total
목록Programming (187)
피터의 개발이야기
ㅁ 들어가며 다음은 조직도 테이블 구조를 트리구조 JSON 형태로 변환하는 Java 코드 샘플입니다. 이 코드는 JDBC 드라이버를 사용하여 데이터베이스에서 데이터를 가져오는 것을 전제로 합니다. import java.sql.*; import java.util.*; public class OrgChart { public static void main(String[] args) { try { Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/orgchart", "username", "password"); Statement stmt = conn.creat..
ㅁ 들어가며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..
ㅁ 개요 ㅇ Cookie를 사용하면서 타 사이트간의 쿠키 전달에 대한 트러블 슈팅을 하게 되었다. ㅇ 트러블 슈팅 중에 Cookie SameSite 정책에 대해 알게 되어 이를 정리하였다. ㅁ SameSite 정책 쿠키는 발급 시 사용할 수 있는 domain, path 등을 명시할 수 있고 조금 더 강력한 정책으로 SameSite 설정을 통해 어떤 도메인에 쿠키를 허용할지 쿠키 발급자가 정해줄 수 있다. ㅁ 옵션 None : 기존의 방식과 동일힙니다. 서드 파티 쿠키가 전송됩니다. SameSite를 검증하지 않습니다. 그래서 A 사이트에서 B 사이트로 요청을 전송하게 되면 B 사이트의 쿠키가 붙어서 전송됩니다. Lax : 몇가지 예외적인 요청을 제외하고는 서트 파티쿠키가 전송되지 않습니다. 일반적으로 G..
ㅁ 개요 개발을 하면서 정규식을 다양하게 사용하게 된다. 로그분석 시 텍스트에서 특정패턴의 값을 추출할 때도 있고, 로그인 시 비밀번호와 이메일의 정합성을 식별하기 위해서도 정규식을 사용한다. 이 글에서는 그 정규식에 대해서 정리하고 자주 사용하는 패턴들에 대해서 정리하였다. ㅁ 정규식이란? 정규식이란 사전적인 의미로는 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어를 말한다. 주로 문자열의 검색과 치환을 위한 용도로 많이 쓰이고 있다. 입력한 문자열에서 특정한 조건의 문자를 추출하는 경우 일반적인 방법은 다소 복잡하고 반복적인 경우가 발생하지만, 정규식을 이용하면 매우 간단하게 표현하고 식별할 수 있다. 하지만 코드는 간소화 되었지만 정규식 자체의 복잡도로 인해 가독성이 많이 떨어지는..
구글 자바 컨벤션 가이드 ㅁ 코드 컨벤션(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를 우선 종료시켜 새로운 요청을 받지 않고, 처리 중인 요청을 완료한 후에 종료하는 것이다..