묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberRepositoryTest junit5로 고친후 오류발생 + junit4를 사용해야만 할까요?
junt4로 gradle에서 설정하려고 하면 오류가 발생해서 juit5로 하는 중입니다. MemberRepositoryTest를junit5버전으로 고쳐서 아래의 코드로 실행했는데 오류가 나고 있습니다import jpabook.jpashop.Member; import jpabook.jpashop.MemberRepository; //import jpabook.jpashop.domain.Member; //import jpabook.jpashop.repository.MemberRepository; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.transaction.annotation.Transactional; @ExtendWith(SpringExtension.class) // JUnit 5 방식 @SpringBootTest public class MemberRepositoryTest { @Autowired MemberRepository memberRepository; @Test @Transactional @Rollback(false) public void testMember() { Member member = new Member(); member.setUsername("memberA"); Long savedId = memberRepository.save(member); Member findMember = memberRepository.find(savedId); Assertions.assertThat(findMember.getId()).isEqualTo(member.getId()); Assertions.assertThat(findMember.getUsername()).isEqualTo(member.getUsername()); Assertions.assertThat(findMember).isEqualTo(member); // JPA 엔티티 동일성 보장 } }밑에는 오류입니다.Unable to find a @SpringBootConfiguration by searching packages upwards from the test. You can use @ContextConfiguration, @SpringBootTest(classes=...) or other Spring Test supported mechanisms to explicitly declare the configuration classes to load. Classes annotated with @TestConfiguration are not considered.java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration by searching packages upwards from the test. You can use @ContextConfiguration, @SpringBootTest(classes=...) or other Spring Test supported mechanisms to explicitly declare the configuration classes to load. Classes annotated with @TestConfiguration are not considered.at org.springframework.util.Assert.state(Assert.java:79)1. @SpringBootTest(classes=...)로 명시적으로 설정 클래스 지정2. @SpringBootApplication이 있는 클래스의 위치 확인3. @ContextConfiguration을 사용해서 명시적으로 설정 클래스 지정이세가지를 시도해도 안되고 있습니다. 아니면 juni4룰 사용해야만 할까요?build.gradle에 JUnit4 추가 testImplementation("org.junit.vintage:junit-vintage-engine") { exclude group: "org.hamcrest", module: "hamcrest-core" }를 하면 Build file 'C:\Users\Peter\Desktop\study\jpashop\build.gradle' line: 45A problem occurred evaluating root project 'jpashop'.> Could not find method testImplementation() for arguments [org.junit.vintage:junit-vintage-engine, build_55eer8btj8rd1l6xp0yqapa0y$_run_closure6@6e20627f] on root project 'jpashop' of type org.gradle.api.Project.라고 나옵니다.
-
미해결백엔드 개발을 위한 필수 강의 - 스프링 부트3
SbbApplicationTests 런오류 tetJpa부분?
Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.2025-02-13T00:15:43.156+09:00 ERROR 7780 --- [ main] o.s.boot.SpringApplication : Application run failedError creating bean with name 'entityManagerFactory'이런 오류가 뜹니다 쿼리가 안 만들어져요 이오류 때문에 ㅜ
-
미해결백엔드 개발을 위한 필수 강의 - 스프링 부트3
SbbApplicationTests에서 JUnit Test런을 하면 x표시하며 오류가나요!!!
package com.mysite.sbb; import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest; @SpringBootTestclass SbbApplicationTests { @Autowiredprivate QuestionRepository questionRepository; @Testvoid testJpa() {Question q = this.questionRepository.findBySubjectAndContent("sbb가 무엇인가요?", "sbb에 대해서 알고 싶습니다.");assertEquals(1, q.getId());}}
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
양방향 매핑에서 보여주는 테이블 연관관계의 관계선표기가 제대로 되어있는건가요 ?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? [질문 내용]PPT 양방향 매핑에서 테이블연관관계를 나타낼때TEAM의 PK가 MEMBER의 FK 로 존재한다면실선이 아닌 점선으로 표현되어야 하는 것 아닌가요 ?MEMBER의 경우 TEAM_ID가 PK가 아니니까 null을 허용할 수 있으니 팀이 없는 경우가 존재할 테니까 멤버가 팀을 가지고 있는 것은 선택적인 관계로 점선으로 표현해야하는 것이 아닌가 싶습니다
-
미해결백엔드 개발을 위한 필수 강의 - 스프링 부트3
쿼리문이 console에서 형성이 안되고 아래와 같은 코드오류걸려요
package com.mysite.sbb; import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest; @SpringBootTestclass SbbApplicationTests { @Autowiredprivate QuestionRepository questionRepository; @Testvoid testJpa() {Question q = this.questionRepository.findBySubjectAndContent("sbb가 무엇인가요?", "sbb에 대해서 알고 싶습니다.");assertEquals(1, q.getId());}}
-
미해결백엔드 개발을 위한 필수 강의 - 스프링 부트3
SbbApplicaitonTest JUnit 테스트 런을 하면 아래와 같은 오류가 Console에 뜹니다
19:49:22.386 [main] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [com.mysite.sbb.SbbApplicationTests]: SbbApplicationTests does not declare any static, non-private, non-final, nested classes annotated with @Configuration. console에 위와 같은 문구가 나오고 아래로 실행 문구가 뜨지 않습니다.
-
미해결백엔드 개발을 위한 필수 강의 - 스프링 부트3
[리포지터리] SbbApplicationTests에서부터 오류
package com.mysite.sbb;import java.time.LocalDateTime;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;@SpringBootTestclass SbbApplicationTests {@Autowiredprivate QuestionRepository questionRepository;@Testvoid testJpa() {Question q1 = new Question();q1.setSubject("sbb가 무엇인가요?");q1.setContent("sbb에 대해서 알고 싶습니다.");q1.setCreateDate(LocalDateTime.now());this.questionRepository.save(q1); // 첫번째 질문 저장Question q2 = new Question();q2.setSubject("스프링부트 모델 질문입니다.");q2.setContent("id는 자동으로 생성되나요?");q2.setCreateDate(LocalDateTime.now());this.questionRepository.save(q2); // 두번째 질문 저장} }런타임을 시작하면 위에 첨부된 파일에 빨간색 x표시로 오류가 뜹니다. Bootdashboard에 중지버튼이 비활성화되어있어요
-
해결됨자바 코딩테스트 - it 대기업 유제
심사위원 문제 시간복잡도 질문
안녕하세요. sorting 파트의 문제 4번 심사위원 문제의 시간복잡도 질문입니다.정답 코드에서 score를 순회하며 getAve 함수를 호출하면서 이중 for문이 실행됩니다.score의 최대 길이가 30만이고, k가 최대 10만이므로 시간 복잡도는 O(nk)입니다.최악의 경우 30만 × 10만 = 300억 번 연산이 발생하는데, 이는 1~2초의 제한 시간 내에 절대 수행될 수 없으므로 시간 초과가 발생하는 코드가 맞나요?또한 제 풀이도 평가 부탁드립니다. 누적합 배열을 사용해서 풀어봤습니다. 이러면 시간복잡도가 O(nlogn)이 나와서, 최악의 경우라도 O(90만)이라고 계산했는데, 맞을까요?import java.util.*; class Solution { public int solution(int[] score, int k){ int answer = 0, n = score.length; Arrays.sort(score); //pre: 누적합 배열 int[] pre = new int[n]; pre[0] = score[0]; //누적합 구하기 for(int i = 1; i < n; i++){ pre[i] = pre[i-1] + score[i]; } //score 순회하면서, 조건 만족하면 누적합 배열로 평균 구하기 for(int i = 0; i <= n - k; i++){ if(score[i + k - 1] - score[i] <= 10){ int tmp; if(i == 0){ tmp = pre[i + k - 1]; }else{ tmp = pre[i + k - 1] - pre[i - 1]; } tmp /= k; //평균 answer = tmp; break; } } return answer; } public static void main(String[] args){ Solution T = new Solution(); System.out.println(T.solution(new int[]{99, 97, 80, 91, 85, 95, 92}, 3)); System.out.println(T.solution(new int[]{92, 90, 77, 91, 70, 83, 89, 76, 95, 92}, 4)); System.out.println(T.solution(new int[]{77, 88, 78, 80, 78, 99, 98, 92, 93, 89}, 5)); System.out.println(T.solution(new int[]{88, 99, 91, 89, 90, 72, 75, 94, 95, 100}, 5)); } }
-
미해결김영한의 실전 자바 - 중급 1편
지역 클래스 캐스팅 질문
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예안녕하세요지역 클래스 부분을 수강하다 궁금한 점이 있어 여쭤봅니다.지역 클래스 파트의 코드를 확인하면 Printer process라는 메서드 안 return printer; 바로 위에 LocalPrinter printer = new LocalPrinter(); 이라는 코드가 강의에서 나옵니다.그런데 제공해주신 강의 자료에는 해당 부분이 Printer printer = new LocalPrinter();로 형이 다르던데 혹시 이것은 오타일까요 ?익명 클래스를 수강하다 다른 점이 있어 되돌아와서 찾아보는 중이었습니다 ! 좋은 강의 제공해주셔서 감사합니다 !!
-
해결됨RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기
강의와 살짝 무관하지만.. MQ에 대한 질문이 있습니다!
RabbitMQ도 충분히 강력한 기능을 제공하는 것으로 보입니다.근데 이제 한번 소비한 메시지는 소비하면서 어딘가에 또 저장하지 않는 이상 재시도가 어려운것으로 알고있습니다.현업에서 RabbitMQ를 도입하시고 사용하시면서 Kafka의 어떤 토픽의 0번 오프셋부터 읽기(earliest)같은 요구사항이 있었던 적은 없으셨는지 궁금합니다!
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
조회수 어뷰징 방지 부분에서 질문이 있습니다.
안녕하세요."조회수 어뷰징 방지 정책 구현" 강의의 ViewApiTest.viewTesst를 실행한 다음redis가 동작하는 docker에 접속해 redis-cli를 실행하고 "keys *" 명령어를 실행하면,distributed lock이나 조회수에 관련된 key를 찾을 수 없습니다.database 0~15를 돌며 "keys *"를 실행 했을 때 (empty array)를 응답 받고 있습니다.어떤 방법으로 결과를 확인할 수 있을까요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
댓글 api delete test 에러
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 댓글 최대 2 depth - CUD API 테스트 & 테스트 데이터 삽입 강의 시청 중 Test 코드에서 void delete()를 실행하면 이미지와 같이 테스트는 통과를 합니다그런데 mysql에서 명령어를 입력을 하면 deleted에는 그대로 0으로 되어 1로 변경되지 않는 문제가 있어 이전 영상을 다시 보며 모든 코드를 확인하였는데 코드는 동일하고 create, read test는 생성되고 조회되며 delete만 테스트만 실행되고 넘어가고 있습니다. 지금까지 작성한 코드 첨부합니다.https://drive.google.com/file/d/1O51-OdLHnOVnMoywcGP_h1aWoroFleF3/view?usp=drive_link
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
연관관계 주인 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 강의에서 CATEGORY 엔티티에 Jointable을 만들고 Item에서 mappedBy를 통해 조회하였습니다. 제가 배운바로는 연관관계 주인은 외래키를 관리한다 하였는데 Jointable이 연관관계 주인 아닌가요?? 그러면 CATEGORY에서도 mappedBy를 설정해야 하는것이 아닌가요..?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
연관관계 편의 메서드
안녕하세요.연관관계 편의 메서드에 대해서 궁금한게 있습니다.일대다 혹은 다대일 양방향 관계에서, 일 과 다 두 엔티티 모두에 연관관계 편의 메서드를 만드는게 좋을까요? 아니면, 연관관계에 종속되는(mappedBy) 엔티티에만 연관관계 편의 메서드를 작성하는게 좋을까요? @JoinColumn 과 mappedBy 로 연관관계의 주인만 잘 설정하면 DB 의 FK 에는 값이 잘 매핑될거고..다만 객채 관점에서 양방향 객체의 탐색을 위해 연관관계 편의 메서드를 작성하는 것으로 알아서, 그렇다고 하면 FK 키가 없는 쪽 엔티티(mapped BY) 에만 연관관계 편의 메서드를 만들면 되지 않을까 싶어서요. 감사합니다.
-
미해결나도! 스프링으로 인공지능을 할 수 있다(인프1탄)
실제로 LLM으로 전달된 질문을 볼 수 있는 방법을 알 수 있을까요 ?
안녕하세요 강의 잘 듣고 있습니다.제목 그대로 실제로 LLM으로 전달된 질문을 볼 수 있는 방법을 알 수 있을까요 ? ListOutputConverter 클래스 내부를 보면 getFormat() 이라는 메서드가 있는데 왠지 LLM 에 전달될 때 제가 입력한 메시지에 추가적인 메시지가 포함되어서 LLM 으로 전달되는것 같은 느낌입니다. 실제 LLM 으로 전달되는 메시지 정보를 볼 수 있는 방법을 알고 싶습니다.
-
해결됨김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
버퍼, 한번에 읽고 쓰기, 크기 질문이요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 궁금증이 생겨서 질문을 드립니다."I/O 기본1 정리"를 보고 들으면서, 버퍼에 한번에 가득 채워서 쓰기(bos.write(buffer)) 및 한번 만에 읽기(bos.readAllbytes())에서 궁금증이 생겼습니다. (7:25 부분)어느 정도의 파일 용량이 까지, 한번 만에 쓰기 및 한번 만에 읽기를 하는지 알 수 가 없었습니다.어느 정도가 파일 용량이 작은 거라고 생각하는지 알고 싶습니다. 답변 부탁드립니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
@OneToMany,@JoinColumn 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요, 공부하다가 정리한 제 생각이 맞는지 궁금합니다.> @JoinColumn: 외래 키(Foreign Key, FK)를 소유하는 엔티티이며, 해당 필드를 가진 엔티티는 연관관계의 주인이다. JPA가 연관된 상대 엔티티에 name으로 지정한 Column을 추가한다.> @OneToMany: 기본적으로 연관관계의 주인이 아니며(1인 team에 FK값인 member_id를 가지면 불필요한 데이터 증가하기 때문) 연관관계 주인인 테이블에 추가적인 update SQL이 진행된다. 감사합니다.
-
미해결실전! 스프링 데이터 JPA
왜 select에서 left join을 수행하더라도 count에서는 left join을 수행하지 않나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요, 강의 잘 듣고 있습니다. 질문도 드리고, 맞다면 메뉴얼에 추가할 만한 내용이 있는 것 같아서 글 남겼습니다! Page를 조회해올 때, left join을 사용한 경우, countQuery에 대해 명시하지 않더라도 count 쿼리문에서는 join 문이 확인되지 않았는데, 이것 또한 하이버네이트6에서 최적화하여 join 문을 생략한 것일까요? 하이버네이트6에서 left join을 직접 추가하더라도 내부적으로 최적화하는 질문을 보고 메뉴얼("스프링 부트 3 - 하이버네이트 6 left join 최적화 설명 추가")도 확인했습니다.그럼에도 join을 강제로 수행시켜도 count 쿼리 또한 join 돼서 수행되는지 확인하고 싶어 다음과 같이 코드를 작성해봤습니다.@Query(value = "select m,t from Member m left join m.team t") Page<Member> findPageByAge(int age, Pageable pageable);@Test public void paging() { //given memberRepository.save(new Member("member1", 10)); memberRepository.save(new Member("member2", 10)); memberRepository.save(new Member("member3", 10)); memberRepository.save(new Member("member4", 10)); memberRepository.save(new Member("member5", 10)); int age = 10; PageRequest pageRequest = PageRequest.of(0, 3, Sort.by(Direction.DESC, "username")); Page<Member> page = memberRepository.findPageByAge(age, pageRequest); //then List<Member> members = page.getContent(); long totalElements = page.getTotalElements(); assertThat(members.size()).isEqualTo(3); assertThat(totalElements).isEqualTo(5); assertThat(page.getNumber()).isEqualTo(0); assertThat(page.getTotalPages()).isEqualTo(2); assertThat(page.isFirst()).isTrue(); assertThat(page.hasNext()).isTrue(); }테스트 코드는 강의와 똑같이 작성하고, 쿼리문에서 select m, t로 한 뒤 countQuery는 별도로 추가하지 않았습니다.이때, 수행되는 쿼리가 다음과 같은데,select m1_0.member_id, m1_0.age, m1_0.team_id, m1_0.username, t1_0.team_id, t1_0.name from member m1_0 left join team t1_0 on t1_0.team_id=m1_0.team_id order by m1_0.username desc fetch first ? rows onlyselect count(m1_0.member_id) from member m1_0countQuery를 명시하지 않았음에도, 강의와 달리 count 쿼리문에서는 join이 수행되지 않았습니다.
-
미해결개발 역량 + 자격증까지, Java로 PCCP 자격증 준비하기
실습 승인 부탁드립니다
5일 기다리는 건 너무 시간이 길어요 ㅜㅜ
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
ArrayEx6 문제 질문입니다
System.out.println(count+"개의 정수를 입력하세요. "); for (int i = 0; i < numbers.length; i++) { numbers[i] = input.nextInt(); if (numbers[i] > max) { max = numbers[i]; } if (min > numbers[i]) { min = numbers[i]; } } 이렇게 for문 안에서 max와 min 값을 계속 비교를 해도 상관없을까요?