묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
생성 메서드
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]생성 메서드를 만드는 경우는 본인이 정하는 걸까요 .. ?item 생성 할 때처럼 간단한 경우는 생성메서드를 만들지 않고 orderItem 생성 시와 같이 복잡한 코드의 경우에만 미리 생성 메서드를 만들어 놓는건지 어떤 경우에 생성 메서드를 만들어 놓는지 강의를 봐도 감이 안 잡혀서요 ..어떤 경우에 생성 메서드를 사용하는 것이 좋은 경우인지 설명해주실 수 있을까용 ..추가로 orderitem을 생성하는 createOrderItem 메서드를 만들고 createOrder시에 createOrderItem으로 생성한 orderItem을 사용하는 걸까요 ? 혹 뒷부분 강의에 해당 내용이 나온다면 이 부분은 답변 생략해주셔도 됩니다 .!
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
격자판 최대합 테스트 케이스 5번 통과가 안되요
import java.util.Scanner; public class GetMaxSumOfGridPlate { public static void main(String[] args) { Scanner in = new Scanner(System.in); int arrLen = in.nextInt(); int[][] arr = new int[arrLen][arrLen]; for(int i = 0; i < arrLen; i++) { for(int j = 0; j < arrLen; j++) { arr[i][j] = in.nextInt(); } } System.out.println(getMaxSumOfGridPlate(arr)); } static int getMaxSumOfGridPlate(int[][] grid) { int max = 0; int diagonal1 = 0; int diagonal2 = 0; for(int i = 0; i < grid.length; i++) { int sum1 = 0; int sum2 = 0; for(int j = 0; j < grid.length; j++) { sum1 += grid[i][j]; sum2 = grid[j][i]; if(i == j) { diagonal1 += grid[i][j]; } } diagonal2 += grid[i][grid.length - i -1]; int sum = Math.max(sum1, sum2); max = max < sum ? sum : max; } int diagonal = Math.max(diagonal1, diagonal2); return max > diagonal ? max : diagonal; } } 제가 풀었는데 선생님께서 풀어주신 내용과 아이디어는 비슷하다고 생각했습니다다만 5번 테스트케이스에서 통과가 안되어서 코드에 오류가 있는거 같은데문제를 찾기가 너무 어렵습니다.어느 부분이 틀렸을까요? ㅠㅠ
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
if문 내용 중에서 nx조건식에 대한 질문입니다..
nx>=0 은 이해됩니다.조건식을 음수로 좌표를 찍었을때 예외처리가 생기니까 조건을 준건 이해가되는데nx < n가 이해가 잘 안됩니다..nx가 무조건 0이상의 정수일때 nx가 n보다 크거나 같아질 수가 있는건가요?
-
미해결Java/Spring 주니어 개발자를 위한 오답노트
진짜 객체지향과 테스트하기 쉬운 코드를 위헤서는 jpa가 의미없는게 아닌가하는 생각이 들어요
이전에 혼자 ddd, 헥사고날 아키텍처를 공부하면서 느꼈던게객체지향적인 코드 + 테스트하기 용이한 코드를 작성하기 위해서는 결국 domain layer와 persistence layer의 분리가 필수적인데jpa entity와 domain entity를 완전히 분리했을 때 JPA가 mybatis나 jdbc template를 사용하는 것과 비교해 가지는 강점이 있는지 잘 모르겠습니다..그나마 jpa entity와 domain entity를 분리하지 않는다면 어떻게든 온몸 비틀기로 그나마 테스트하기 용이하고 객체지향스러운 코드를 작성해볼 수는 있지만 결국 복잡한 로직에서는 쿼리 때문에 문제가 생기고 ㅜ지식 공유자님께서는 이 문제에 대해 어떻게 생각하시나요?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
메소드 퀴즈6
/** 기능 : 인덱스번지부터 *로 개인정보를 가리는 메소드 * 매개변수 : String data, int index 리턴타입 : 처리된 개인정보 => String * 메소드명 : getHiddenData */ public static String getHiddenData(String data, int index) { String hiddenData = data.substring(0, index); for(int i = 0; i < data.length() - index; i++) { hiddenData += "*"; // System.out.print("*"); // 이렇게 하니까 *표가 앞으로 가버림.. 왜 그럴까요? } return hiddenData;가운데 주석처리한대로 *를 프린트하니까 ** 이름 : 나이런 식으로 출력이 됩니다. String hiddenData 에서 공개부분만큼만 자르고, 뒤에 비공개부분만큼 println 에서 line 빼고, for문 반복하면 **이 뒤로 붙어야 할 것 같은데 이해가 안됩니다.. 복습겸 문제풀기 + 강의 다시보기 까지 해당 문제를 3번은 풀었는데도 코드를 이해하고 푸는게 아니라 답이 뭐였더라...를 더듬 거리면서 푸는거같아요..
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
java.lang.IllegalStateException: Failed to load ApplicationContext 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.https://drive.google.com/file/d/1nLOWIWG70W2LLqY0cjC4kcInxZn-bHD2/view?usp=sharing압축 파일 올렸습니다.초기에 실행했을 때는 문제 없이 잘 실행되다가 특정 시점 이후부터는 계속 "java.lang.IllegalStateException: Failed to load ApplicationContext" 이 에러가 발생하면서 실행이 되지 않습니다...
-
미해결실전! 스프링 데이터 JPA
QueryHint readonly 와 영속성 컨텍스트 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]MemberRepository /** * JPA Hint */ @QueryHints(value = @QueryHint(name = "org.hibernate.readOnly", value = "true")) Member findReadOnlyByUsername(String username); test @Test @Rollback(false) void findReadOnlyByUsername() { // given memberRepository.save(new Member("member1", 10)); em.flush(); em.clear(); // when Member member = memberRepository.findReadOnlyByUsername("member1"); // 쿼리힌트로 readonly 설정 member.setUsername("member2"); em.flush(); // update 쿼리가 나가지 않음 em.clear(); System.out.println("member.getUsername() = " + member.getUsername()); }영한님이 설명해주신대로 update 쿼리가 나가지 않아서 실제 DB 상에는 member2 가 아닌 member1 이 들어가있음을 확인했습니다그리고 em.clear() 로 영속성컨텍스트를 초기화 한 후, member 의 username 을 찍어봤는데 member2 가 찍히더라구요저는 영속성 컨텍스트를 초기화했으므로, member 조회 시 DB 에서 가져오므로 member1 이 찍힐 것이라고 생각했는데 제 생각이 틀린 건가요? 아래는 출력로그 입니다 2023-08-14 17:17:17.797 INFO 15063 --- [ main] p6spy : 23.08.14 17:17:17 | OperationTime 4 ms | statement | connection 3 select member0_.member_id as member_i1_0_, member0_.age as age2_0_, member0_.team_id as team_id4_0_, member0_.username as username3_0_ from member member0_ where member0_.username='member1' member.getUsername() = member2
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
PathVariable 사용이유..updateMemberV2메소드 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. MemberApiController 수정시 /** * 수정 */ @PutMapping("/api/v2/members/{id}") public UpdateMemberResponse updateMemberV2(@PathVariable("id") Long id, @RequestBody @Valid UpdateMemberRequest request) { memberService.update(id, request.getName()); Member findMember = memberService.findOne(id); return new UpdateMemberResponse(findMember.getName(), findMember.getId()); } @Data static class UpdateMemberRequest{ private String name; } @Data @AllArgsConstructor static class UpdateMemberResponse{ private String name; private Long id; } 수정할때PathVariable로 url주소에서 맵핑하셨는데그냥 @PutMapping(""/api/v2/members/")로 하고,UpdateMemberRequest 클래스에서 id를 필드로 추가한 후 @PutMapping("/api/v2/members") public UpdateMemberResponse updateMemberV2( @RequestBody @Valid UpdateMemberRequest request) { memberService.update(request.getId(), request.getName()); Member findMember = memberService.findOne(request.getId()); return new UpdateMemberResponse(findMember.getName(), findMember.getId()); } memberService.update(id, request.getName()); 가 아닌 memberService.update(request.getId(), request.getName());id를 PathVariable로 받지말고,request에서 받아서 설계해도 될까요?PathVariable을 사용하는 이유가 궁금합니다.
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
생성자 파라미터 콤마
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. class JavaHouse( private val address: String, private val livingRoom: LivingRoom, ) {생성자 파라미터 넣을시에address: String,livingRoom: LivingRoom 콤마를 넣으셨는데요콤마를 안넣어도 되는것 같은데요 굳이 넣는 이유가 무엇인지요?
-
미해결실습으로 배우는 선착순 이벤트 시스템
동시성제어
안녕하세요 강의를 듣다가 궁금증이 생겼는데요. kafka는 메시지를 하나씩 처리하기 때문에 동시성 제어도 가능할 것이라고 이해했는데 그렇다면 여기서 레디스를 사용하지 않더라도 카프카만 사용해도 동시성과 관련된 데이터 정합성을 보장할 수 있는건가요?
-
해결됨Java/Spring 주니어 개발자를 위한 오답노트
c. Collection,Map 질문
Collection.Map의 Good 케이스를 알 수 있을까요?맵을 사용할 때 맵 안에 맵이 있고 이런 형태를 사용하지 않는게 좋은건지 아니면 따로 dto로 변환해서 사용해야하는건지 구분이 안 가서 질문 드립니다 ! 지정된 scope를 넘나들지 않는다는 것도 이해가 가지 않습니다 ㅠㅠ조금만 더 쉽게 설명 붙여주시면 감사드리겠습니다!
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
안녕하세요 지난 시간에 배운 인터페이스(후반전)을 함수형 인터페이스로 만들어보았습니다.
(메인 클래스 부분 아래로 내려가지지 않아서 실행 결과를 여기에 먼저 올립니다 😅)참고로, 함수형 인터페이스를 사용할 때는 아래와 같이 함수 시그니처(함수 이름, 반환형, 파라미터 타입)만 동일하고 바디 부분은 달라도 정상적으로 실행이 되더군요.📋Reportable 인터페이스package practice; @FunctionalInterface public interface Reportable { void report(int time); // 신고 }📋Detectable 인터페이스package practice.detector; @FunctionalInterface public interface Detectable { String name = "감지자"; // 인터페이스도 필드를 가질 수 있음 void detect(); // 감지 }💻NormalReporter 클래스package practice; public class NormalReporter implements Reportable { @Override public void report(int time) { System.out.println(time + " 초 동안 일반 화재 신고를 진행합니다."); } }💻VideoReporter 클래스package practice; public class VideoReporter implements Reportable { @Override public void report(int time) { System.out.println("직전 " + time + "초 영상과 함께 신고를 진행합니다."); } }💻FireDetector 클래스package practice.detector; public class FireDetector implements Detectable{ @Override public void detect() { System.out.println("일반 성능으로 화재를 감지합니다."); } }💻AdvancedFireDetector 클래스package practice.detector; public class AdvancedFireDetector implements Detectable{ @Override public void detect() { System.out.println("향상된 성능으로 화재를 감지합니다."); } }💻메인 클래스package practice; import practice.detector.Detectable; public class practice { public static void main(String[] args) { //* 함수형 인터페이스 실행 Reportable reportableNormal = (time) -> System.out.println(time + " 초 동안 일반 화재 신고를 진행합니다."); Reportable reportableVideo = (time) -> System.out.println("직전 " + time + "초 영상과 함께 신고를 진행합니다."); Detectable detectableFire = () -> System.out.println("일반 성능으로 화재를 감지합니다."); Detectable detectableAdvancedFire = () -> System.out.println("향상된 성능으로 화재를 감지합니다."); reportbyNormalReporter(reportableNormal, 20); reportbyVideoReporter(reportableVideo, 10); detectbyFireDetector(detectableFire); detectbyAdvancedFireDetector(detectableAdvancedFire); } public static void reportbyNormalReporter(Reportable reporter, int time) { reporter.report(time); } public static void reportbyVideoReporter(Reportable reporter, int time) { reporter.report(time); } public static void detectbyFireDetector(Detectable detector) { detector.detect(); } public static void detectbyAdvancedFireDetector(Detectable detector) { detector.detect(); } }
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
mysql 설치 404 에러 질문드립니다
mysql 설치하려고 하면 이런 식으로 404 에러가 나옵니다.(강의에서 나온 wget http...명령어를 입력해도 같은 에러가 나왔습니다.)
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
select 쿼리없이 dto 만들지 않은 이유
강의에서는 아래와 같이 select 쿼리를 이용해 업데이트 된 회원을 조회후 response로 전달해 주었는데 @PutMapping("/api/v2/members/{id}") public UpdateMemberResponse updateMemberV2(@PathVariable("id") Long id, @RequestBody @Valid UpdateMemberRequest request) { memberService.update(id,request.getName()); Member findMember = memberService.findOne(id); return new UpdateMemberResponse(findMember.getId(), findMember.getName()); }아래와 같이 하지 않은 이유가 있을까요??@PutMapping("/api/v2/members/{id}") public UpdateMemberResponse updateMemberV2(@PathVariable("id") Long id, @RequestBody @Valid UpdateMemberRequest request) { memberService.update(id, request.getName()); return new UpdateMemberResponse(id, request.getName()); }
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
lettuce 를 이용할떄 stockService의 decrease 메서드는 정확히 어떤걸 사용하면 되는건가요?
테스트 코드 실행시 계속 돌기만 하는데 어떤 decrease를 사용해야 하는걸까요??
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
JPA와 DB 설정, 동작 확인 강의 실습 도중 Test 실행 불가
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요?어제부터 계속 시도해보는데 해결되지 않아 질문 드립니다..JPA와 DB 설정, 동작 확인 강의에서, Test를 실행하려는데 아래와 같은 에러가 발생합니다.에러를 해결해보기 위해 여기 질문게시판을 찾아보았으나, 저와 상관 없는 사유였거나 해당 솔루션으로 해결되지 않았습니다... H2 실행한 상태이고, jpashop.mv.db도 생성된 상태입니다. Junit 4이고, 원래는 5였는데 선생님께서 진행하신 버전이 4라서 다시 삭제하고 재생성하여 진행하였습니다. H2 버전 2.1.214로 낮춰보라는 글도 있어 전부 삭제 후 다시 설치하여 db 다시 생성해보았기도 했는데 실패하였습니다..아래는 에러코드 전문이며, 제 코드는 Google Drive에 올려 URL로 달아두었습니다.. 도와주시면 감사하겠습니다.Google Drive: https://drive.google.com/drive/folders/1ZKGI6dlldF4RAEfNdmaRrFlmBxTatQww?usp=sharing<에러코드>java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@79fd6f95 testClass = jpabook.jpashop.MemberRepositoryTest, locations = [], classes = [jpabook.jpashop.JpashopApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceLocations = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@3f197a46, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@50b472aa, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@4facf68f, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@243c4f91, org.springframework.boot.test.context.SpringBootTestAnnotation@83724131], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:143) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:127) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:191) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:130) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:241) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'memberRepository': Injection of persistence dependencies failed at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessProperties(PersistenceAnnotationBeanPostProcessor.java:388) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1416) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:597) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:942) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:608) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:436) at org.springframework.boot.SpringApplication.run(SpringApplication.java:312) at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3(SpringBootContextLoader.java:137) at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58) at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46) at org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1406) at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:545) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:137) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:108) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:187) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:119) ... 27 moreCaused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'jakarta.persistence.EntityManagerFactory' available at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1247) at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findDefaultEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:593) at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:557) at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor$PersistenceElement.resolveEntityManager(PersistenceAnnotationBeanPostProcessor.java:724) at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor$PersistenceElement.getResourceToInject(PersistenceAnnotationBeanPostProcessor.java:697) at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:270) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145) at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessProperties(PersistenceAnnotationBeanPostProcessor.java:385) ... 49 more
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
JpaMemeberRepository unit test
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 다름이 아니라 강의를 전부 다 보고 궁금한 점이 있어서 질문드립니다. 기존에는 MemoryMemberRepository 에 대한 unit test 를 진행 했는데 Jpa로 변경한 후에는 각각에 대해 어떤식으로 unit test 를 진행 해야되는지 궁금합니다.
-
미해결스프링 시큐리티 OAuth2
1편을 들고 2편으로 넘어 오긴했는데..
1편을 끝내고 이제 2편으로 들어왔는데 아직 1편을 많이 미흡하게 이해된부분이 많은데.. 2편을 들으면서 복습하는 방식으로 해도될까요?
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
맥 사용자가 아닌 윈도우 사용자 분들은 docker redis 설치 어떻게 하셨나요?
docker desktop , mysql은 별개로 설치 되어 있긴 한데docker desktop으로도 mysql redis 설치가능한건가요??ㅠㅠ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
부트스트랩, 점보트론 적용 후 가운데 정렬이 안 됩니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]header.html<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head th:fragment="header"> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink- to-fit=no"> <!-- <!– Bootstrap CSS –>--> <!-- <link rel="stylesheet" href="/css/bootstrap.min.css" integrity="sha384- --> <!-- ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"--> <!-- crossorigin="anonymous">--> <!-- Latest compiled and minified CSS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/5.3.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">> <!-- Custom styles for this template --> <link href="/css/jumbotron-narrow.css" rel="stylesheet"> <title>Hello, world!</title> </head>현재 header.html 파일 코드는 이렇게 되어 있습니다.부트스트랩 버전이 강의와 다르면 점보트론 적용이 잘 안 된다는 이야기가 있어서 호환을 위해 기존 코드는 주석 처리 하고<!-- <!– Bootstrap CSS –>--> <!-- <link rel="stylesheet" href="/css/bootstrap.min.css" integrity="sha384- --> <!-- ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"--> <!-- crossorigin="anonymous">-->새로운 코드를 붙여넣었습니다. <!-- Latest compiled and minified CSS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/5.3.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">> 가운데 정렬이 안 되는 이유가 뭔지 알고 싶습니다..