월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결스프링 핵심 원리 - 기본편
NoSuchBeanDefinitionException 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]전체 테스트를 돌리면 @SpringBootTest 가 있는 파일만 계속 테스트를 실패합니다.처음에 빈 중복 오류가 떠서 AutoConfig MemberRepository부분을 중복 처리 해줬습니다.그 뒤부터 NoSuchBeanDefinitionException 이 발생하는데 이유를 모르겠습니다.AppConfig의 @Configuration 을 주석 처리해주면 AppConfig를 사용하는 테스트는 실패하지만 @SpringBootTest 는 성공을 합니다.근데 반대로 AutoConfig를 주석처리 해주면 NoSuchBeanDefinitionException 이 발생하면서 테스트가 실패하게 됩니다.구글 드라이브 링크 : https://drive.google.com/file/d/19IBnF5lB2F2pbS36CHo73stFQJMUhfdX/view?usp=sharing
- 미해결스프링 핵심 원리 - 기본편
자동주입 @Configuration
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]수동 주입을 사용하면 @Configuration을 설정 정보 클래스에 붙여줘야 싱글톤으로 유지된다고 배웠습니다. 자동 주입에서는 내부적으로 알아서 CGLIB 기술을 활용하여 싱글톤을 보장하는건가요?? 제가 생각하기에는 자동주입을 사용하는 경우에도 @Configuration 어노테이션이 예를 들어서 @ComponentScan이나 @Component 등 안에 들어가야 있을거 같은데 확인해보니까 없어서 약간 의아합니다.
- 미해결스프링 핵심 원리 - 기본편
자바빈 vs 스프링빈
자바빈 과 스프링빈은 용어에서 빈이라고 되어 있어서 헷갈리는데요, 그냥 다른 것이라고 생각하는데 더 나을까요?
- 미해결스프링 핵심 원리 - 기본편
다양한 의존관계 주입 방법에서 @Autowired시 객체 참조값 상이
생성자가 하나 일 때는 @Autowired가 없어도 자동으로 의존 관계가 주입 되어 객체가 생성된다는 것을 알고, 실제로 확인도 했습니다.궁금한 사항은, @Autowired가 있을 때는 고정으로 동일한 객체를 가져오는데 (지웠다 넣어도 619bfe29가 유지)memberRepository = hello.core.member.MemoryMemberRepository@619bfe29@Autowired를 삭제하면 다음과 같은 고정적인 객체 참조값을 가져옵니다. (넣었다 지워도 12dae582가 유지)memberRepository = hello.core.member.MemoryMemberRepository@12dae582새로 만들어지는 것이 아닌, @Autowired에 유무에 따라 다르지만, 왜 동일한 객체 참조 값을 유지할까요?
- 미해결스프링 핵심 원리 - 기본편
싱글톤 해결방안
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]싱글톤 문제를 해결하기 위한 방법으론 이번 강의에서 설명하는 상태를 무상태로 설계하는 방법, 스프링 고급강의에서 설명해주는 방식인 쓰레드 로컬도 싱글톤을 해결하기 위한 방법 중 하나인가요??
- 미해결스프링 핵심 원리 - 기본편
영상이 안 보입니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 제목 그대로 인데요mac에서 강의를 듣던중에 다음강의로 넘어가니 그이후 강의부터는 영상이 안 보입니다모바일로는 보이는데 pc로 보려면 어떻게 해야할까요?
- 미해결스프링 핵심 원리 - 기본편
main에서 코드실행시 gradle에서 빌드되는거같아요 ㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요강의잘듣고있습니다!Main에서 코드실행시 스프링 로딩되면서 로그가 보여야하는데, 뭔가 Gradle 실행된는것같아요구글링해서 찾아봣는데 해결법을 찾을수가없어서 질문드립니다!메인 실행시 아래 화면처럼 나옵니다!확인부탁드립니다!
- 미해결스프링 핵심 원리 - 기본편
UnsatisfiedDependencyException와 NoUniqueBeanDefinitionException의 차이점
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요 영한 쌤. @Autowired 시 동일한 타입의 빈이 2개 이상일 때를 확인하고 있던 중, 강의와는 다른 에러가 나와서 질문 드립니다. 강의에서는 현재 NoUniqueBeanDefinitionException 에러가 발생하고 있는데 저는 UnsatisfiedDependencyException 라는 에러가 발생합니다.NoUniqueBeanDefinitionException 의 경우에 동일한 타입의 빈이 중복으로 존재한다는 의미이고, UnsatisfiedDependencyException 의 경우에는 의존성이 들어오고 있지 않는 것이 문제라고 알고 있었습니다. 하지만 현재 매칭되는 빈이 2개라는 에러 메세지가 발생하며 UnsatisfiedDependencyException 에러가 발생했고, 두 에러의 차이점을 명확히 하고 싶어 문의를 드립니다. 두 에러가 같은 상황에서 혼용될 수 있는 에러인가요? org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'orderServiceImpl' defined in file [/Users/wooruk/workspace/younghan/spring/core/out/production/classes/com/hello/core/order/OrderServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 1: No qualifying bean of type 'com.hello.core.discount.DiscountPolicy' available: expected single matching bean but found 2: fixDiscountPolicy,rateDiscountPolicy
- 해결됨스프링 핵심 원리 - 기본편
assertThat() 인자값 질문있습니다.
assertThat() 메서드에 대해서 찾아 봤는데, 매개변수 이름이 actual(실제값) 이더라구요. 그리고 isEqualTo() 메서드의 매개변수 이름은 expected(기대값)이구요.그러면 assertThat() 메서드를 호출할 때 인자값으로 테스트하고자 하는 값을, 그리고 isEqualTo() 메서드는 테스트의 결과로 기대되는 값을 넘기는게 맞지 않나요?여기 아래 코드에서 memberService.findMember(1L)로 찾아온 회원(findMember)이앞서 직접 만들어서 join으로 넘긴 member와 같아야 하는 거니까Assertions.assertThat(findMember).isEqualTo(member)가 맞는거 아닌가요?
- 미해결스프링 핵심 원리 - 기본편
컴포넌트 스캔시 빈이름 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]컴포넌트 스캔시 빈 이름이 자동으로 구현된 클래스의 이름으로 설정되게 되는데요. 이 경우 DIP 위반과는 상관없는 건가요?? 예를 들어 memoryMemberRepository 처럼요.물론 타입으로 조회 시에는 MemberRepositoy.class로 조회가능하지만, 이름으로 조회시에는 클래스명(앞에 소문자)로 조회해야 되서요. 공부중 궁금해져서 질문 드립니다.
- 미해결스프링 핵심 원리 - 기본편
싱글톤 @Configuration
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]class StatefulServiceTest { @Test void statefulServiceSingleton() { ApplicationContext ac = new AnnotationConfigApplicationContext(TestConfig.class); StatefulService statefulService1 = ac.getBean(StatefulService.class); StatefulService statefulService2 = ac.getBean(StatefulService.class); // Thread A : A 사용자 10000원 주문 // statefulService1.order("userA", 10000); int userAPrice = statefulService1.order("userA", 10000); // Thread B : B 사용자 10000원 주문 // statefulService2 .order("userB", 20000); int userBPrice = statefulService2.order("userB", 20000); // Thread A : A 사용자 주문 금액 조회 // int price = statefulService1.getPrice(); // System.out.println("price = " + price); System.out.println("userAPrice = " + userAPrice); System.out.println("userBPrice = " + userBPrice); } static class TestConfig { @Bean public StatefulService statefulService() { return new StatefulService(); } } }이 코드에서 TestConfig는 @Configuration 어노테이션을 붙이지 않았는데 어떻게 싱글톤이 보장된건가요?
- 미해결스프링 핵심 원리 - 기본편
등록된 bean 2개 이상일때 타입의 명칭 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. basicScan Test시 아래처럼 조회된 bean 2개 이상실때 명칭을 달리하면 해결된다고 하셨는데요.OrderServiceImpl에서 아래처럼 DiscountPolicy 명칭을 rateDisCountPolicy로 수정 하면 위와 같은 동일한 이슈가 발생되는걸 확인 했습니다. 그래서 명칭의 대소문자를 @Component 통해 등록된 rateDiscountPolicy로 변경했더니 정상적으로 테스트가 진행 됬는데요. 이유가 뭔가요?타입 명칭을 등록된 bean 명칭과 동일하게 해야하는건가요?혼란이 와서요 오류난 코드정상 작동 코드
- 미해결스프링 핵심 원리 - 기본편
테스트실행시 에러 "No matching tests found in any candidate test task."
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]테스트실행시 이런오류가 뜨네요.
- 미해결스프링 핵심 원리 - 기본편
Execution failed for task ':CoreApplication.main()' 오류질문
Execution failed for task ':CoreApplication.main()'.> Process 'command 'C:\Program Files\Java\jdk-17\bin\java.exe'' finished with non-zero exit value 1이런 오류가 뜹니다. 처음에 gradel 이 IntelliJ 로 되어 있을 때 빨간 오류는 아니었지만 Parameter 0 of constructor in hello.core.member.MemberServiceImpl required a single bean, but 2 were found: - memoryMemberRepository: defined in file [C:\SpringStudy\core\out\production\classes\hello\core\member\MemoryMemberRepository.class] - memberRepository: defined by method 'memberRepository' in class path resource [hello/core/AppConfig.class] 이런 에러가 나서 gradel을 Gradle(Default) 로 변경하였더Execution failed for task ':CoreApplication.main()'.> Process 'command 'C:\Program Files\Java\jdk-17\bin\java.exe'' finished with non-zero exit value 1 이런 오류가 납니다. 어떤 부분을 수정해야 하는 걸까요??
- 미해결스프링 핵심 원리 - 기본편
java, spring, gradle 최신버전 사용하시는 분들 lombok 설정 방법(질문x)
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]질문은 아닙니다.강의 복습 도중에 최신버전 이슈로 인하여 lombok 설정시 이슈나는 분들에게 공유 드리고자 합니다. 작성자 개발 환경java ver.17spring boot ver.3.2.3gradle ver.8.5강의 내용을 따라하시다가 위와 같은 오류가 발생되는 분들은 gradle 최신 버전부터는 메소드명이 바뀌었기 때문이니 코드를 아래와 같이 설정하시고 gradle reload 하시면 정상적으로 적용되는거 확인 하실 수 있습니다. * 최신버전의 gradlecompile() 메소드 대신 implementation() 메소드를 사용으로 변경 조금이나마 도움되시길 바랍니다.
- 미해결스프링 핵심 원리 - 기본편
"싱글톤방식의 주의점"강의와 이번강의의 내용이 헷갈립니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]안녕하세요 예전 강의(싱글톤방식의 주의점 ) 에서 싱글톤객체 사용시 공유되는 전역변수를 사용하면 문제가 되므로 사용하면 안된다고 이해했습니다.(싱글톤객체는 여러 쓰레드에 의해 공유되므로 )이번 강의 에서 싱글톤객체의 필드에 프로토타입 스코프의 객체를 주입받아서 사용하는데 이 객체가 프로토타입스코프여서 문제가 되는게 아니라 해당 객체의 전역변수를 변경하는 로직이 문제가 되는거 아닌가요? 주입받는 객체가 프로토타입 스코프가 아니라 싱글톤스코프여도 여러스레드에 의해 공유되는 전역변수를 변경하는 로직이 문제가 되는건 아닌지요. 싱글톤사용시 공유되는 전역변수를 변경하는 로직을 사용하면 안되다고 이해했는데 이번강의 에서는 싱글톤 객체에 주입받는 객체가 프로토타입스코프여서 문제가 되는걸로 이해가 잘되질않아서요. 질문이 너무 두서가 없는것 같지만 해당부분이 잘이해가 안됩니다.ㅜ
- 해결됨스프링 핵심 원리 - 기본편
다른 요구사항에 대한 DiscountPolicy 설계 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요? 좋은 강의 감사한 마음으로 잘 듣고 있습니다. DiscountPolicy에 새로운 구현체를 추가하는 방법으로 유연하게 기능을 확장하는 예시를 잘 보았습니다. 그런 중 궁금한 점이, 지금 DiscountPolicy.discount 메서드는 Member형과 int형을 매개변수로 받고 있습니다.그런데 만약 다른 형의 자료가 필요한 discountPolicy를 만드려면 어떻게 설계하는 것이 좋을까요?예를 들어 itemName(String)을 기반으로 하는 할인 정책이 필요한 경우라면 어떻게 변경하는 것이 좋을지 궁금합니다. 제가 생각한 것은1) Generic DiscountPolicy 인터페이스를 만든다? public interface GenericDiscountPolicy<T> { int discount (T type, int price); } 2) 인터페이스 서명을 바꾼다?public interface DiscountPolicy { int discount (Member member, String itemName, int price); } 1) Generic으로 인터페이스를 만들면 interface를 사용하는 client에서 generic type을 지정해야 해서 다른 변경에 유연하지 않아 보입니다.2) 새로운 할인 정책 요소가 생길 때마다 매개 변수를 계속 늘리는 것은 바람직하지 않아 보입니다. 다형성을 이용한 유연한 설계라는 주제에 조금 벗어나는 것 같지만 유연하게 설계하기 위해 어떻게 객체지향 원리를 적용할 수 있는지 궁금합니다. 오늘도 좋은 하루 보내시길 바랍니다. 감사합니다! 🙏
- 미해결스프링 핵심 원리 - 기본편
clientBean 은 프로토타입 빈의 참조값을 보관하는거 있잖아요
ApplicationContext ac = new AnnotationConfigApplicationContext(ClientBean.class, PrototypeBean.class); ClientBean clientBean = ac.getBean(ClientBean.class); clientBean 이 prototypeBean 을 바로 참조하는게 아니라clientBean 에 생성된 prototypeBean 참조하면 그 안에생성 시점에 주입 받은 참조 값을 참조하는 건가요?맞나요? 헷갈려요 ㅠ
- 미해결스프링 핵심 원리 - 기본편
초기화 관련 질문
강의 자료 중 초기화에 대한 언급이 나와서 완벽한 감이 안잡혀서 질문을 드립니다.강의 영상 중 초기화는 객체가 일을 시작하는 것이라고 하셨는데 이 일을 시작한다는 말이 정확하게 와닫지 않아서 질문을 드립니다,, 감사합니다..
- 해결됨스프링 핵심 원리 - 기본편
UnsatisfiedDependencyException에러가 안잡힙니다.
[질문 내용]여기에 질문 내용을 남겨주세요.https://drive.google.com/file/d/1fuxg2PcUZOT1bxTbwcTS5ZLdbO-Iz_M5/view?usp=drive_link현재 제 프로젝트 압축파일을 구글 드라이브에 업로드했습니다. 현재 듣고 있는 강의는 섹션7. 조회한 빈이 모두 필요할 때, List,Map입니다.듣고 있는 부분은 8분34초 입니다. https://www.inflearn.com/questions/1089023/이 답변을 참고해서 해결방안 2, 해결방안 3을 모두 적용해봤지만 오류가 해결되지 않고있습니다.어떤작업을 해야할까요..?