Yun Blog

기술 블로그

Spring Boot3 Kotlin JPA & Querydsl 적용하기

Spring Boot 2에서 3으로 업데이트되면서 Spring Data JPA 관련 설정이 변경된 부분들이 있습니다. 프로젝트에서 손쉽게 Spring Boot 3으로 업데이트하면서 Spring Data JPA와 Querydsl 설정을 손쉽게 하는 방법에 대해서 살펴보겠습니다. 사전 설정 1$ ./gradlew wrapper --gradle-versio......

IntelliJ cannot resolve symbol 에러 해결

자바에서 Lombok과 같은 라이브러리로 인한 cannot resolve symbol 오류는 대체로 SDK 버전 문제로 발생합니다. 이를 해결하기 위해서는 프로젝트 내의 SDK 버전을 일관되게 설정해야 합니다. 이 과정에서 여러 설정을 조정해야 하는데, 구체적인 SDK 설정 방법에 대해 안내해 드리겠습니다. Project Settings 설정 Proj......

MongoDB Update 성능 측정 및 분석

saveAll, updateFirst, bulkOps Update Performance 측정

MongoDB는 현대 웹 애플리케이션에서 널리 사용되는 NoSQL 데이터베이스입니다. 특히, Spring Data MongoDB는 Java 개발자에게 친숙하고 효율적인 방법으로 MongoDB와의 상호작용을 가능하게 합니다. 이번 포스팅에서는 Spring Data MongoDB를 사용하여 데이터를 업데이트하는 여러 방법의 성능을 비교하고 분석합니다. 특......

MongoDB 다양한 테스트 케이스를 커버할 수 있는 테스트 데이터 셋업 방법

테스트 코드의 가치가 널리 인정받으며, 이제 그 필요성을 언급하는 것은 의미가 없어졌습니다. 테스트 코드의 가장 큰 매력은 바로 구현 코드에 대한 실시간 피드백을 제공하고, 이를 바탕으로 구현 코드를 지속적으로 개선해 나갈 수 있다는 점입니다. 이 개념은 "실무에서 적용하는 테스트 코드 작성 방법과 노하우 Part 2: 테스트 코드로부터 피드......

Spring Data MongoDB Repository 확장

Repository 확장 패턴

Spring Data JPA에서 흔히 사용하는 Repository 확장 패턴을 Spring Data MongoDB에도 적용할 수 있습니다. 이 패턴은 'CustomRepository’와 'CustomRepositoryImpl’의 조합으로 구성되며, Spring-JPA Best Practices step-15에서 이전에 포스팅한적 있습니다. 이 방법을 ......

JPA 페이징 Performance 향상 방법

일반적으로 어드민 페이지와 같이 데이터를 테이블 뷰 형식으로 제공할 때, 페이징 기법을 사용하여 현재 페이지의 내용과 페이지 정보를 표시합니다. JPA를 활용하면 이러한 반복적인 코드 작성을 보다 쉽게 처리할 수 있습니다. 데이터 모수가 적고 단순한 구조로 데이터를 보여주는 경우라면 JPA에서 제공해 주는 방식으로 처리하는 것이 효율적일 수 있으나 데......

Kotlin 기반 경량 ORM Exposed 추가 정리 part 3

Exposed 포스팅 Kotlin 기반 경량 ORM Exposed Kotlin 기반 경량 ORM Exposed 추가 정리 part 2 Kotlin 기반 경량 ORM Exposed 추가 정리 part 3 VarCharColumnType 기반 Converter 데이터 저장소에 값을 저장하는 경우, 저장된 데이터를 가져오는 경우 적절하게 컨버팅이 필요한......

좋은 코드 설계를 위한 답없는 고민들

좋은 코드 설계를 위한 고민들을 평소에 많이 해왔고, 그에 관련한 학습들도 진행했었다. OOP, DDD, Clean Code, Clean Architecture 등등을 통해서 나름의 주관이 생겼으며 경력 초반에는 이런 것들을 지키기 위해 많이 노력해왔다. 현재는 이런 개념들을 선택적으로 적용하며 또 어떠한 의미에서는 이런 것들을 지키는 것에 대해서 가......

IntelliJ 자주 사용하는 기능 및 추천 플러그인 정리

Tab Tab Limit settings -> editor tabs -> Tab Limit으로 Tab limit 설정 가능 여러 Tab을 켜도 Limit 한 설정값으로 유지, Limit 1을 추천 자주 사용하는 Tab 이동 Name Hot Key Desc Split Right fn + ctr + ➡️ 현재 화면 오른 쪽......

Kotlin groupBy, groupingBy, chunked, flatMap, aggregate 정리

groupBy 123456789101112131415161718192021222324252627282930313233data class Member( val name: String, val status: MemberStatus)enum class MemberStatus(description: String) { NORMAL("정......