묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 기본편
블로그 혹은 깃허브에 코드 업로드가 가능한가요?
안녕하세요.강의에서 사용되는 코드와 덧붙여 제가 공부하며 추가로 작성한 내용들을 개인 블로그 혹은 깃허브에 업로드하는 것이 가능할까요?김영한 선생님의 다른 강의들에도 동일하게 적용되는지 궁금합니다.어렵다면 프라이빗으로 작성하겠습니다!
-
미해결스프링 핵심 원리 - 기본편
회원 도메인 설계 질문
회원 도메인 설계 과정에서 질문 있습니다.회원 서비스 , 회원 저장소 객체로 나눈 이유가 궁금합니다. 각 기능별로 구분하기 위해 이렇게 구현한것인가요?클라이언트가 의미하는 것은 사용자가 보내는 요청이랑 같다고 생각해도 될까요?위 그림에서 회원서비스, 회원 저장소 인터페이스는 있는데 클라이언트 인터페이스가 없는 이유가 궁금합니다.
-
미해결김영한의 실전 자바 - 기본편
다형성1 과목 개념정리 질문입니다
[질문 내용]제가 지금 이해한 내용으로는Parent parent = new child(); 가 있을때 메모리에는 Child를 기준으로 상위 부모 클래스만 메모리에 적재되고 (편의상 Child 메모리라고 하겠습니다),parent의 참조 주소는 생성된 Child 메모리 안의 Parent 클래스를 참조하며,parent의 멤버변수는 Parent 클래스의 멤버변수만 가질 수 있고,오버라이딩된 메소드가 존재한다면 무조건 오버라이딩된 메소드가 우선권을 가진다 라고이해했는데, 덧붙일 개념들이 혹시 있을까요?아, 그리고 만약 오버라이딩된 메소드가 부모클래스에서 실행할 수 없는 메소드라면 어떻게되는지도 궁금합니다. (혹시, 오버라이딩된 메소드가 부모클래스에서 실행되지않을 가능성은 아예 없나요?)
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
새로운 스위치문
package cond.ex; public class ScoreEx5 { public static void main(String[] args) { String grade = "A"; String appraisal = switch (grade) { case "A" -> "그는 도데체..."; case "B" -> "잘 했어"; case "C" -> "괜찮아 계절 학기 있어"; case "D" -> "졸업 하려면 화이팅"; case "F" -> "재수강하세요"; }; System.out.println(appraisal); } }오류내용C:\study\java_study\java_start\src\cond\ex\ScoreEx5.java:7:28java: the switch expression does not cover all possible input values 문제를 풀던중 해당 오류가 발생 했습니다. 어떠한 이유 때문인지 모르겠어서 질문 남깁니다. 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
싱글톤 컨테이너 @Configuration과 싱글톤
안녕하세요.수업들으며 똑같이 실습 따라하다가 값이 똑같아야 하는데 저는 다르게 나와서요,,!분명 어딘가 문제가 있어서 그럴 것 같은데... 어느 부분이 잘못 됐을까요?ㅜㅜ?혹시 몰라서 아래에 OrderServiceImpl과 MemberServiceImpl 코드도 추가해 봅니다..스크린샷으로 하면 짤려서요..ㅜㅜ package hello.core.order;import hello.core.discount.DiscountPolicy;import hello.core.member.Member;import hello.core.member.MemberRepository;public class OrderServiceImpl implements OrderService{ private final MemberRepository memberRepository ; private final DiscountPolicy discountPolicy ; public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = discountPolicy; } @Override public Order createOrder(Long memberId, String itemName, int itemPrice) { Member member = memberRepository.findById(memberId); int discountPrice = discountPolicy.discount(member, itemPrice); return new Order(memberId, itemName, itemPrice, discountPrice); } //테스트 용도 public MemberRepository getMemberRepository() { return memberRepository; }} package hello.core.member;public class MemberServiceImpl implements MemberService{ private final MemberRepository memberRepository; public MemberServiceImpl(MemberRepository memberRepository) { this.memberRepository = memberRepository; } @Override public void join(Member member) { memberRepository.save(member); } @Override public Member findMember(Long memberId) { return memberRepository.findById(memberId); } //테스트 용도 public MemberRepository getMemberRepository() { return memberRepository; }}
-
미해결Java/Spring 주니어 개발자를 위한 오답노트
외래키를 지양하라는 질문에 대한 궁금증
외래키 사용을 지양하라는 내용이 있어서 링크된 글을 읽어봤는데 궁금증이 있습니다. 외래키를 지양한다면 PK 값을 다른 테이블에 넣으면서 그 값으로 조인을 사용하는건가요?외래키를 지양했을 때 성능상의 이점은 알겠는데 결국 데이터 정합성 부분에서 문제가 발생합니다. RDB에서 데이터 정합성이 깨지면 사용하는 의미가 없다고 하는데 이부분에선 어떻게 생각하시나요?외래키를 안쓸경우 JPA에서 ManyToOne같은 메소드도 사용하지 않는건가요?그리고 해당 주장에 대해 반박하는 아래의 링크도 있는데 이 의견은 어떠신가요?https://gdsc-university-of-seoul.github.io/foreign-key/
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
훈련_문제(ScannerWhileEx4)
ScannerWhileEx4 관련하여 질문합니다. 문제 풀이에서는 if문으로 해결하셨는데 혹시 switch문으로도 해결할 수 있나요?
-
미해결스프링 핵심 원리 - 기본편
Configuration질문있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]컴포넌스 스캔을 사용하면 클래스 내의 메소드에 빈을 하나하나 등록할 필요없이 컴포넌스만 붙이면 알아서 빈에 등록하는 것으로 이해했습니다. 그런데 강의 내용 중 컨피그레이션을 사용하는 경우 내부적으로 컴포넌트가 붙여져 있음을 알려주셨는데요. 그럼 컨피그레이션을 붙이면 빈을 일일히 등록해줄 필요가 없어지는 거 아닌가요?? 맞다면 이 경우 컴포넌트를 사용하는 것과 컴피그레이션을 사용하는 것의 유의미한 차이가 무엇인지 궁금합니다.
-
해결됨김영한의 실전 자바 - 기본편
7. 자바 메모리 구조와 static ppt 오타 제보합니다.
안녕하세요! 좋은 강의 항상 잘 듣고 있습니다. ppt에 오타가 있는 것 같아 제보합니다.7. 자바 메모리 구조와 static 에서 p. 29 입니다. DataCountMain3 -> DecoDataMain 인 것 같은데 확인 부탁드립니다.오타 제보는 어디서 하는 지 몰라 여기에 제보하는 점 양해를 바라고 좋은 하루 되시길 바랍니다.
-
미해결김영한의 실전 자바 - 기본편
자식 클래스 생성 시 method 영역 질문
영한님, 강의 잘 듣고 있습니다. 상속 부분에서 질문이 있는데, 자식 클래스를 생성하면(인스턴스 생성 말고) method 영역에서는 어떻게 되나요?강의자료에선 인스턴스 생성 시 heap 영역에 대한 내용만 있어서 외부 자료도 찾아봤지만, 자식클래스가 method 영역에서 어떻게 생성되는지는 찾기가 어렵네요(예를들어 heap 영역과 같이 부모클래스를 포함한 형태로 생성이 된다던지 등…)
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
자바 OS 관련
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]자바 os 관련해서, 개발 머신은 맥북이나 실제 자바로 개발한 API를 리눅스 또는 AWS에서 돌린다고 하면, JAVA 특성상 크게 문제는 없을것 같지만, 맥에 최적화 된 JAVA를 설치하는게 좋은 것인지 아니면 서버에 맞추어 설치하는게 좋은것인지 궁금합니다.
-
해결됨스프링 핵심 원리 - 기본편
웹 스코프에서 Provider 사용
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]제가 Provider에 대해 이해한게 맞는지 궁굼해서 질문 드립니다. 강의는 9강 스코프와 Provider입니다!먼저 Error creating bean with name 'myLogger': Scope 'request' is not active for the current thread; consider defining a scoped proxy for this bean if you intend to refer to it from a singleton;이 오류가 일어나는 이유가 스프링 컨테이너에서 request 스코프 빈에 대한 의존관계를 주입하려고 하는데, 아직 클라이언트가 요청을 하지 않아서 리퀘스트 스코프 빈이 생성되지 않아서 오류가난다라고 이해했습니다1번이 맞다면..Provider을 사용하는 이유가, Request 스코프 빈이 의존관계 주입 시점에 호출이 안되서 오류가 났었는데, 클라이언트가 요청한 시점에 getObject나 get 메서드를 이용해서 request 스코프 빈을 생성하고 반환하는 DL기능을 써서, 의존관계가 잘 주입되게 해준다라고 이해했습니다질문은 총 두 개 입니다.
-
해결됨김영한의 실전 자바 - 기본편
인텔리제이 알트 엔터 단축키 질문입니다.
이 부분 알트 엔터 눌러도 이렇게 선택하는 창이 안 뜨고 알트만 눌러도 안 뜨는데 설정을 바꿔야할까요?=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
해결됨스프링 핵심 원리 - 기본편
스코프와 Provider 강의에서 질문합니다.
안녕하세요. 선생님 영상을 보면서 라이브 코딩하면서 오류가 발생할때 저는 오류가 발생을 안하고오류가 발생하면 안되는 곳에서는 발생해서 질문남깁니다.package web; import hello.core.common.MyLogger; import jakarta.servlet.http.HttpServletRequest; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.ObjectProvider; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller @RequiredArgsConstructor public class LogDemoController { private final LogDemoService logDemoService; private final ObjectProvider<MyLogger> myLoggerProvider; @RequestMapping("log-demo") @ResponseBody public String logDemo(HttpServletRequest request) { String requestURL = request.getRequestURL().toString(); MyLogger myLogger = myLoggerProvider.getObject(); myLogger.setRequestURL(requestURL); myLogger.log("controller test"); logDemoService.logic("testId"); return "OK"; } } package web; import hello.core.common.MyLogger; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.ObjectProvider; import org.springframework.stereotype.Service; @Service @RequiredArgsConstructor public class LogDemoService { private final ObjectProvider<MyLogger> myLoggerProvider; public void logic(String id) { MyLogger myLogger = myLoggerProvider.getObject(); myLogger.log("service id = " + id); } } 18:48:19.302 [main] INFO hello.core.CoreApplication -- Starting CoreApplication using Java 17.0.8.1 with PID 1715 (/Users/kssk3-/Desktop/study/core/build/classes/java/main started by kssk3- in /Users/kssk3-/Desktop/study/core) 18:48:19.303 [main] INFO hello.core.CoreApplication -- No active profile set, falling back to 1 default profile: "default" 18:48:19.661 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer -- Tomcat initialized with port 8080 (http) 18:48:19.665 [main] INFO o.a.coyote.http11.Http11NioProtocol -- Initializing ProtocolHandler ["http-nio-8080"] 18:48:19.665 [main] INFO o.a.catalina.core.StandardService -- Starting service [Tomcat] 18:48:19.665 [main] INFO o.a.catalina.core.StandardEngine -- Starting Servlet engine: [Apache Tomcat/10.1.16] 18:48:19.683 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] -- Initializing Spring embedded WebApplicationContext 18:48:19.684 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext -- Root WebApplicationContext: initialization completed in 363 ms call AppConfig.memberRepository call AppConfig.memberService call AppConfig.orderService 18:48:19.817 [main] INFO o.a.coyote.http11.Http11NioProtocol -- Starting ProtocolHandler ["http-nio-8080"] 18:48:19.825 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer -- Tomcat started on port 8080 (http) with context path '' 18:48:19.829 [main] INFO hello.core.CoreApplication -- Started CoreApplication in 0.642 seconds (process running for 1.077)영상초반에 Provider 적용후 강의에서는 local 사이트 화면에서는 OK로 변경된 화면이 나오지만저의 사이트에서는 여전히 오류가 발생하고 있어서 문의드립니다.추가로 인텔리제이 종료후 재시작해서 CoreApplication를 작동해보았는데 추가적인 오류가 나왔습니다. 18:59:26.308 [main] INFO o.a.coyote.http11.Http11NioProtocol -- Starting ProtocolHandler ["http-nio-8080"] 18:59:26.310 [main] WARN o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext -- Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop' 18:59:26.317 [main] INFO o.s.b.a.l.ConditionEvaluationReportLogger -- Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 18:59:26.325 [main] ERROR o.s.b.d.LoggingFailureAnalysisReporter -- *************************** APPLICATION FAILED TO START *************************** Description: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that's listening on port 8080 or configure this application to listen on another port. Process finished with exit code 1
-
해결됨김영한의 실전 자바 - 기본편
6. 접근 제어자 수업 자료에 정리 부분 내용이 안 보입니다
수업 자료 지우고 다시 받아봐도 안 나옵니다 ㅠ=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결김영한의 실전 자바 - 기본편
인터페이스에 없는 메서드를 자식 클래스에 추가했을 때 호출하는법 (다운캐스팅?)
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]인터페이스를 이용해서 여러 자동차를 만들고 운전자가 자동차의 기능을 사용하게 하는 예제에서 특정 자동차 클래스에만 있는 메서드를 만든다면 호출을 어떻게 해야될까요? 예를들어 Model3에만 자율주행 기능을 추가하고 싶어서public void autoPilot() { System.out.println("자율주행을 시작합니다.");}이런식으로 메서드가 추가됐을때 운전자가 자율주행 기능을 호춣하려면 어떻게 해야되는지 궁금합니다. 제가 비유적으로 이해한 바로는 특정 자동차에만 탑재된 기능을 인터페이스에서 알 수 없으니 따로 배워야한다 --> 운전자 클래스의 코드 수정이 필요하다였고,실제 코드로는 운전자가 가진 Car 인스턴스가 Model3 클래스일 경우 다운캐스팅을 해서 autoPilot 메서드를 호출하는 방식으로 풀긴 했는데, 다운캐스팅이 아직 익숙치 않아서 불안한 마음도 있고 더 좋은 방법이 있을까 해서 질문 드립니다.
-
미해결김영한의 실전 자바 - 기본편
실제 활용 관점
안녕하세요 강의를 듣던 와중에 궁금한 점이 생겨 질문 남깁니다.실제로 그렇다면 추상 클래스와 인터페이스 중에 인터페이스를 사용하는게 이점일 것 같은데.대부분의 경우 인터페이스로 구현되고, 추상 클래스는 사용하지 않는 것인가요 ?백엔드 개발 시에도 인터페이스 구현을 통해서만 작성하는 것 같아 여쭤봅니다.
-
해결됨스프링 핵심 원리 - 기본편
스프링 빈 조회 - 상속 관계 질문있습니다.
안녕하세요!강의에서 부모 타입으로 조회하면, 자식 타입도 함께 조회가 되기 때문에이럴 때, ac.getBean(DiscountPolicy.class) 로 조회하면, 위의 두 개가 조회된다고 설명해주셨는데요.그렇다면, 각각 RateDiscountPolicy와 FixDiscountPolicy 클래스는 DiscountPolicy에 자식 클래스로 보아도 되는 건가요?java에 완전히 익숙하진 않아서 일반적으로 상속한다는 것이 인터페이스의 구현에도 적용할 수 있는 개념인가 해서요..!인터페이스를 implements해서 구현하는 것도 상속하는 것이고, 그래서 부모 자식간의 관계가 성립하는 것으로 보면 될까요??또 질문은 현재 위의 config만 보면, bean으로 올라간 객체는 RateDiscountPolicy와 FixDiscountPolicy밖에 없는거죠?? DiscountPolicy 인터페이스 자체는 빈으로 등록되지 않는건가요..?원래 부모타입으로 조회하였을 때 자기 자신과 자식 타입들이 조회된다고 해서.. 3이라고 생각했는데,여기서는 빈으로 등록된 객체가 RateDiscountPolicy와 FixDiscountPolicy로 2개니까 해서요..그리고 이건 따로 궁금한 점인데, 인터페이스는 원래 빈으로 등록이 안되나요..??질문이 번잡스러워서 죄송합니다..ㅜㅜ
-
미해결스프링 핵심 원리 - 기본편
이런 설계에 대한 공부는 어떻게 해야 할까요...
강의에서 주문, 회원.... createrOdrer 하셔서 머리속에 있는 개발을 코드로 타타타탁 굉장히 쉽게 구현하시는것 같은데강의 보며 따라 치면 아 그렇구나 이해는 되지만막상 제가 뭘 개발하고자 하니 어떤 필드가 필요하고 어떤 매게변수가 필요하고... 감이 전혀 잡히질 않습니다. SI에서 개발자로 일을 하고 있는데 VO개발 방식이 아닌 Map으로 진행중이라 객체의 필드값이 아닌 ,화면에서 필요로 하는 값을 주고 받으니 점점 개발과 설계에 대해 자신감도 잃어가고 있습니다...
-
해결됨스프링 핵심 원리 - 기본편
UnsatisfiedDependencyException 관한 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberServiceImpl' defined in file [F:\study\spring-boot-study2\core\out\production\classes\springbootstudy2\core\member\MemberServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'springbootstudy2.core.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,memberRepository at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:802) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:241) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1356) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1193) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:946) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455) at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) 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:1442) at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:552) 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:225) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:152) ... 17 moreCaused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'springbootstudy2.core.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,memberRepository at org.springframework.beans.factory.config.DependencyDescriptor.resolveNotUnique(DependencyDescriptor.java:218) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1418) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789) ... 41 more 현재 [옵션 처리] 수업까지 들으면서 'CoreApplicationTests'에서 에러가 발생하고 있습니다. 커뮤니티 및 인터넷에서 해당 문제에 대해서 파악을 하는데... MemberRepository와 DiscountPolicy의 스프링 빈 등록이 중복되어 나온다고 설정이 되어 있는 것 같습니다 그래서 MemoryMemberRepository 파일과 RateDiscountPolicy 파일에 @Primary 애노테이션을 넣어서 당장 정상적으로 돌아가는 것을 확인 후 문제는 없앴지만 근본적인 문제 해결로는 이해가 되지 않아서 도움을 요청하고자 글 남겼습니다.