일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- IntelliJ
- 기록으로 실력을 쌓자
- kotlin querydsl
- CKA 기출문제
- Spring
- MySQL
- aws
- APM
- 공부
- 정보처리기사실기 기출문제
- mysql 튜닝
- AWS EKS
- kotlin spring
- PETERICA
- 오블완
- Pinpoint
- Kubernetes
- 정보처리기사 실기
- 코틀린 코루틴의 정석
- kotlin
- Linux
- kotlin coroutine
- AI
- Elasticsearch
- 티스토리챌린지
- CKA
- Java
- CloudWatch
- 정보처리기사 실기 기출문제
- minikube
- Today
- Total
목록Programming (187)
피터의 개발이야기
ㅁ 들어가며ㅇ Spring Boot를 시작하면서 데이터베이스 초기화하는 방법을 검토 중이다.ㅇ 이번 글에서는 Spring Boot는 애플리케이션 실행 시 데이터베이스를 초기화하는 방법을 개론적으로 정리해 보았다.ㅇ 구체적으로 적용이 필요한 시점에 구체적인 적용방법을 정리할 것이다. ㅁ 관련 글ㅇ [Spring] JUnit5 조건부 테스트 실행방법 ㄴ JPA의 ddl-auto 기능과 함께 사용하면 개발환경 별 자동 테스트 환경을 구축할 수 있다. ㅁ JPA를 사용한 초기화ㅇ JPA의 DDL생성 기능을 활용해 애플리케이션 시작 시 데이터베이스 스키마를 생성할 수 있다.ㅇ 다음 두 가지 설정으로 제어한다.// JPA의 DDL 생성 기능을 켜고 끈다.spring.jpa.generate-ddl: true/fal..
ㅁ 들어가며ㅇ api, batch, gateway, internel...를 구성하면서, 반복되는 Util, Dto, Entity, Service, Enum...을 만나게 된다.ㅇ 동일한 파일을 여러번 변경하기도 하고, 프로젝트별로 변경된 Util은 공통으로 관리하기도 어렵다.ㅇ 예로, 프로젝트가 10개이면, dto 하나 수정하고 PR 10번 올려야 한다.ㅇ 공통 기능을 모듈화하여 코드의 재사용성을 높이고 의존성 관리를 개선하기 위해 멀티 모듈은 꼭!! 필요하다.ㅇ 이번 글에서는 Kotlin Spring Boot 프로젝트를 멀티모듈로 구성하는 방법을 정리하였다. ㅁ 멀티 모듈 프로젝트의 필요성ㅇ 코드 재사용성 - 공통 기능을 개별 모듈에서 분리하여 공통으로 만들면 재사용이 가능하다. - 중복코드를 ..
ㅁ 들어가며ㅇ 신규 프로젝트에서 Kotlin JDSL을 사용하게 되어, 관련 공부를 하면서 참조 목록과 주요 문법을 정리해 보았다. ㅁ Kotlin JDSL란? Kotlin JDSL은 Kotlin의 DSL(Domain Specific Language) 기능을 활용하여 JPA Criteria API를 더 직관적이고 간결하게 작성할 수 있도록 한다. KProperty를 사용하여 메타모델을 사용하지 않고도 안전한 코드를 작성할 수 있다. ㅁ 주요문법@Entitydata class Order( @Id @GeneratedValue val id: Long, val purchaserId: Long, val amount: Double)ㅇ Order를 가정해 보자. val query = queryF..
ㅁ 들어가며ㅇ QueryDSL의 Q클래스 생성 과정에서 Entity를 참조하지 못하는 문제가 발생하여, 주요 원인과 해결 방법을 정리하였다. ㅁ 에러/Users/peterseo/study/kotlin/spring-jpa-query-dsl/build/generated/source/kapt/main/org/peterica/springjpaquerydsl/domain/QProductsEntity.java:16: error: cannot find symbolpublic class QProductsEntity extends EntityPathBase { ^ symbol: class ProductsEntityㅇ 빌드 시 Q..
ㅁ 들어가며ㅇ Kotlin으로 Spring 프로젝트를 개발할 때, all-open과 no-arg 플러그인은 매우 유용하다. ㅇ 이 두 플러그인의 필요성과 역할을 잘 정리한 Kotlin으로 Spring 개발할 때을 보고 정리하였다. ㅁ all-open 플러그인의 필요성ㅇ Kotlin은 기본적으로 클래스와 메서드가 final로 선언된다. ㅇ 이는 상속을 막기 때문에 Spring의 CGLIB Proxy와 같은 기능을 사용할 때 문제가 발생한다. ㅇ CGLIB Proxy는 대상 클래스를 상속하여 프록시 객체를 생성하기 때문에, 대상 클래스가 open 상태여야 한다.ㅇ all-open 플러그인은 특정 어노테이션이 붙은 클래스에 대해 자동으로 open 키워드를 추가해준다. allOpen { annotatio..
ㅁ 들어가며ㅇ 리플렉션(Reflection)은 자바 프로그래밍 언어에서 실행 중인 프로그램이 자신의 구조를 검사하고 수정할 수 있는 기능이다.ㅇ 이를 통해 클래스, 인터페이스, 필드, 메서드 등의 정보를 런타임에 동적으로 접근하고 조작할 수 있다.ㅇ 리플렉션은 주로 컴파일 시점에 알 수 없는 객체를 다룰 때 유용하게 사용된다. ㅁ 리플렉션의 주요 기능필드 접근하기class Person {var name: String? = null var age: Int? = null constructor() // 기본 생성자 constructor(name: String) { this.name = name } constructor(age: Int) { this.age ..
ㅁ 들어가며ㅇ 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..