묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
필드 주입의 순환 참조 탐지 시기
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]안녕하세요 강의를 듣고 관련 질문들을 찾아보아도 해결되지 않아 문의 남깁니다.스프링에서 생성자 주입을 사용하는 경우 스프링 컨텍스트가 시작하며 순환 참조를 탐지하고 예외를 발생시키는 것으로 알고 있습니다. 그래서 이를 피하기 위해 좋지 않은 예시인 것은 알지만 필드 주입 or setter 주입을 사용할 수 있는 것으로 알고 있습니다.헌데 코드처럼 필드 주입을 통해 AService가 BService의 객체를 필드 주입으로 설정하고, BService 또한 AService의 객체를 필드 주입하도록 설정했습니다. 이 때, 스프링 컨텍스트가 시작되며 해당 순환 참조와 관련된 메소드 호출이 일어나기 전에 스프링이 미리 이를 감지하고 예외를 던져버리는데 제가 이해한 내용이 잘못된 것인지 의문이 생깁니다... IDE는 인텔리제이를 쓰고 있고, 스프링부트 버젼은 2.7.8입니다@Controller public class TestController { @Autowired private AService aService; @GetMapping("/test") public void test() { } } @Service public class AService { @Autowired private BService bService; @Transactional public void test() { ; } } @Service public class BService { @Autowired private AService aService; @Transactional public void test2() { } }
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
[7. Scanner][문제와풀이4] ScannerWhileEx3 질문
안녕하세요 선생님, 선생님께서 남겨주신 코드와 다르게 제 코드처럼 작성해도 무방할지 질문드립니다. [선생님 코드] 선생님께서 작성하신 코드는 input 지역변수의 스코프 값이 넓습니다.public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int sum = 0; int count = 0; int input = 0; System.out.println("숫자를 입력하세요, 입력을 중단하려면 -1을 입력하세요 : "); while (true) { input = scanner.nextInt(); if (input == -1) { break; } sum += input; count++; } double average = (double) sum / count; System.out.println("입력한 숫자들의 합계 : " + sum); System.out.println("입력한 숫자들의 평균 : " + average); }[제가 작성한 코드] 저는 input의 스코프값이 넓다고 생각해서 자체적으로 while문에서만 해당 변수를 부여하고, 사용했는데 하기와 같이 사용해도 무방할까요?public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int sum = 0; int count = 0; System.out.println("숫자를 입력하세요, 입력을 중단하려면 -1을 입력하세요 : "); while (true) { int input = scanner.nextInt(); if (input == -1) { break; } sum += input; count++; } double average = (double) sum / count; System.out.println("입력한 숫자들의 합계 : " + sum); System.out.println("입력한 숫자들의 평균 : " + average);
-
미해결김영한의 실전 자바 - 기본편
클래스 도입 부분 강의 내용 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]'클래스 도입' 강의 부문 2에서 '2:42' 파트에 "클래스는 관례상 대문자로 시작하고 낙타 표기법을 사용한다." 라고 나와있는데, 대문자로 시작하는 건 'Pascal(파스칼) naming' 이고, 낙타 표기법인 Camel naming은 첫 단어는 소문자로 시작하고, 그 이후 단어 첫 글자는 대문자로 되는 걸로 알고 있습니다. 예를 들어서교안에 적어놓으신 MemberService를 카멜 케이스로하면 memberService이지 않을까요?Pascal : MemberServiceCamel: memberServiceSnake: member_service
-
미해결김영한의 실전 자바 - 기본편
코드에 따른 시간복잡도 차이
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]17:10에서 전체 합을 private void로 따로 만들어 주셨습니다. 위의 사진이 제가 짠 코드입니다. 해당 사진은 선생님께서 짜주신 코드입니다. 두 사진에 있어 차이점은 totalPrice에 대해서 캡슐화를 하였는가 안하였는가에 대한 차이 뿐인데요.최근 알고리즘 공부를 하다가 시간복잡도에 대한것을 공부하고 있습니다.선생님과 제가 짠 코드에서 차이점이 있다면 저는 "displayItems에 직접 int total을 넣어서 for문에 입력한 것"이고, 선생님은 "calculateTotalPrice 생성자를 만드신 뒤에 int totalPrice를 선언"해 주셨는데요.혹시 두 코드에 있어 시간복잡도는 어떤 코드가 더 오래 걸리는지 알 수 있을까요???
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
double형 오버플로우
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의를 보다가 문득 궁금한 부분이 생겨서 질문 드립니다. int의 경우 오버플로우가 발생하면 Long 형으로 형 변환을 하면 된다고 하셨는데 double을 사용하다가 오버플로우가 발생한다면 어떻게 처리를 하는지 궁금해져서 질문드립니다. 혹시 double형을 사용하면서 오버플로우가 발생하는 상황 자체가 잘 못 된것일까요?
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
[Scanner] 7-3.반복예제(ScannerWhile3) 질문
안녕하세요 선생님 선생님께서 작성하신 코드와 다르게 하기 코드처럼 작성해도 무방할까요?코드 결과값은 동일하게 나타내는 것으로 확인되었습니다. 다만 차이가 있거나 더 좋은 코드를 작성한다면 어떤 코드가 좋을지 몰라 질문드립니다![선생님 작성 코드] - while문 출력 후 -> 입력 정수의 합 출력public static void main(String[] args) { Scanner input = new Scanner(System.in); int sum = 0; while (true) { System.out.print("정수를 입력하세요 (0을 입력하면 종료) : "); int num = input.nextInt(); if (num == 0) { break; } sum += num; } System.out.println("입력한 모든 정수의 합 : " + sum);[제가 작성한 코드] while문 내 if 구문에서 -> 입력 정수의 합 출력public static void main(String[] args) { Scanner input = new Scanner(System.in); int sum = 0; while (true) { System.out.print("정수를 입력하세요 (0을 입력하면 종료) : "); int num = input.nextInt(); if (num == 0) { System.out.println("입력한 모든 정수의 합 : " + sum); break; } sum += num; }
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
자바 default 접근제어자임에도 다른 클래스에서 호출이 되네요.. 뭐가 문제일까요
안녕하세요 나도코딩님! 덕분에 직장다니면서 잘 공부하고 있는 애청자 1입니다. 접근제어자 부분 공부중입니다.VSCODE로 코딩하고 있구요!챕터 07에서 이렇게 챕터 7에서 만든 블랙박스리퍼비쉬 클래스가 기존에 있었고,챕터8에서 resolution변수를 호출하면 빨간 선이 생기며 안되어야 하는 게 정상인데 public class _05_accessModifierTest { public static void main(String[] args) { BlackBoxReferbish b1 = new BlackBoxReferbish(); b1.modelName = "까망이"; // 퍼블릭 변수엿음 b1.resolution = "FHD";컨트롤 키를 누른 채로 챕터8에 임시로 만든 블랙박스리퍼비쉬 b1.resolution 변수가 잘 불러와지네요..아무 것도 적지 않으면 default 접근제어자로 처리되어서 같은 클래스 내에서만 접근이 가능해야 하는데무엇 때문에 가능한 걸까요? public class BlackBoxReferbish { public String modelName; String resolution; private int price; protected String color;
-
해결됨C개발자를 위한 최소한의 C++
예외 클래스에서 catch 안의 데이터형이 참조자인 이유
안녕하세요. 강의 잘 보고 있습니다.강의를 듣다가 궁금한 것이 생겨서 질문 드립니다. catch(MyException &exp) { // 생략 }이 강의 예제에서 catch의 예외 데이터형에 클래스 참조자를 받도록 하였는데 만약 아래처럼 참조자를 사용하지 않으면 복사생성이 되나요?catch(MyException exp) { // 생략 }
-
미해결김영한의 실전 자바 - 기본편
다형적 참조의 오버라이딩
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]다른 분께서 올려주신 질문 글을 읽고 저 또한 같은 의문이 생겼지만, 그에 대한 답변이 저에게는 잘 와 닿지 않아서 제가 이해한 바를 적어봅니다. 상속 관계에 있는 객체의 메서드를 사용할 때는, 우선 메서드를 사용하는 변수의 참조값을 따라 인스턴스를 찾고, 인스턴스 내의 변수 타입과 동일한 클래스 타입부터 시작하여 메서드를 찾는다고 하셨습니다. 그리고 이렇게 메서드를 찾을 때는 자식 클래스에서 부모 클래스 방향으로 올라가는 것만 가능하고, 부모 클래스에서는 자식 클래스에 대한 정보가 없으므로 반대는 불가능하다고 말씀하셨습니다. 그런데 부모 변수가 자식 인스턴스를 참조하는 다형적 참조의 경우, 메서드를 호출하는 변수의 타입은 부모 클래스이므로 메서드를 부모 클래스에서 찾을 것이고, 부모 클래스는 자식 클래스에 대한 정보가 없는데 어떻게 자식 클래스에 해당 메서드가 오버라이딩이 되었는지 판단하는지 잘 이해가 되지 않았습니다. 제 식대로 내린 결론은 다음과 같습니다.다형적 참조에서는 변수의 타입은 Parent지만, 이 변수가 참조하는 것은 자식 인스턴스인 Child입니다. 호출된 메서드를 찾을 때는 변수의 타입과 같은 Parent에서 탐색하는 것은 맞지만, 오버라이딩 여부는 Child 인스턴스 내에서 별개로 확인하는 것이고 Parent 인스턴스와는 무관합니다.제가 이해한 방식이 맞나요?
-
미해결김영한의 실전 자바 - 기본편
자바 중급,고급편 내용
자바 중급, 고급편 강의는 대략적으로 어떤 내용의 강의인가요??
-
미해결자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 1(기초편)
문제답안
자바 기초부터 마스터하기 강의의 ‘나 혼자 코딩!’ 문제 답안은 강의 자료를 통해 확인하실 수 있습니다.강의실 진입 후 우측 상단의 다운로드 버튼이나 커리큘럼에서 각 수업 옆에 위치한 구름모양 다운로드 버튼 아이콘을 통해 자료실에 접근하실 수 있어요. 위에 다른분께서 질문에 대한 답변을 해주셨는데요..구름모양 다운로드 버튼 아이콘이 보이지 않아서 문의 드립니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
ScannerWhileEx4를 새로운 switch문으로 풀어보려고 하는데 break를 어떻게 걸어야하는지 잘 모르겠습니다.
일단 이렇게 해서 기본적인 작동은 잘 됐는데 문제는 case 3에서 break가 안걸려서 프로그램이 종료가 안되고 계속 실행이 되는데 어디서 잘못된 걸까요혹시나 해서 옛날 switch로도 해봤는데 똑같이 무한실행이 되네요....
-
미해결스프링 핵심 원리 - 기본편
Qulifier을 위한 어노테이션 사용시 유지보수 비용
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 강의 내용 중 나온 애노테이션을 만들게 되면 Qualifier("mainDiscountPolicy") 부분을 제외한 다른 코드는 스프링의 Qualifier 코드를 복붙하여 어노테이션들(@Target, @Retention 등)을 참조해서 사용하게 되는데요. spring의 Qualifier 어노테이션이 변경될 때 선언해놓았던 모든 코드를 수정해야하고, 코드 중복이 많이 발생할 것으로 생각했씁니다. 즉, 이런 어노테이션이 수십개 된다면 유지보수 비용이 올라갈 것으로 생각이 되었습니다@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.TYPE, ElementType.ANNOTATION_TYPE}) @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented @Qualifier("mainDiscountPolicy") public @interface MainDiscountPolicy { } @Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.TYPE, ElementType.ANNOTATION_TYPE}) @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented @Qualifier("QualifierAnnotation1") public @interface QualifierAnnotation1 { } @Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.TYPE, ElementType.ANNOTATION_TYPE}) @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented @Qualifier("QualifierAnnotation2") public @interface QualifierAnnotation2 { } ... 사용해야하는 이유로 두 가지를 들어주셨는데요.해당 어노테이션이 참조되는 곳을 알 수 있다.mainDiscountPolicy 는 문자열이라 직접 치는 거보다 어노태이션이 낫다.위와 같은 이유라면 아래와 같은 Qualifier 전용 상수를 제공하여 해당 값을 사용하도록 하면, 언급한 두가지 이유도 동일하고 어노태이션 생성을 위한 불필요한 코드 중복 및 유지보수가 줄어들 거 같은데요.public class QualifierConst { public static final String MAIN_DISCOUNT_POLICY = "mainDiscountPolicy"; } // 사용하는 곳에서 @Qualifier(QualifierConst.MAIN_DISCOUNT_POLICY) 강의 중에 이야기하신 부분 외에 어노테이션을 실무에서 사용하는 다른 이유가 있을까요? 언급하신 이유와 어노테이션의 유지보수성을 고려했을때 Qualifier value들을 상수로 관리하는 것이 유지보수 비용이 더 적을 것으로 생각되어 질문 남깁니다.
-
미해결스프링 핵심 원리 - 기본편
OrderServiceTest 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.오류가 발생 하는데 어떤 이유인지 잘 모르겠습니다ㅠㅠㅠ
-
미해결스프링 핵심 원리 - 기본편
OrderServiceImpl return 값 오류
[질문 내용]return 값이 자꾸 오류가 발생합니다. springboot 버전은 3.1.7 이고 java 버전은 17입니다.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
다른게 계속 컴파일 됩니다ㅠㅠ
chap07을 열어서 실행시키는데 chap06에 08번이 계속 실행됩니다 어떤게 문제인지 모르겠어요!그래서 chap 06을 아예 빼고 실행 시키니까 chap06에 08을 찾지 못한다고 뜹니다!
-
해결됨스프링 핵심 원리 - 기본편
필드 주입을 사용하면 안되는 이유와 @Autowired의 관계
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의에서 의존관계 자동 주입의 방법 중 필드 주입의 방법은 스프링에 의존적인 방식이기 때문에 안티 패턴이므로 사용하지 말라고 하셨습니다. 제가 의문인 부분은 세가지입니다.강의 자료에 참고: 순수한 자바 테스트 코드에는 당연히 @Autowired가 동작하지 않는다. @SpringBootTest 처럼 스프링 컨테이너를 테스트에 통합한 경우에만 가능하다. 라고 적혀있는데, 이 말은 @Autowired 애너테이션을 사용한 의존성 주입 방법 자체가 스프링 의존적인건가요? 그게 아니라면 필드 주입이라는 방법 자체가 스프링 의존적인건가요? 만약 그렇다면 필드 주입 방법만 스프링 의존적인 이유가 따로 있을까요? 다른 방식들과 내부 동작 등에서 어떤 차이가 있는지 이해가 잘 가지 않아서요.만약 @Autowired 방법 자체가 스프링 의존적인 방식인거라면, 의존관계 자동 주입의 네 가지 방법 모두 스프링 의존적인 방식이므로 안티패턴이 되는것이 아닌가요? 왜 꼭 순수 자바 환경에서 테스트를 해야하나요? 스프링부트테스트는 스프링부트 환경에서 테스트할 수 있는걸로 알고있는데, 여기서 모든 테스트를 하면 되는 것 아닌가요??
-
미해결스프링 핵심 원리 - 기본편
섹션 7 옵션처리 부분 contextLoads() 오류
전체 test를 run하는 과정에서 java.lang.IllegalStateException: Failed to load ApplicationContext for [MergedContextConfiguration@6a48a7f3 testClass = hello.core.CoreApplicationTests, locations = [], classes = [hello.core.CoreApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], 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.WebDriverContextCustomizer@791cbf87, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@2b52c0d6, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@7de0c6ae, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@cf65451, org.springframework.boot.test.context.SpringBootTestAnnotation@f29fb3dd], contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:180) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:141) at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:97) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:260) at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:163) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) at java.base/java.util.Optional.orElseGet(Optional.java:364) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberServiceImpl' defined in file [/Users/asungkim/Desktop/My folder/My coding/core/out/production/classes/hello/core/member/MemberServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'hello.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:1354) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1191) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:561) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521) 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:975) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:960) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:625) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:762) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:464) at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) 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:1458) 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 'hello.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:1420) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789) ... 41 more이런 오류가 뜹니다 어떻게해결하나요
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
while문, for문 문제와 풀이1 짝수출력 풀이와 해답 차이
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]제가 풀이한 내용이랑 해답이랑 코드가 너무 다른데 괜찮은건가요? 출력 내용은 같긴 합니다.전에도 종종 달랐는데 출력 내용이 같으면 괜찮겠거니 하고 넘어갔는데 이번엔 너무 달라서 여쭤봅니다....ㅜ혹시 제 풀이에 잘못된 점이나 단점이 있다면 무엇인지도 알고 싶습니다. while문1. 제가 한 풀이package loof.ex; public class WhileEx2 { public static void main(String[] args) { int num = 1; while (num <= 10) { System.out.println(num*2); num++; } } } 2. 강의 해답 for문1. 제가 한 풀이package loof.ex; public class ForEx2 { public static void main(String[] args) { for (int num = 1; num <= 10; num++) { System.out.println(num*2); } } } 2. 강의 해답
-
해결됨김영한의 실전 자바 - 기본편
인텔리제이 맥 단축키
실행 단축키가 control+shift+R 로 알고있는데 저는 단축키가 안되더라구요..고치는방법 있을까요?