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

ㅁ 들어가며ㅇ Elasticsearch와 연동하는 작업 중에 SSL 인증서 에러가 발생하였다. ㅇ 이를 분석하고 해결하는 과정을 글로 남긴다. ㅁ 에러 내용Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetㅇ SSL 통신을 위해서는 인증서를 교환해야하지만, 인증서를 찾을 수 없다는 에러 메시지이다.ㅇ [Elasticsearch] Elasticsearch + Kibana 설치하기 with Docker에서 curl로..

ㅁ 들어가며ㅇ Spring Data Elasticsearch를 Kotlin으로 예제 코드를 작성해보겠다. ㅇ 이 글은 Kotlin과 Spring Boot를 사용하여 Elasticsearch에 데이터를 저장하고, JPA로 등록 조회 방법을 정리하였다. ㅁ 관련 글ㅇ [kotlin] Spring Data Elasticsearch 샘플코드ㅇ [Elasticsearch] Elasticsearch + Kibana 설치하기 with Dockerㅇ [Elasticsearch] Docker로 Elasticsearch 설치 및 테스트하기ㅇ [Elasticsearch] Kibana Query Language 사용법 정리 ㅁ Elasticsearch API-KEY 생성ㅇ Elasticsearch와 통신하기 위해서 api-k..

ㅁ 들어가며ㅇ Spring Data JPA를 사용할 때 개발자들이 자주 마주치는 고민 중 하나는 데이터베이스 스키마를 어떻게 관리할 것인가 하는 점이다. ㅇ 특히 개발 과정에서 엔티티 클래스가 자주 변경되는 경우, 이를 데이터베이스 스키마에 반영하는 작업이 번거로울 수 있다.ㅇ 이런 상황에서 JPA의 ddl-auto 기능은 매우 유용한 도구가 된다. ㅁ 관련 글ㅇ [Spring] JUnit5 조건부 테스트 실행방법 ㄴ JPA의 ddl-auto 기능과 함께 사용하면 개발환경 별 자동 테스트 환경을 구축할 수 있다. ㅁ ddl-auto란?ㅇ ddl-auto는 JPA가 제공하는 기능으로, 애플리케이션 실행 시 데이터베이스 스키마를 자동으로 관리해주는 옵션이다. ㅇ 이 기능을 사용하면 엔티티 클래스의 변경사항..

ㅁ 들어가며ㅇ 새로운 프로젝트에서 코틀린을 처음 쓰게 되었다.ㅇ 또한 Querydsl도 사용하고 있어서 연습을 위해 프로젝트를 생성하는 과정을 정리하였다.ㅇ Querydsl은 SpringBoot 버전 마다 설정법이 달라 참조하는 설명마다 설정 방법이 달랐다.ㅇ 내가 성공한 기준으로 이력을 남겨놓는다. ㅁ 프로젝트 생성ㅇ Spring Data JPA와 MySQL Driver, Elasticsearch를 추가하였다. ㅁ 의존성 추가import org.jetbrains.kotlin.gradle.tasks.KotlinCompileplugins { id("org.springframework.boot") version "3.1.0" id("io.spring.dependency-management") ve..

ㅁ 들어가며ㅇ Kotlin Spring 프로젝트를 Gradle로 빌드할 때 다음과 같은 경고 메시지가 나타나 이를 해결하는 과정을 이력으로 남겨 본다.ㅇ 검색을 해보니 인텔리제이 변경, Gradle 경고 모드 변경, Gradle 버전 변경 방법들이 있어 각각 적용해 보았다. ㅁ 경고 메시지Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.ㅇ 이 경고는 프로젝트에서 사용 중인 Gradle 기능 중 일부가 더 이상 사용되지 않으며, Gradle 9.0과 호환되지 않을 수 있음을 나타낸다. ㅇ 이 문제를 해결하기 위한 몇 가지 방법을 찾아 보았다. ㅁ해결 방법 1: IntelliJ IDEA 설정 변..

파일 폴더를 압축하고 에러 처리가 가능한 shell(tar 버젼)#!/bin/bash# 압축할 폴더와 결과 파일 이름을 인자로 받음SOURCE_DIR="$1"OUTPUT_FILE="$2"# 함수: 에러 메시지 출력 및 종료error_exit() { echo "에러: $1" >&2 exit 1}# 인자 개수 확인if [ $# -ne 2 ]; then error_exit "사용법: $0 "fi# 소스 디렉토리 존재 확인if [ ! -d "$SOURCE_DIR" ]; then error_exit "지정한 폴더가 존재하지 않습니다: $SOURCE_DIR"fi# 출력 파일 이름이 .tar.gz로 끝나는지 확인if [[ "$OUTPUT_FILE" != *.tar.gz ]]; then O..

ㅁ 들어가며ㅇ Kibana Query Language(KQL)는 Elasticsearch 데이터를 효과적으로 검색하고 필터링하기 위한 강력한 쿼리 언어다. 이 글에서는 KQL의 주요 기능과 사용법을 정리하였다. ㅁ 관련 글ㅇ [kotlin] Spring Data Elasticsearch 샘플코드ㅇ [Elasticsearch] Elasticsearch + Kibana 설치하기 with Dockerㅇ [Elasticsearch] Docker로 Elasticsearch 설치 및 테스트하기ㅇ [Elasticsearch] Kibana Query Language 사용법 정리 ㅁ 기본 구문field:valueㅇ 예를 들어 username:john은 username이 john인 데이터를 조회한다. ㅁ 와일드카드 검색*..

ㅁ 들어가며ㅇ [Elasticsearch] Docker로 Elasticsearch 설치 및 테스트하기에서 Elasticsearch를설치하였다.ㅇ 공식 문서 - Install Elasticsearch with Docker의 내용을 토대로 docker 설치과정을 맥미니에서 수행해 보았다.ㅇ 테스트 용으로 단일 노드 클러스터로 진행하였다. ㅁ 관련 글ㅇ [kotlin] Spring Data Elasticsearch 샘플코드ㅇ [Elasticsearch] Elasticsearch + Kibana 설치하기 with Dockerㅇ [Elasticsearch] Docker로 Elasticsearch 설치 및 테스트하기ㅇ [Elasticsearch] Kibana Query Language 사용법 정리 ㅁ elasti..

ㅁ 들어가며ㅇ ktlint는 Kotlin 코드의 스타일을 체크하고 포맷팅하는 도구다.ㅇ 이 글에서는 Spring Boot와 Kotlin을 사용하는 프로젝트에 ktlint를 설정하는 방법을 설명한다. ㅁ build.gradle.kts 파일 수정plugins { id("org.jlleitschuh.gradle.ktlint") version "12.1.0"}ktlint { verbose.set(true) outputToConsole.set(true) coloredOutput.set(true) reporters { reporter(org.jlleitschuh.gradle.ktlint.reporter.ReporterType.CHECKSTYLE) reporter(..

ㅁ 들어가며ㅇ [Kotlin] Spring Boot와 Kotlin으로 QueryDSL 페이징 처리하기을 작성하면서 Circular view path 에러가 발생하여 해결방법을 정리하였다. ㅁ 에러 내용jakarta.servlet.ServletException: Circular view path [products]: would dispatch back to the current handler URL [/products] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)ㅇ REST API 컨트롤러에서 뷰 리졸버(View Reso..

ㅁ 들어가며 지난 글, [Spring] Kotlin으로 JPA Querydsl 세팅에서 Spring Boot와 Kotlin을 사용하여 QueryDSL을 적용한 프로젝트를 구성하였다. QueryDSL을 사용하면 동적 쿼리를 쉽게 작성할 수 있으며, Spring Data의 페이징 기능을 활용하면 대량의 데이터를 효율적으로 처리할 수 있다. 이번 글에서는 Spring Boot와 Kotlin을 사용하여 QueryDSL을 적용한 프로젝트에서 페이징 처리를 구현하는 방법을 정리하였다. ㅁ Repository 인터페이스 생성import org.springframework.data.domain.*import org.springframework.data.jpa.repository.JpaRepositoryinterfac..

ㅁ 들어가며ㅇ [Elasticsearch] Docker로 Elasticsearch 설치 및 테스트하기을 하면서 발생한 https 에러를 해결하는 과정을 정리하였다.ㅇ 이 해결방법은 로컬 개발환경에서 테스트를 위한 해결방법이다. 그래서 운영환경에서는 인증서 설치 과정을 수행해야 한다. ㅁ 에러 상황# 통신 수행$ curl -X GET "localhost:9200/?pretty"# 에러 내용received plaintext http traffic on an https channel, closing connection Netty4HttpChannel# row logs{"@timestamp":"2024-07-28T21:48:38.081Z", "log.level": "WARN", "message":"receiv..

ㅁ 들어가며ㅇ 프로젝트 진행 중에 Elasticsearch에 비정규화 테이터를 저장하는 요건이 발생하여 개인적으로 Elasticsearch를 집에 설치해 보았다.ㅇ 이 글은 Docker로 Elasticsearch 설치 및 테스트하는 과정을 정리하였다.ㅇ 기본적으로 도커는 설치 되어 있어야 한다. ㅁ 관련 글ㅇ [kotlin] Spring Data Elasticsearch 샘플코드ㅇ [Elasticsearch] Elasticsearch + Kibana 설치하기 with Dockerㅇ [Elasticsearch] Docker로 Elasticsearch 설치 및 테스트하기ㅇ [Elasticsearch] Kibana Query Language 사용법 정리 ㅁ Elasticsearch 이미지 다운로드docker ..

ㅁ 들어가며ㅇ JPA를 사용하면서 CascadeType.REMOVE와 orphanRemoval=true 옵션의 차이를 제대로 이해하지 못하였다.ㅇ 두 옵션 모두 엔티티 간의 관계를 관리하는 데 사용되지만, 그 목적과 동작 방식에는 차이가 있다.ㅇ 이 글에서는 두 옵션의 차이를 설명하고, 언제 어떤 옵션을 사용해야 하는지 알아보았다.ㅇ [JPA] CascadeType.REMOVE vs orphanRemoval=true 차이점 알아보기을 참조하여 작성하였다. ㅁ CascadeType.REMOVEㅇ 부모 엔티티가 삭제될 때, 연관된 자식 엔티티도 함께 삭제되도록 설정하는 옵션이다.@Entityclass Parent( @Id @GeneratedValue(strategy = GenerationType.IDE..

ㅁ 들어가며 MacBook M3에서 로컬에서 빌드한 Docker 이미지가 개발 환경에서 문제가 발생하는 경우가 있다. 그 이유는 주로 아키텍처 호환성 문제 때문일 수 있다. MacBook M3는 ARM 아키텍처를 사용하지만, 많은 서버 환경은 여전히 x86 아키텍처를 사용한다. 이로 인해, ARM에서 빌드한 이미지를 x86 환경에서 실행하려고 하면 문제가 발생할 수 있다. ㅁ 해결방법ㅇ 이 문제를 해결하기 위해 Colima를 사용하여 Docker 이미지를 빌드하는 것이 도움이 될 수 있다.ㅇ Colima는 MacOS에서 Docker를 실행하기 위한 경량의 대안으로, 기본적으로 QEMU를 사용하여 다양한 아키텍처를 지원한다.ㅇ 다음은 Colima를 사용하여 멀티 아키텍처 Docker 이미지를 빌드하는 방법..