묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! Querydsl
[질문 X] 스프링 부트 3.2 QueryDSL gradle 설정
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]plugins { ...... // QueryDSL 관련 명령어 id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" } dependencies { ........ //QueryDSL 종속성. implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" } //QueryDSL 설정 //def generated = 'src/main/generated' def generated = layout.buildDirectory.dir("generated/querydsl").get().asFile querydsl { jpa = true querydslSourcesDir = generated } sourceSets { main.java.srcDir generated } compileQuerydsl{ options.annotationProcessorPath = configurations.querydsl } configurations { compileOnly { extendsFrom annotationProcessor } querydsl.extendsFrom compileClasspath } //def generated = 'src/main/generated'def generated = layout.buildDirectory.dir("generated/querydsl").get().asFile 이 둘의 차이는 src 폴더 안에 구현체인 Q 파일들을 넣느냐, 아니면 빌드 폴더에 넣느냐인데, 만약 이 gradle을 쓰면서 영상처럼 compileQuerydsl 하고 시작하면java: Attempt to recreate a file for type study.querydsl.entity.QTestEntity 이런 오류가 날 수 있음.그러니까, Test를 시작할 때 빌드 하면서 시작하는데, 아마도 build에 compileJava가, compileJava에 compileQuerydsl이 포함되어 있음. 그래서 이미 compileQuerydsl로 QueryDSL 파일들을 빌드 한 상태에서 시작을 하려니,저 파일을 다시 생성하려고 시도한다는 오류가 뜨는 걸로 추측됨. 근데 또 신기한게 뭔가 기록? 캐시가 남는지, QueryDSL 파일을 import 안한 상태로 뻘건줄 쭉쭉 있는 상태로 테스트 돌려서 자동으로 빌드가 따라오게끔 하면 저런 오류가 안뜸.근데 이런 아무리 알고 있는 에러이지만 저런 환경에서 코드를 짠다는 건 좀..저는 그래서 그냥 일단def generated = 'src/main/generated'여기에 Q파일을 일단 뒀다가, gitignore에 저거 등록 하고,build 할 때만 def generated = layout.buildDirectory.dir("generated/querydsl").get().asFile이걸로 바꿔놓는 걸 추천.. 저는 그렇게 했고 더 좋은 방법도 있을거임..
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
gradlew build를 하면 plain 파일만 뜹니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. gradlew build 로 libs 까지 생성하는건 따라왔는데그이후에 hello-spring-0.0.1-SNAPSHOT-plain.jar 하나만 나옵니다.검색해보면 보통 파일 plain이 안붙은 거랑 붙은거랑해서 두개가 나온다고하는데 왜 이거만 나오는지 모르겠습니다
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
쿼리에 fetch 쓰는 부분
쿼리에 fetch 쓰는 부분과 Entity 자체에서 FetchType.LAZY 써주는것과 같은 방법으로 볼 수 있을까요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
item_id 네이밍 관련 질문드려요
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]Item 엔티티 설계할때 id 를 item_id로 하는것이 구체적으로 명명하는게 좋아서 그렇다고 다른 질문에서 답변을 남겨주셨는데요, 그렇다면 order 엔티티도 order_id로 하는게 좋지 않나요? 그렇게 하지 않으신 이유가 order에 이미 memberId 필드가 있어서 그런걸까요? 굳이 order_id라고 명명하지 않아도 memberId와 구분되서 그런건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
섹션 6 JPA 통합테스트 에러
강의 자료와 동일하게 코드 구성 이후 통합 테스트를 실행시 아래와 같은 에러가 발생합니다.h2 데이터베이스는 구동중인 상태입니다.java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: Member near line 1, column 15 [select m from Member m where m.name = :name]
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
런타임 에러 질문 있습니다.
배열 11. 임시반장 정하기 에서 문제를 풀고 있는데해당 코드에서 런타임 에러가 발생하는데 이유를 알 수 있을까요? import java.util.ArrayList; import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Main t = new Main(); Scanner in = new Scanner(System.in); int n = in.nextInt(); int[][] arr = new int[n][n]; // int[] arr2 = new int[n]; for (int i = 0 ; i < n; i++){ for (int j =0; j < n; j++) arr[i][j] = in.nextInt(); } // for (int i = 0 ; i < n; i++){ // arr2[i] = in.nextInt(); // } int test = t.solution11(n,arr); System.out.print(test); } // 11번 임시반장 private int solution11(int n, int[][] arr){ int answer = 0; int MAX = 0; for (int i =0; i < 5; i ++){ int cnt = 0; for (int j=0; j < n;j++){ int temp = arr[j][i]; for (int k =0; k <n; k++){ if (k == j) continue; else if (temp == arr[k][i]){ cnt++; } } if (cnt > MAX){ MAX = cnt; answer = j; } } } return answer; } }
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
영속성 컨텍스트 동시성...? 관련 질문입니다
em.flush를 명시적으로 적어주거나, 트랜잭션이 끝나서 커밋이 될 때 DB에 쿼리를 날리는 JPA에 관해서 궁금한게 있습니다. DB 제약은 복합키로 되어있고 insert 하는 상황에서 궁금증이 있는데요 동일한 복합키를 가진건 DB쿼리를 그대로 날려도 Exception을 뱉어서 실제 DB에는 들어가지 않는다는 것은 알고 있습니다. 다만 궁금한게 순수히 오로지 JPA로만 해결이 가능한 문제인지 궁금증이 있습니다. id와 name은 사용자로 부터 요청 받은 부분이고Member requetMember = new Member(id,name);Optional<Member> m = repository.findByIdAndName(id,name);if(m.isPresent()){repository.insert(requestMember);} 제가 궁금한 상황은 멀티서버 환경에서 실행 되는 쓰레드가 2개 있다고 했을때 동시에 2번의 요청을 보내고 2개 모두 예외는 발생하지 않아야 하는 상황입니다. A,B 쓰레드 모두 m.isPresent() 코드를 통과 하였고그 와중에 A 쓰레드가 실행될때, insert까지 마치고 트랜잭션 커밋까지 이루어진 상황에서 B쓰레드가 repository.insert(requestMember);이 부분을 실행 할 때 에러가 나는걸 방지 할 수 있는지 궁금합니다. JPA로 해보려다 딱히 방안이 생각나지 않아서insert 할 때 sql로 insert into memberselect id , namewhere not exist(select * from member where id='id', name='name') 이런식으로 insert 할 때 select를 1번의 쿼리로 하면서 하고있는데요, 이런 경우는 어떻게 해야할까요?
-
미해결실습으로 배우는 선착순 이벤트 시스템
코드 제공
혹시 전체 코드를 받아볼 수 있는 리포지토리가 있을까요?
-
미해결제대로 파는 자바 (Java) - by 얄코(Yalco)
for 강의와 switch 강의 순서가 바뀌어 있습니다.
🛑 이곳에 질문하지 마세요!!!질문은 아래의 링크의 안내에 따라 강의 노션 페이지에 올려주세요!🔗 질문하는 방법 보러가기
-
미해결Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부
.contextWrite의 실행시점
안녕하세요예제 코드에서 질문이 있습니다.@SneakyThrows public static void main(String[] args) { String key = "message"; Mono<String> mono = Mono.deferContextual(ctx -> Mono.just("Hello" + " " + ctx.get(key)) .doOnNext(msg -> log.info("context value : {}", msg))) .subscribeOn(Schedulers.boundedElastic()) .publishOn(Schedulers.parallel()) .transformDeferredContextual((mono2, ctx) -> mono2.map(data -> data + " " + ctx.get(key))) .contextWrite(context -> context.put(key, "Reactor")).doOnNext(msg -> log.info("contextWrite value : {}", msg)); mono.subscribe(data -> log.info("data : {}", data)); Thread.sleep(100L); } 설명하시는 내용을 들어보면 코드의 순서와 상관없이.contextWrite()이 먼저 발생하여 context에 {message, Reactor} 값을 저장하고Mono.deferContextual가 실행되어 ctx에서 contextWrite에서 했던 값을 가져오고 있습니다. 이부분이 잘 이해가 안가는데요그전 강의까지는 `.subscribeOn`, `.publishOn` 이런 메서드의 체이닝은 탑다운 방식으로 진행되었었는데Context부터는 순서가 달라 혹시 실행하는 우선순위가 있는지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
view 환경설정 8분
model을 입력할때 자꾸 빨간색으로 오류가 뜨네요..어떻게 해야하나요?
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
상속관계 매핑 질문이 있습니다.
강의 제목 : 상속관계 매핑시작 시간: 31:36 외래키 참조 무결성 제약 조건을 활용 가능하다.ITEM.ITEM_ID(PK)와 ALBUM.ITEM_ID(PK,FK)를 쓸수있고,장점이 주문 테이블에서 외래키 참조로 아이템을 봐야한다면ITEM_ID만 보면 된다. 다 봐야할 경우 모델링이 이상해진다. 이렇게 말씀을 해주셨는데 외래키 참조 무결성 제약조건을 활용 가능하다고 말씀해주시는게데이터베이스 CASCADE 옵션으로 DELETE같은걸 활용할 수 있다는 의미인가요 ? ITEM_ID만 보면 된다는게, 테이블로 보면 ITEM_ID만 알면 다른 테이블을 확인할 필요 없이ITEM_ID로 찝어서 조회가 가능하기 때문에 장점이라고 말씀해주신 걸까요 ? 시작 시간부터 약 30초간 말씀해주시는게 이해가 안되서 질문을 남겨봅니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
빌드하고 실행하기가 안됩니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]PS D:\hello-spring\build\libs> java -jar hello-spring-0.0.1-SNAPSHOT.jarError: Unable to access jarfile hello-spring-0.0.1-SNAPSHOT.jar 계속 찾아보다가 안 돼서 도움 요청해요.. plain만 있어서 혹시나 plain으로 해봤는데도 안 되고 계속 없다고 뜨거든요 clean 했다가 해봤는데도 계속 이 상태입니다
-
미해결실전! 스프링 데이터 JPA
더미 데이터 추가 후 pk 겹침
실제 구현을 하는 도중 더미 데이터가 있으면 좋겠다 싶어서 data.sql을 만들어서 다음과 같이 sql을 추가했습니다. 5개의 레코드를 추가했습니다.insert into BASKET_FOOD_ENTITY(bakset_food_id, bakset_id, food_id, food_quantity)values ( 1,1,1,3 ),(2,1,2,2),(3,1,3,5),( 4,2,1,2 ),(5,2,2,4); 그 후, 테스트에서 new로 basketFoodEntity를 만들어 add메소드를 통해 DB에 객체를 persist하도록 만들었습니다. BasketFoodEntity basketFood = new BasketFoodEntity(foodEntity,basketRepository.findBasketId(2L),5);basketRepository.addFood(basketFood,userId); addFood 메소드는 다음과 같습니다.public void addFood(BasketFoodEntity basketFood , Long userId){ Long inBasketId = isAlreadyInBasket(basketFood.getFood().getId(), userId); if(inBasketId > 0) updateFoodQuantityToBasket(inBasketId,getFoodQuantity(inBasketId)); else em.persist(basketFood); }추가된 BasketFoodEntity의 Id는 GeneratedValue로 인해 6이 되어야 하는 것으로 알고 있는데, 왜 1이 될까요? 계속 1로 잡혀서 pk가 겹칩니다. GeneratedValue를 빼고 직접 ID를 6으로 설정하면 테스트는 통과됩니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
최대 매출 코드 풀이랑 동일한 시간복잡도가 나오나요?
package slidingwindow; import java.util.Scanner; public class MaximumSales { static int solution(int n, int k, int[] arr) { int p1 = 1; int sum = 0; int max = 0; for(int i = 0; i < k; i++) { sum += arr[i]; } // 최초 값을 max에 대입 max = sum; // 최초 p[0] + p[1] + p[2] .... 값 제외 // p[1] + p[2] ... 부터 while(p1 < n-k+1) { sum = sum - arr[p1-1] + arr[p1+k-1] ; p1++; max = max > sum ? max : sum; } return max; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = sc.nextInt(); int[] arr = new int[n]; for(int i = 0; i < n; i++) { arr[i] = sc.nextInt(); } System.out.println(MaximumSales.solution(n, k, arr)); } }
-
미해결스프링 시큐리티
AjaxLoginProcessingFilter을 Bean등록시 에러
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ajaxLoginProcessingFilter' defined in class path resource [io/security/corespringsecurity/security/config/SecurityConfig.class]: authenticationManager must be specified AuthenticationManager를 빈으로 등록해야 할거 같은데강의랑 버전차이가 나서 쉽지가 않네요 OOQanT/SpringSecurity (github.com)
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
getter 질문 있어요!
BlackBOX 클래스 내에해상도 getter 설정시String getResolution(){ if (resolution == null || resolution.isEmpty())// isEmpty-> 값이 비어있는것 { return "판매자에게 문의하세요"; } return resolution; resolution == null 이부분이 인스턴스가 null일때 "판매자에게 문의하세요" 라는 반환값이 출력되는 거 아닌가요? 출력시에 해상도null 이렇게 떠서 질문드립니다.
-
해결됨제대로 파는 자바 (Java) - by 얄코(Yalco)
혹시 강의 내용을 블로그에 기재해도 될까요?
강사님 제가 강의를 듣고 강의 내용을 정리해서 블로그에 기재한후 필요할때마다 찾아보고 싶은데혹시 기재가 가능할까요? 불가능하시면 비공개로 올려도 될까요!
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
1번문제 틀린 이유를 모르겠습니다.
import java.util.Scanner; // Press Shift twice to open the Search Everywhere dialog and type `show whitespaces`, // then press Enter. You can now see whitespace characters in your code. public class Main { public int solution(String data, char what) { int count = 0; data = data.toLowerCase(); for (char a : data.toCharArray()) { if (a == what) { count++; } } return count; } public static void main(String[] args) { Main T = new Main(); Scanner scanner = new Scanner(System.in); String data = scanner.nextLine(); char what = scanner.nextLine().charAt(0); System.out.println(T.solution(data, what)); } }1번 문제인데 이대로 제출하니까 틀렸다고 합니다. 원인을 모르겠어요 ㅠ
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
8-1 합이 같은 부분집합
정확하게 출력이 되는것 같은데 오답이라고 나옵니다 선생님.. 제가 잘못 짠 부분이 있을까요??import java.util.Scanner; class Main { static int n,total; static int[] array; static boolean flag; public static void main(String[] args) { Main T = new Main(); Scanner sc = new Scanner(System.in); n = sc.nextInt(); total =0; array = new int[n]; for (int i = 0; i < n; i++) { array[i] = sc.nextInt(); total += array[i]; } flag = false; T.DFS(0, 0); if (flag) { System.out.println("YES"); } else { System.out.println("NO"); } } void DFS(int L, int sum) { if (L == n) { return; } if (sum == total / 2) { flag = true; return; } if (sum > total / 2) { return; } DFS(L + 1, sum + array[L]); DFS(L + 1, sum); } }