Java & Spring Boot18 H2 In-memory 사용시 delete log 확인 in-memory db를 사용하여 repository delete를 테스트 하는 법 테스트 폴더에 application.yml을 생성하여 in-memory database를 사용중이다. application.yml 안 내용은 다음과 같다. 아무것도 없어도 되지만 로그를 보기 위해서 show-sql를 추가했다. format이 잡힌 형식으로 뽑아낼수도 있지만 여러개의 데이터를 insert하고 delete 하기 위해서 하지 않았다. 내가 짠 코드는 다음과 같다. 해당 코드를 작성한 이유는 N+1 및 jpa delete에 대해 공부하고 블로그 글을 작성하려고 했다. 문제는 내가 예상한 insert 100개의 로그는 정상적으로 나타나지만 delete 로그가 나타나지 않는것이다. 이걸 위해서 application... 2021. 11. 25. 기본 클래스 org.gradle.wrapper.GradleWrapperMain을(를) 찾거나 로드할 수 없습니다. 오류: 기본 클래스 org.gradle.wrapper.GradleWrapperMain을(를) 찾거나 로드할 수 없습니다. 우선 문제는 gradle-wrapper에 gradle-wrapper.jar가 없어서 발생하는 에러다. 처음에 blog라는 프로젝트를 만들고 git에 올렸다. 문제는 내가 원치 않는 파일들도 같이 올라가서 구글에 springboot gitignore를 검색해서 먼저 올리고 다시 프로젝트를 올렸다. 그런데 그 gitignore에 jar파일도 제외한다고 적용이 돼있어서 필요한 jar하나가 올라가지 않았다. 명령어로 gradle wrapper를 사용하라는데 문제는 gradle이 없어서 또 에러가 난다. 여기서 재밌는건 gradlew wrapper를 사용해도 gradle이 없어서 에러가 난다... 2021. 11. 4. Querydsl OneToMany 조건 검색, ListPath 내가 원했던 것은 다음과 같다. 1:n 매핑관계를 나타내는 Entity이다. 예시라서 디테일한건 없음. @Data @Entity public class User { private Long id; private String name; private List profiles; } @Data @Entity public class Profile { private Long id; private User user; private Type type; // PUBLIC, PRIVATE, private String nickName; } DB 테스트 데이터 // user { id : 1, name : "user1" } // 조회할 데이터 { id : 2, name : "user2" } // profile { id : 1,.. 2021. 10. 20. QueryDSL 서브쿼리 Sort 적용 for (Sort.Order order : pageable.getSort()) { PathBuilder path = new PathBuilder(Object.class, order.getProperty()); query.where(builder).orderBy(new OrderSpecifier(com.querydsl.core.types.Order.valueOf(order.getDirection().name()), path)); } 1. 위와 같이 작성할 경우, 프론트에서 as 로 표현하는 값을 내려주면 entity와 무관하게 정렬 가능. PathBuilder entityPath = new PathBuilder(Entity.class, "entity"); 2. 위와 같은 형태로 사용할 경우 pageable.. 2021. 10. 12. Unknown lifecycle phase ".test.skip=true". 해당 에러는 다음과 같은 메이븐 명령어를 사용할때 나타났다. mvn clean install -Dmaven.test.skip=true 였는데 항상 사용하면 명령어였는데 어느순간부터 갑자기 에러가 났다. 혹시라도 위와 같은 에러가 난다면 shell을 변경해보자. 내 경우는 intellij 터미널에서 주로 메이븐 명령어를 실행했는데, 인텔리제이 터미널을 항상 powershell로 사용했었다. 인텔리제이 터미널 변경방법 = https://joanyi.tistory.com/43 그러던 중 어느순간부터 해당 에러가 발생하기 시작했는데 옆사람은 되고 나만 되지 않는 이 이상한 에러를 뭔지 몰라서 방치했었다. 최근에 로컬 빌드가 꼭 필요한 시점에 와서 git bash에서 해당 명령어를 실행했더니 아무런 문제없이 동작.. 2021. 9. 30. OS, Process, Thread 1. OS, 프로세스 (Process) 내가 다운받은 애플리케이션(exe 등)은 디스크에 저장된 상태다. 핸드폰 앱처럼 실행하기전에는 동작하지 않음. 애플리케이션을 실행하면 OS로부터 메모리를 할당받아서 프로세스가 된다. 즉 프로세스는 실행 중인 애플리케이션 (프로그램) 이다. 중요한 것은 CPU의 코어당 단 하나의 작업만 실행할 수 있다. 현재 내 컴퓨터의 CPU는 8-Core이다. 이러면 멀티 프로세싱이 되는것이다. 멀티 프로세싱은 cpu 코어가 많아서 한번의 여러개의 프로세스를 처리하는 것이다. 그러나 작업 관리자에서 보여지는 프로세스는 대충봐도 8개가 넘는다. 이러한 동작이 가능한 이유는 바로 대부분의 OS가 멀티 태스킹을 지원하기 때문이다. 멀티 태스킹(Multi-tasking)이란 ? 태스크(.. 2020. 10. 8. 이전 1 2 3 다음