분류 전체보기
[JPA] hibernate bytecode enhancement 적용시 발생하는 오류 해결 (Failed to apply plugin 'org.hibernate.orm', gradle, kotlin)
발단OneToOne 관계를 맺은 테이블에서 Lazy Initialization 을 의도하였으나 의도한 바대로 동작하지 않고 FetchType.Eager 처럼 동작하여 이를 해결하기 위해 적용한 bytecode enhancement plugin 이 찾을 수 없다는 이유로 적용되지 않는 이슈를 해결하는 과정입니다. 환경Spring Boot 3.2.5data-jpa-starterhibernate-core 6.4.4.Final OneToOne 사용시 FetchType.Lazy 가 의도대로 동작하지 않는 이유 [JPA] bytecode instrumentation 을 이용한 lazy loading 활성화-10. @OneToOne 의 양방향 연관 관계 다대일, 일대다, 다대다 와는 다르게 @OneToOne 매핑은 ..
[Spring Boot] Spring Security 설정 과정에서 `please use permitAll via HttpSecurity#authorizeHttpRequests instead` 문구 발생(feat. ignoring)
발단spring security 를 적용하여 web 의 static resource 에 대한 접근시 권한과 무관하게끔 처리 하기 위한 설정으로 ignoring 을 사용하였는데 제목과 같은 문구가 발생하여 이를 제거하며 최적화한 과정을 정리합니다. 환경Spring Boot 3.1 Spring Security 6.1 # Spring Boot 3.1 버전 이상의 환경에서의 적용을 설명합니다. 문제 내용@Beanfun webSecurityCustomizer(): WebSecurityCustomizer { return WebSecurityCustomizer { web: WebSecurity -> web.ignoring().requestMatchers("/api/v1/test1") }}위 ..
[Spring] Custom Enum Value 를 Swagger 문서에 노출시키고 싶으면 어떻게 해야할까?
발단swagger 를 통해 서버의 문서를 작성하던 중 Enum 타입으로 정의한 값을 제공하려 할 때 의도한 값이 문서에 노출되지 않고 Enum 으로 정의했던 변수의 이름이 노출되고 있어 이를 수정하기 위해 시도하였습니다. 라이브러리 문서문서를 통해 enum 에 대한 값을 변화하는 기능은 현재 제공하고 있지 않은듯 합니다. OpenAPI 3 Library for spring-bootLibrary for OpenAPI 3 with spring boot projects. Is based on swagger-ui, to display the OpenAPI description.Generates automatically the OpenAPI file.springdoc.org 코드enum class TestEnu..
[WSL] 가동중인 Ubuntu Image 의 계정 비밀번호 초기화 방법
발단서버로 사용중이던 PC 의 비밀번호가 기억나지 않아 기록합니다. 해결방법Windows OS 환경에서 root 로 wsl 에 접근하여 초기화 default image 의 초기화 일 경우wsl -u root (루트 계정으로 로그인)passwd {계정} (계정에는 root 혹은 수정하고자 하는 계정을 입력해주시면 됩니다.) default image 가 아닌 경우wsl -l -v (사용중인 배포판을 확인합니다.)wsl -d {배포판명} -u root ... (배포판명을 입력하고 default image 와 같이 접근하면 됩니다.) 참고 How to reset my WSL Ubuntu password?I forgot my WSL Ubuntu password, needed to run sudo command...
[Spring Boot] Access denied for user 'root'@'localhost'(using password: yes)
발단테스트를 위해 생성한 프로젝트에서 DB 연결이 정상적으로 이루어지지 않았다. Client(HeidSQL, DataGrip)으로는 연결이 되었지만 Spring 에서 연결이 되지 않았기에 환경Spring Boot 3.2.5Mysql 8.0.36 설명다른 블로그를 찾아보니 `Access denied for user ...` 오류에 대한 해결방법은 3가지로 나뉜다. 하지만 본인은 아래 3가지 방법중 어떤 걸로도 해결되지 않았다. 1. Bitnami WAMP 로 인해 Listening 중인 서버가 동시에 떠있는 경우가 있는 듯 하다. - 보통 강의에서 사용되는 오픈소스 솔루션으로 PHP, Mysql 등의 프로그램을 쉽게 설치하는 방법인듯 하다. 2. 비밀번호 오류 - M..
[GitHub] Github-Action 에 환경변수에 multiline string 을 사용하기 위해 어떻게 해야 할까?
발단 최근 Github Action 을 활용하여 호출된 코드의 결과물을 release 주기적으로 업로드하고자 시도하였고 이 과정을 정리합니다. 문서 Workflow commands for GitHub Actions - GitHub Docs Actions can communicate with the runner machine to set environment variables, output values used by other actions, add debug messages to the output logs, and other tasks. Most workflow commands use the echo command in a specific format, while others are in docs.gi..
[ETC] StringEscapeUtils 사용할 때 오류가 발생한다면?(feat. Could not initialize class..)
발단 html escaping 된 정보가 그대로 DB 에 저장되어 있기에 이를 unescaping 처리하여 사용자에게 보여져야 한다는 요구사항을 처리하는 과정에서 발생하게 된 문제를 해결하는 과정을 나열합니다. html escaping 된 정보 해결 방법 접근 SSR 환경에서 작업중임으로 html entity( )등과 같은 텍스트에 대한 직접 변환을 처리 SSR 로는 그대로 값을 내려주고 프론트에서 escaping 하여 값을 처리 SSR 환경을 사용하고 있음으로 1번 방식을 선택 1번 방식은 간단하나 html entity 요소들이 많기에 라이브러리를 사용하기로 하였다. 마침 apache commons-net 을 사용중에 있음으로 StringEscapeUtils 클래스를 사용하려 하였다. 문제발생 문제1...
[JPA] 연관관계를 맺은 객체에 대해 지연 로딩이 동작하지 않는다면(feat. kotlin, hibernate, lazy-loading)
발단 스케줄러 작업을 통해 주기적으로 DB 요청을 하는 상황에서 로그를 살펴보니 원하지 않았던 정보까지 요청하고 있어 어떻게 해결하게 되었는지 공유하고자 합니다. 환경 Spring Boot > 3.0 Kotlin Kotlin 의 final 정책 이해를 돕기 위해 간단히 Kotlin 의 정책에 대해 얘기해보고자 합니다. Effective Java, "Item 17: Design and document for inheritance or else prohibit it" `Effective Java` 2001 연도에 출판한 책으로 Java 의 효율적인 사용과 좋지만 흔히 사용되지 않은 개발패턴에 대해 언급한 저명한 서적입니다. 해당 책에서 `상속을 위해 디자인과 문서화 하지 않을거면 지양해라` 라는 챕터를 다룬..
[Gradle] Spring Boot + Gradle 환경에서 bootBuildImage 의 createdDate(생성 일자)의 표기가 1980년도로 되어있다면?(feat. kotlin, intellij)
발단 intellij 환경에서 gradle 플러그인을 통해 bootBuildImage 로 docker 의 image 를 관리할 때 생성일자가 과거로 설정되어있는 것을 확인하였다. 환경 Spring Boot 3.1.3(kotlin) build.gradle.kts 해결 tasks.withType{ ... createdDate = "now" // 또는 ISO 8601 규격에 맞는 값을 입력 } 참고 stack overflow 를 통한 원인 Spring Boot 2.3.0 buildpack builds image with creation date 40 years ago I've tried to use buildpack in a maven project with Spring Boot 2.3.0 running: m..
[Spring Boot] @ModelAttribute 로 맵핑하려는 대상의 depth 가 2 이상일 때 요청하였는데 오류가 난다면?(feat. kotlin)
발단EndPoint 에서 RequestBody 가 아닌 ModelAttribute 를 통해 핸들링할 때 DTO 가 2-depth 가 되며 생긴 문제를 공유하고자 합니다. 예시 코드@RestController@RequestMapping("")class TestController { @PostMapping("") fun hiPost( @ModelAttribute body: TestDto, ){ ... }}data class TestDto( var name: String = "", var testInnerDto: TestInnerDto)data class TestInnerDto( var age: Int) 오류 발생 1차 시도java.lang.NullPointer..