본문 바로가기

Java & Spring Boot17

기본 클래스 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.
Java -jar 커맨드 명령어 주로 java -jar -p를하여 로그를 찍어낸다던가 java -jar로 파일을 만들때 name을 받아버리면 좋다. 또한 help 옵션을 이용하여 내가 받고 있는 커맨드 명렁어의 설명도 가능함. import java.util.List; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.HelpFormatter; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; import org.apache.commons.cli.PosixParser; p.. 2020. 9. 11.