tech Execution failed for task ':compileJava' 2021. 10. 28. 개발 환경 intelliJ(IDE) openJDK11 gradle 문제 발생 만들어진 소스를 Gradle task를 이용해 빌드를 하면 정상적 하지만 debug를 걸 때 아래와 같은 오류가 출력되며 compileJava가 정상적으로 실행되지 않았다 // console Execution failed for task ':compileJava'. > invalid source release: 11 오류 내용을 보면 프로젝트에 jdk가 제대로 설정된거 같지 않은 느낌이라 해당 키워드를 이용해서 구글링해봤습니다 해결 시도 Project SDK 설정 확인 Language level 확인 및 의존성 확인 컴파일되는 byte code level 확인 원인 해결 원인은 Gradle JVM 설정이 문제였다...... 이.. 파라미터 바인딩 어노테이션 2021. 10. 27. 기본 개념이 살짝 헷갈려서 적어놓는 위키.. @RequestParam 1개의 Http 파라미터를 바인딩 받기 위해서 사용됨 필수 default가 true이기 때문에 필요없다면 false로 변경해줘야함 @ModelAttribute Request Parameter를 클래스로 바인딩 받고 싶을 때 사용 일일히 @RequestParam으로 나열하고 싶지 않을때 사용 HTTP Body 내용과 HTTP 파라미터들을 Setter를 통해 1대1로 객체에 바인딩 @RequestBody Json으로 받은 HTTP Body 데이터를 MessageConverter를 통해 변환시킴 Reflection을 사용하여 주입 ( Setter가 없어도 됨 ) @PathVariable URL의 값을 정의한 이름과 같은 이름의 인자랑 매핑시.. Spring Data JPA @Modifying 알아보기 2021. 10. 4. 벌크 연산 관련 공부를 하다가 @Modifying에 대해 자세히 알아볼 필요가 생겨 공부한 내용입니다 https://docs.spring.io/spring-data/data-jpa/docs/current/api/org/springframework/data/jpa/repository/Modifying.html Modifying (Spring Data JPA 2.5.5 API) Indicates a query method should be considered as modifying query as that changes the way it needs to be executed. This annotation is only considered if used on query methods defined throu.. IntelliJ update indexes 무한 로딩 이슈 해결 2021. 10. 2. IntelliJ update indexes 무한 로딩 이슈 인텔리제이는 스스로 프로젝트의 소스 코드나 디렉토리 변경을 감지하여 네이게이팅의 용이하게 설정하는데 이 설정이 진행되는 프로세스가 update indexes이다 뭐가 잘못됐는지.. 인텔리제이에서 update indexes process가 무한로딩 걸리는 이슈가 있었다 그냥 재시작해도 안되고, 해당 프로세스를 끄는 것도 뭔가 찜찜해서 해결방법을 찾아보았다 해결 방법 인텔리제이에는 캐시를 날릴 수 있는 기능이 있다 ( 상단바 File -> Invalidate Caches ) Downloaded된 indexes를 날려주고 재시작 인텔리제이를 다시 시작하면 정상적으로 update indexes를 수행하는 것을 확인할 수 있다 Spring Data JPA @Transactional 알아보기 2021. 10. 2. 기본적으로 Spring Data JPA에서 관리되는 EntityManager의 생명주기 개념이 전제로 깔려있습니다 참고 포스트: https://joojimin.tistory.com/67 EntityManager 라이프사이클 JPA 공부를 하다보니 EntityManager 라이프사이클에 대한 기초지식이 부족해 공부한 내용입니다 SpringBoot + Spring Data JPA 환경에서 Transaction, EntityManager 간의 관계를 주 관심사로 진행했습니다 1. 순.. joojimin.tistory.com Spring Transaction 동작 참고 포스트: https://joojimin.tistory.com/25 Spring Transactional 어디까지 알고있니? [Spring] @T.. EntityManager 라이프사이클 2021. 10. 1. JPA 공부를 하다보니 EntityManager 라이프사이클에 대한 기초지식이 부족해 공부한 내용입니다 SpringBoot + Spring Data JPA 환경에서 Transaction, EntityManager 간의 관계를 주 관심사로 진행했습니다 1. 순수 JPA 로직 먼저 순수 JPA 로직으로 엔티티를 저장하는 순서를 살펴보겠습니다 예제 코드 ( persistence.xml은 생략 ) // JPA EntityManagerFactory emf = Persistence.createEntityManagerFactory("master"); EntityManager entityManager = emf.createEntityManager(); EntityTransaction transaction = entit.. Embedded MySQL를 이용해 테스트 환경 구축해보기 2021. 9. 29. 독립적인 테스트 환경을 구축하는 방법으로 Embedded 환경을 사용한다 Embedded 환경을 구축하는 방법으로는 1. H2 데이터베이스 사용 2. Embedded MySQL ( wix mysql ) 3. TestContainer 가 있는데 이번 포스트에서는 Embedded MySQL( wix mysql )을 살펴보려고 합니다 Embedded MySQL 이름 그래도 어플리케이션 내장형 MySQL입니다 오픈 소스로 지원되는 wix-embedded-mysql을 사용하여 구성할 수 있습니다 GitHub 공식 사이트 https://github.com/wix/wix-embedded-mysql GitHub - wix/wix-embedded-mysql: embedded mysql based on https://gi.. JDBC Statement vs PreparedStatement 2021. 9. 24. Statement JDBC API 인터페이스중 한 가지로 SQL 쿼리를 실행하는데 사용할 수 있다 문자열 기반으로 SQL 쿼리를 실행하는 데 사용됩니다 ( 문자열 그대로를 SQL 쿼리로 받아드림 ) 하지만 문자열이기 때문에 SQL 문자열을 연결할 때, 코드 가독성이 떨어진다 SQL 인젝션에 취약하다 매개변수를 전달하거나 바인딩 할 수 없다 매번 쿼리를 수행할 때마다 쿼리 문장 분석 -> 컴파일 -> 실행의 단계를 모두 거치게 된다 ( 쿼리 캐싱을 사용하지 않는다 ) 주로 고정적인 DDL(create, alter... ) 구문에서 사용된다 PreparedStatement Statement와 마찬가지로 JDBC API 인터페이스중 한 가지로 SQL 쿼리를 싱행하는데 사용할 수 있습니다 Statement를 확.. 이전 1 2 3 4 다음