일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 querydsl
- AI
- MySQL
- mysql 튜닝
- 정보처리기사실기 기출문제
- Pinpoint
- IntelliJ
- Spring
- kotlin
- 정보처리기사 실기
- Linux
- kotlin coroutine
- Java
- 티스토리챌린지
- CKA
- 기록으로 실력을 쌓자
- 코틀린 코루틴의 정석
- CloudWatch
- minikube
- PETERICA
- Kubernetes
- APM
- Elasticsearch
- 정보처리기사 실기 기출문제
- aws
- 오블완
- 공부
- kotlin spring
- CKA 기출문제
- AWS EKS
- Today
- Total
목록2024/07 (29)
피터의 개발이야기
ㅁ 들어가며ㅇ QueryDSL 환경구성을 하면서 발생한 에러에 대해 트러블 슈팅과정을 정리하였다. ㅁ 에러java.lang.NoSuchFieldError: TREATED_PATH at com.querydsl.jpa.JPQLTemplates.(JPQLTemplates.java:147) at com.querydsl.jpa.JPQLTemplates.(JPQLTemplates.java:51) at com.querydsl.jpa.JPQLTemplates.(JPQLTemplates.java:46) at com.querydsl.jpa.impl.JPAProvider.(JPAProvider.java:59) at com.querydsl.jpa.impl.JPAQuery.(JPAQuery.java:48) at com.quer..
ㅁ 들어가며ㅇ Kotlin Spring 프로젝트에서 MapStruct와 Lombok을 사용할 때 isCompleted가 null로 넘어오는 문제가 발생하였다.ㅇ 이를 해결하면서 Lombok과 MapStruct의 충돌에 대해서 알게 되어 이를 정리하였다.ㅇ 우선 나의 문제와 해결방법을 정리하고, 원인을 분석하는 과정에 다른 글에서 null일 수 있는 경우도 정리하였다.관련글: [Kotlin] 코틀린 MapStruct ㅁ 문제상황ㅇ reqDto.isComplated가 swagger에 보이지 않음.ㅇ MapStruct 구현부에서 isComplated가 entity로부터 값을 set받지 못하여 null.ㅇ resDto.isComplated이 결과 JSON에서 아예 키까지 빠져있음.// RequestDto: S..
ㅁ 들어가며ㅇ 대량의 파일을 JVM에서 처리할 경우 OOME의 위험이 있어, 커널에서 직접 처리하기로 결정되었다.ㅇ kotlin에서 커널에 명령을 줄 수 있고, 이를 Kotlin에서 간편하게 쓸 수 있는 방법을 찾고 있다.ㅇ kotlin으로 shell 명령어를 사용하여 파일을 복사하고 압축하는 util을 만들어 보았다. ㅁ ShellUtil.ktimport java.io.Fileobject ShellUtil { /** * cp 명령을 사용하여 파일을 복사한다. * 원본 파일 경로와 대상 경로를 인자로 받는다. * -r: 디렉토리 복사(없으면 생성) */ fun copyFile(source: String, destination: String): Boolean { ..
ㅁ 들어가며ㅇ 대량 압축작업 시 OOME(Out Of Memory Exception)의 발생을 방지하기 위한 방법을 찾는 중이다.ㅇ 지난 글, [Kotlin] ManagementFactory을 이용한 JVM 모니터링 방법에서는 JVM의 메모리 사용량을 검토하여 서킷브레이크 패턴을 적용하려고 검토하였다.ㅇ 하지만 JVM의 힙메모리를 넘어서는 경우 커널에서 압축을 진행하는 방법도 검토하게 되면서 Kotlin에서 shell을 실행하는 방법을 공부하였다. ㅁ shell 실행코드fun runCommand(command: String) { try { val process = Runtime.getRuntime().exec(command) // 명령어 실행 결과 읽기 val ..
ㅁ 들어가며ㅇ 대부분의 일자 데이터들은 YYYY-MM-DD, 년월일의 형태를 띄고 있지만, 오늘 개발했던 데이터는 YYYY-MM의 형태였다.ㅇ Kotlin에서 Querydsl을 사용하여 YYYY-MM 형태의 날짜를 between 조건으로 검색하자, 파싱 에러가 발생하였다. ㅁ Querydsl에서 YYYY-MM로 검색하는 방법ㅇ Kotlin에서 Querydsl을 사용하여 YYYY-MM 형태의 날짜를 between 조건으로 검색하는 방법먼저 YYYY-MM 형태의 문자열을 날짜 객체로 변환한다.해당 월의 시작일과 종료일을 계산한다.between 조건을 사용하여 쿼리를 작성한다. ㅁ YYYY-MM 검색 예시import com.querydsl.jpa.impl.JPAQueryFactoryimport java.ti..
ㅁ 들어가며ㅇ 맥미니에 문제가 발생하여 웹이 접속이 되지 않았다.ㅇ 원격터미널에서 맥미니를 재기동하고 Docker를 기동하는 과정을 정리하였다. ㅁ 원인파악// 에러 내용The application /Applications/Docker.app cannot be opened for an unexpected reason, error=Error Domain=RBSRequestErrorDomain Code=5 "Launch failed." UserInfo={NSLocalizedFailureReason=Launch failed., NSUnderlyingError=0x60000388dce0 {Error Domain=OSLaunchdErrorDomain Code=125 "Domain does not support s..
ㅁ 들어가며ㅇ 대량 압축작업 시 OOME(Out Of Memory Exception)의 발생을 방지하기 위한 방법을 찾는 중이다.ㅇ Kotlin에서 메모리 사용량 모니터링이 가능한 ManagementFactory에 대해서 알게 되어 정리하였다. ㅁ ManagementFactory란?ㅇ Kotlin에서 ManagementFactory는 Java Management Extensions (JMX) API의 일부로, JVM의 런타임 정보를 모니터링하고 관리하는 데 사용된다.ㅇ ManagementFactory는 주로 애플리케이션의 성능 모니터링, 디버깅, 그리고 런타임 동작을 제어하는 데 유용하다. ㅇ 이 클래스는 java.lang.management 패키지에 속해 있으며, JVM의 다양한 관리 인터페이스에 접근..
ㅁ 들어가며ㅇ 폴더를 삭제하는 Kotlin 코드를 정리하였다.ㅇ file.delete() 함수는 하위에 파일이나 폴더가 존재하면 삭제가 되지 않는다.ㅇ 그래서 이 코드는 지정된 폴더와 그 하위의 폴더와 삭제를 재귀적으로 삭제한다. ㅁ 폴더 삭제 코드import java.io.Filefun main() { val folderPath = "path/to/folder" // 삭제하려는 폴더 경로 val folder = File(folderPath) if (deleteFolder(folder)) { println("폴더가 성공적으로 삭제되었습니다: $folderPath") } else { println("폴더 삭제에 실패했습니다: $folderPath") ..
ㅁ 들어가며ㅇ Kotlin에서 List는 순서가 있는 요소들의 컬렉션이다. ㅇ 이 글에서는 List의 기본적인 사용법과 함께 자주 사용되는 연산들을 살펴본다.ㅁ List 생성하기val immutableList = listOf(1, 2, 3, 4, 5)val mutableList = mutableListOf("a", "b", "c")ㅁ List 요소 접근하기val firstElement = immutableList[0]val lastElement = immutableList.last()val firstElement = immutableList[0] val lastElement = immutableList.last()ㅁ List 순회하기for (item in immutableList) { printl..
ㅁ 들어가며ㅇ 밤 12시에 퇴근을 하였고, 집에 오면서 내일 해야할 일을 머리 속으로 정리하였다.ㅇ 업무코드에 할당된 파일을 선택하면, 코드폴더별로 파일 목록을 압축해야 한다. ㅁ 소스 코드package com.peterica.demoimport java.io.Fileimport java.io.FileInputStreamimport java.io.FileOutputStreamimport java.nio.file.Filesimport java.nio.file.Pathimport java.text.SimpleDateFormatimport java.util.*import java.util.zip.ZipEntryimport java.util.zip.ZipOutputStreamfun main() { val..