implementation("com.querydsl:querydsl-jpa:5.0.0:jakarta") kapt("com.querydsl:querydsl-apt:5.0.0:jakarta") javax.* >> jakarta.* 이번에 스프링 부트 버전을 2.x.x 에서 3.x.x으로 업데이트하면서 JPA QueryDSL 관련 문제가 발생했습니다. 주요 빌드 에러 메시지는 다음과 같았습니다. error: cannot inherit from final XXX error: incompatible types: NonExistentClass cannot be converted to Annotation @error.NonExistentClass JPA와 연관된 도메인에서 위와 같은 에러메시지가 출렸되었는데, 이런..
스프링 시큐리티(Spring Security)를 사용할 때 적용되는 패스워드 암호화 부분은 PasswordEncoder를 이용하면 자유롭게 커스터마이징이 가능합니다. 예를 들어 MySQL의 암호화 기능인 Password()도 PasswordEncoder를 구현해서 사용하면 스프링 시큐리티에 적용할 수 있습니다. MySQL의 암호화 기능 Password() 스프링 시큐리티의 PasswordEncoder를 통해 구현하기 위해 먼저 MySQL의 Password()가 정의된 내용을 확인해보겠습니다. /* Generate binary hash from raw text string Used for Pre-4.1 password handling SYNOPSIS hash_password() result OUT stor..
이번 글에서는 스프링 부트에서 제공하는 화이트라벨(Whitelabel) 대신 사용자가 정의한 오류 페이지를 사용하는 방법에 대해 이야기해볼까 합니다. 스프링 부트의 오류 처리 방법은 스프링에서 정의한 화이트라벨(Whitelabel)이 기본값으로 사용됩니다. 토이 프로젝트에서 사용하기는 문제가 없지만 멋진 웹 프로젝트를 만들기 위해서는 사용자 정의 에러 페이지를 쓰는 것이 좋습니다. Spring Boot에서 정의하는 오류 처리 방법 - feat. Whitelabel Spring Boot Features - Error Handling에서는 스프링 부트 오류 처리 방법에 대해 아래와 같이 정의합니다. By default, Spring Boot provides an /error mapping that handl..
이 글에서는 실무에서 사용할 수 있는 React + SpingBoot 프로젝트 구조를 만드는 과정을 알아보겠습니다. 이전에 Vue + SpringBoot 프로젝트를 만드는 방법을 알아보았는데요. 이 방법은 전문가처럼 React나 Vue 같은 Javascript 프레임워크를 사용할 수 있는 구조가 아니기 때문에 토이 프로젝트 혹은 간단한 팀 프로젝트에서 이용할 수 있는 구조이지 실무에서는 사용하기 부적합한 구조입니다. 이번 글에서는 프론트엔드 전문가처럼은 아니지만 그에 준하는 수준으로 React를 사용할 수 있는 SpringBoot 프로젝트를 만들어보겠습니다. 스프링 부트 프로젝트 만들기 먼저 프로젝트의 중심이 되는 스프링 부트 프로젝트를 만들어보겠습니다. Gradle이나 Maven과 같은 빌드 도구를 이..
이번 글에서는 프론트엔드를 Vue.js를 Spring boot를 백엔드를 사용하는 간단한 프로젝트를 만들어보겠습니다. Spring boot만으로도 웹 개발의 생산성을 높일 수 있지만 프론트엔드에서 사용되는 자바스크립트 프레임워크인 Vue.js를 사용한다면 더 빠르고 쉽게 웹 개발을 할 수 있습니다. 물론 Vue.js 외에도 React.js나 Angular.js를 이용해도 좋습니다. 스프링 부트 프로젝트 만들기 먼저 백엔드에 해당하는 스프링 부트 프로젝트를 만들어보겠습니다. 빌드 도구를 이용할 수도 있지만 조금 더 손쉽게 만들어보기 위해 스프링 부트 프로젝트를 Spring Boot initializr를 이용해보겠습니다. 아직은 프로젝트를 구성하시는 게 어려우시다면 위에 설정한 내용을 참고해서 스프링 부트 ..
Failed to configure a DataSource 에러와 원인과 해결 방법 메시지 Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. *************************** APPLICATION FAILED TO START *************************** Description: Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. Reason: Failed to de..
스프링 부트(Spring Boot)로 프로젝트를 만들면서 JSP를 사용해야 하는 경우는 어떤 경우일까요? 바로 레거시 웹 프로젝트를 스프링 기반으로 업그레이드(변경) 해야 하는 경우입니다. 예전에 자바로 만들어진 웹 프로젝트들은 Thymeleaf, Velocity와 같은 템플릿 엔진을 사용하지 않고 JSP(Java Server Page)로 만든 경우도 흔합니다. 이러한 이유로 최신의 기술(스프링 혹은 스프링 부트)을 사용하려고 한다면 스프링 부트에 JSP를 사용할 수 있도록 설정을 해주어야 합니다. JSP를 사용하는 스프링 부트 (Spring Boot) 프로젝트 만들기 현재 스프링 부트에서 추천하는 템플릿 엔진은 Thymeleaf, Freemarker, Mustache 등입니다. 그래서 손쉽게 몇 번의 ..
Port 8080 was already in use 에러와 원인과 해결 방법 메시지 *************************** APPLICATION FAILED TO START *************************** Description: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that's listening on port 8080 or configure this application to listen on another port. Process finished with exit code 1 원인 이 에러가 발생하는 경우는 서버를 구동하려고 할 때 서버가 사..
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.