묻고 답해요
131만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
컴포넌트스캔사용에 대해서
탐색 위치와 기본 스캔 대상에 대해서 강의를 듣다고 궁금한게 생겨서 글을 남겼습니다SpringBootApplication이 @ComponentScan을 가지고 있고 저희가 사용할려는 Config도 같은 위치에 있으면 굳이 @ComponentScan을 달아주지않아도 컴포넌트스캔은 동작하지않는거랑 만약에 같은 레벨의 위치에서 두개가 있다면 충돌이 발생할 것같은데 테스트 코드에서는 문제가없었습니다 혹시 그이유는 new AnnotationConfigApplicationContext(AutoAppConfig.class);위의 코드처럼 AutoAppConfig.class라고 지정해서 일까요?? 그러면 이경우에는 CoreApplication은 사용되지않고 AutoAppConfig만 사용해서 동작하는 걸까요?
-
해결됨실전! 스프링 데이터 JPA
@Query문
jpashop 프로젝트에서 OrderRepository를 criteria 부분은 스프링데이터jpa로 바꿔보려하는데 @Query(“select o from Order o join o.member m)List<Order> findByMemberName(); 이렇게 작성한다면 Order를 멤버 이름으로 조회 할 수 있을까요??
-
해결됨김영한의 실전 자바 - 기본편
상속에서 생성자는 오버라이딩이 안됨
상속강의에서 생성자는 오버라이딩이 안된다고 하셨는데 그 이유를 알수있을까요?제 생각으로는 오버라이딩은 부모-자식관계에서 부모가 가지고있는 클래스의 정보(필드,메서드)를 넘겨주는거라면 생성자는 객체를 생성하는것이기 때문에 부모의 객체정보인 참조값을 자식에게 넘겨준다고 생각하면 말이안된다고 생각합니다. 이게 아니라면 다른이유가 있을까요?
-
미해결[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문
Add Call to Parent Func 궁금하게 있습니다.
Knight의 EventTick함수가 호출될 때 Creature의 EventTick이 호출되고 Knight의 EventTick함수가 호출 되던데,add call to parent func를 호출할 필요가 있나요??
-
미해결파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
쥬피터 노트북 vs 코렙
강의를 이제 막 듣기 시작했어요강의를 듣기전에는 제가 코렙을 이용해서 파이썬 공부를 조금 했었는데 코렙을 그대로 사용하는게 좋을까요 아니면 쥬피터 노트북으로 바꾸는게 좋을지 고민이 됩니다. 장 단점을 알려주시고 추천해 주실수 있으신가요?
-
해결됨AWS Certified Solutions Architect - Associate 자격증 준비하기
안녕하세요, 질문이 있습니다.
안녕하세요, 회사에서 화이트리스트에서 특정 웹 사이트를 추가해야해서IP로 화이트리스트에 추가해야한다고 했을 때, 로드밸런서나 어떤 방법(컨테이너 서비스 등)으로 상대방의 웹 사이트에 접속할 때마다 IP가 바뀌어 화이트 리스트가 제대로 작동하지 않는 경우는 어떻게 해야 하나요? 일일이 생기는 IP를 모두 화이트리스트에 등록을 해야하는지요? 고맙습니다.
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
14장 Pipeline 실습 질문있습니다.
40번째 ~ 46번째 라인인 시프트 레지스터 구현을 Concat syntax 사용해서 구현하셨는데 매 cycle 마다 shift left 된다고 하셨습니다.그런데 구현하신 시프트 레지스터는 Right shift register로 보이는것 같아서요.벡터값이 3 2 1 0 이런식으로 가서 shift left 된다고 표현하신건가요 ??물리적인 배치와 시뮬레이션 값이랑 잘 매칭이 안되고 있습니다 ㅠㅠ해당 사진의 출처는 HDLBits Exams/m2014 q4k 이고 문제의 솔루션도 맛비님이 제공해주신 14강 실습 파일과 동일한 로직을 가지고 있습니다.즉 질문하고 싶은것은 Shift left가 아니라 Shift right가 맞지 않나요 ??레지스터를 어떻게 배치하냐에 따라서 Right left 다르게 할 수 있나요?? 라고 조심스럽게 질문드려봅니다..
-
해결됨스프링 핵심 원리 - 기본편
컴포넌트 관련 질문있습니다.
기존 스프링 빈 방식으로 등록을 하면 등록해야 할 스프링 빈이 수십,수백개가 되어 일일이 등록하기가 귀찮고, 설정 정보도 커지고 누락하는 문제가 발생하여 컴포넌트 방식을 사용한다고 배웠습니다. 그런데 컴포넌트 방식도 사용하려고 하면 @Component와 의존 관계 주입인 @Autowired를 넣어줘야 하는데, 동일한 문제가 발생하는게 아닌지 궁금합니다. 2.excludeFilters로 @Configuration 어노테이션이 붙은 클래스를 제거해주고 있는데, 앞서 정의했던 AppConfig 때문인가요? 만약 AppConfig가 없다고 가정하면 excludeFilters를 굳이 삽입하지 않아도 되는지 궁금합니다.@Autowired 과정이 getBean(MemberRepository.class)와 동일하다고 하는데, 이해가 가지 않습니다. 필터 부분 코드가 전체적으로 이해가 가지 않습니다.package hello.core.scan.filter; import java.lang.annotation.*; @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface MyIncludeComponent { }여기서 target,retention,documented가 어떤 역할을 하는건가요?package hello.core.scan.filter; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.FilterType; import static org.assertj.core.api.Assertions.assertThat; import static org.springframework.context.annotation.ComponentScan.Filter; public class ComponentFilterAppConfigTest { @Test void filterScan() { ApplicationContext ac = new AnnotationConfigApplicationContext(ComponentFilterAppConfig.class); BeanA beanA = ac.getBean("beanA", BeanA.class); assertThat(beanA).isNotNull(); Assertions.assertThrows( NoSuchBeanDefinitionException.class, () -> ac.getBean("beanB", BeanB.class)); } @Configuration @ComponentScan( includeFilters = @Filter(type = FilterType.ANNOTATION, classes = MyIncludeComponent.class), excludeFilters = @Filter(type = FilterType.ANNOTATION, classes = MyExcludeComponent.class) ) static class ComponentFilterAppConfig { } } 여기서도 beanA가 왜 추가되고, beanB가 왜 포함되지 않는지 궁금합니다.
-
미해결Practical Testing: 실용적인 테스트 가이드
테스트를 위한 테스트쿼리 작성시 궁금증
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. 현재 자바 백엔드 개발자입니다. 현재 마이바티스로 테스트 코드를 짜려고하는데 검증할 쿼리는 어떤 테이블의 특정 버전의 가장 높은 버전을 가져오는 쿼리로 그 특정버전으로 정렬을 시키고 top(1)을 사용해서 가져오게하는 쿼리로 짜놓은 상태입니다. 그러면 이걸 테스트를 하려고하면 셀렉트 쿼리를 하나 더짜서 그 특정버전에 max()를 사용해서 값으로 가져온 후 검증을 하는 방법이 떠오르는데요 그러면 이런 또하나의 쿼리가 생기는데 또하나의 쿼리가 잘 못 된다면 그 테스트의 경우가 잘못되는것을 말하는데 이런 상황에서 어떻게 하셨는지 궁금합니다
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
강의자료요청드립니다
강의자료 요청드립니다wldms9412@naver.com 입니다!
-
미해결핸즈온 리액트 네이티브
에뮬레이터가 안켜지는데 없이 강의를 진행해도 되나요?
에뮬레이터가 안켜지는데 에뮬레이터없이 강의를 진행해도될까요? expo go 어플을 통해서 휴대폰과 연결은 되어있습니다. 현재 리액트네이티브 페이지에서 설명하는 버전을 설치하고 실행을 해봤고 강의내용과같은 버전에서 실행을 해봤으나 에뮬레이터가 실행되다가 꺼지거나 Android Emulator closed unexpectedly 이런문구가 뜨던가, 실행이 되어있다가 npx expo 를 실행해서 안드로이드를 연결하려고 하면 꺼지고 있습니다. 문제점을 검색해봤을때 저장공간이 부족할때도 있다고 하던데 2GB정도만 있어도 괜찮다고하여 문제는 아닌것같고, 환경변수를 찾아보았지만 sdk manager의 주소와 일치하였습니다, 또 system image를 확인해서 강의내용과 똑같이 설치했음을 확인했습니다. 이 과정을 버전을 다를때 두번다 체크했습니다.
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
rv이 할때 에러가...
package com.bokchi.mysolelife.contentsList import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import androidx.recyclerview.widget.RecyclerView import com.bokchi.mysolelife.R class ContentListActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_content_list) val rv : RecyclerView = findViewById(R.id.rv) //여기 R.id.rv이 할때 rv가 에러가 나요 val items = ArrayList<String>() items.add("a") items.add("b") items.add("c") val rvAdapter = ContentRVAdapter(items) rv.adapter = rvAdapter } }왜 에러가 나는걸까요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
설치오류
재설치 하는데LibXtst.so 다운받으면 될까요? =================현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
기본 키 매핑 35:18초
====[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]여기에 질문 내용을 남겨주세요.기본 키 매핑 35:29초member1,2,3이 들어가서 시퀀스가 3개인데 왜 현재값이 51인가요?
-
미해결프로그래밍, 어떻게 공부할 것인가
이게 강의에서 말한 이터레이션 (V0.0 -> V0.1 -> V0.2 ---> V1.0) 식의 개발인가요?
아래와 같이 개발하면 강사님이 말씀하신 이터레이션적 개발인가요?나의예시) PDF 출력 저장 프로그램계획을 세운다- 1차 입력값 분석 (입력 데이터 특징 파악)- 예상 결과 분석입력값중 1개의 샘플을 고정값으로 해서 핵심 비즈니스 로직만 작동하는 프로그램 만들다. PDF 출력 저장 (V0.0)입력 데이터를 다시 분석하여 특징을 잡아낸다.다양한 입력데이터에 대해 작동하는 프로그램 만들다. (V0.3)발생가능한 예외사항 분석한다.예외처리한다. (V0.7)사용자가 실수할수 있는 부분 분석한다.실수를 방지하던지 실수를 인지할수 있게 해준다. (V1.0)
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
프로듀서, 컨슈머 애플리케이션, 그 외 몇가지 궁금한게 있습니다.
안녕하세요.강사님의 강의를 듣고, 이제는 강사님 책을 보고 있습니다. 실제 상용에서 애플리케이션을 개발할 때 궁금한 점이 있습니다. 첫번째로 프로듀서 애플리케이션 입니다.강사님의 책에서 봤듯이, 스프링을 사용합니다.예를 들어 저는 사용자 서비스에서 디비 트랜잭션(스프링에서 @Transactionl)을 사용하여 사용자 디비에 저장을 성공 후 프로듀서를 사용하여 레코드를 브로커에 보내야 한다고 생각합니다.밑에 코드를 간략하게 작성하였는데, 저렇게 되면 디비는 롤백됬지만 토픽에 레코드가 저장된 상태가 될 수 있다고 생각합니다.혹시 실무에서 커밋이 성공 후에 프로듀서 레코드를 전송하는 방법을 어떻게 하는지 간략한 코드가 궁금합니다.개인적인 생각은 UserService 클래스 상위 클래스로 카프카 프로듀서 처리하는 클래스를 만들어서 처리를 하는건지.. 궁금합니다.(이렇게 되면 카프카를 위한 래퍼 클래스가 항상 생기게 되는 불편함이 있는 것 같기도 하고요.. // 제가 생각하기에 잘못된 방법? // 만약 레코드 전송 후 어떤 이유로 에러가 발생하면, 디비에 저장된 데이터를 롤백되지만 // 프로듀서 레코드는 브로커 전송이 되버림 public class UserService { @Transactionl public void save(){ ... 프로듀서 레코드 전송 코드 ... 예외 발생 } } ----------------------- // 개인적인 생각 public class KafkaServce { public void save(){ userService.save(); 프로듀서 레코드 전송 코드 } } public class UserService { @Transactionl public void save(){ ... } } 두번째로 컨슈머 애플리케이션 개발 시 궁금한 점이 있습니다.컨슈머에서 데이터 처리를하다가 어떤 이유로 에러가 발생하여 해당 레코드 처리를 계속 실패했다고 가정합니다.그럴 경우 이 레코드의 대한 커밋 처리를 어떻게 해야할지가 궁금합니다.커밋을 처리하지 않으면, 다음 레코드 처리를 하지 못하는거라 생각되는데.. 어떤 방법으로 풀어내는지가 궁금합니다. 세번째로 컨슈머 애플리케이션에서 데이터베이스의 데이터를 저장해야하는 상황이다.스프링을 사용하는 경우 기본적으로 히카리 커넥션 풀에 커넥션 10개를 생성합니다.만약 파티션이 10개여서, 컨슈머를 10개 실행해야 한다면, 스프링 커넥션 풀을 사용하면 100개의 커넥션이 연결됩니다.50개면 500개의 풀 계속 증가할 듯 싶네요.이 경우 어떻게 해야할까요?컨슈머에서 레코드들을 for 문으로 돌리기 때문에 커넥션 풀을 1개를 사용해서 개발하는게 맞는건지?아니면 스프링에서 제공하는 히카리 커넥션 풀을 사용하지 않고, 직접 커넥션 풀을 구현하든가, 그것도 아니면 커넥션 풀을 사용하지 않고 1개의 트랜잭션당 1개의 커넥션을 생성 후 해제를 해야할까요?강사님의 생각이 궁금합니다. 마지막으로 궁금한게 있습니다.혹시 카프카를 활용하여 MSA에서 보상 트랜잭션(사가 패턴 - Orchestration) 처리를 할 수 있는건지 궁금합니다.
-
해결됨실전! 스프링 데이터 JPA
Setter 대신 생성자 방식과 @Builder 방식의 선호도
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)아니오3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]강의를 듣다보면 편의를 위해 setter를 이용해 데이터를 수정하는데 저는 실제로 사용하지 않는 것이 좋다고 들어 생성자를 따로 생성해 강의를 진행하고 있습니다. 그러다보니 생성자 개수가 늘어나 관리? 하기 어려워져 다른 방법을 찾아보던 중 @Builder를 통해 처리하는 방법을 알게되었는데 실제 프로젝트에서는 어떤 방법을 이용하는 것이 좋은건지 궁금합니다
-
해결됨언리얼로 만드는 게임사운드 - 중.고급 과정
On Finish out 에 Warning이라는 경고는 상관없나요?
안녕하세요~또 질문이 있습니다^^ 메타사운드 롤 제작된 예제중에 마지막 On Finish out 노드에 Warning이라는 경고가 떠 있는데 이거는 상관없는건가요?waveplayer애서 연결해주면 warning이 사라지긴하는데..복수의 Wave player를 믹서로 연결했을 경우는 Warning을 없애는 방법이 없는 건지? 아니면 걍 놔둬도 되는건지 궁금합니다~
-
미해결스프링부트 시큐리티 & JWT 강의
authenticationManager 관련 질문입니다.
안녕하세요 늘 좋은 강의 올려주셔서 감사합니다.authenticationManager 파라미터 전달 부분에서 문제가 있어 이렇게 게시글 남깁니다!새로 올려주신 소스코드를 보며 새로 업데이트된 시큐리티에서 사용하기위해 authenticationManager 를 파라미터로 전달하는 부분을 적용하였습니다 그런데Authentication authentication = authenticationManager.authenticate(authenticationToken);부분에서 loadbyUsername() 함수를 호출하지 못하고 있습니다... JwtAuthenticationFilter// 유저네임 패스워드 토큰 생성 UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken( loginUser.getUsername(), loginUser.getPassword() ); System.out.println("JwtAuthenticationToken : 토큰생성완료"); // authenticate() 함수가 호출 되면 인증 프로바이더가 유저 디테일 서비스의 // loadUserByUsername(토큰의 첫번째 파라메터) 를 호출하고 // UserDetails를 리턴받아서 토큰의 두번째 파라메터(credential)과 // UserDetails(DB값)의 getPassword()함수로 비교해서 동일하면 // Authentication 객체를 만들어서 필터체인으로 리턴해준다. // Tip: 인증 프로바이더의 디폴트 서비스는 UserDetailsService 타입 // Tip: 인증 프로바이더의 디폴트 암호화 방식은 BCryptPasswordEncoder // 결론은 인증 프로바이더에게 알려줄 필요가 없음. Authentication authentication = authenticationManager.authenticate(authenticationToken); System.out.println("authentication : authentication 생성 완료"); PrincipalDetails principalDetails = (PrincipalDetails) authentication.getPrincipal(); System.out.println("Authentication : " + principalDetails.getUser().getUsername()); return authentication;SecurityConfig@Configuration @EnableWebSecurity @RequiredArgsConstructor public class SecurityConfig { private final CosConfig cosConfig; @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { AuthenticationManager authenticationManager = http.getSharedObject(AuthenticationManager.class); http.csrf(csrf -> csrf.disable()); http.sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)); http.addFilter(cosConfig.corsFilter()); // cors 허용 설정 http.addFilterBefore(new MyFilter3(), SecurityContextPersistenceFilter.class); http.formLogin(login -> login.disable()); http.httpBasic(basic -> basic.disable()); http.addFilter(new JwtAuthenticationFilter(authenticationManager)); http.authorizeHttpRequests(request -> request.requestMatchers("/api/v1/user/**") .hasAnyRole("USER", "MANAGER", "ADMIN") .requestMatchers("/api/v1/manager/**") .hasAnyRole("MANAGER", "ADMIN") .requestMatchers("/api/v1/admin/**") .hasRole("ADMIN") .anyRequest().permitAll() ); return http.getOrBuild(); } 와 같이 SecurityConfig를 업데이트된 Spring Security 독스를 보고 선생님께서 강의해주신 내용대로 만들어보았습니다.터미널에서는JwtAuthentication Filter : 로그인 시도중 JwtAuthenticationFilter : UserEntity(id=0, email=null, password=qwer1234, username=ssar, role=null, createDate=null) JwtAuthenticationToken : 토큰생성완료와 같이 JwtAuthenticationToken : 토큰생성완료 까지는 정상적으로 되는걸 확인하였습니다.이후 loadByUsername() 부분에 따로 출력을 찍어 확인한결과 호출이 안되는걸 확인했습니다.@Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { UserEntity userEntity = this.userDao.findByUsername(username); System.out.println("================ loadUserByUsername ================"); System.out.println(userEntity); System.out.println("---------------- loadUserByUsername -----------------"); return new PrincipalDetails(userEntity); } 어떤 부분이 잘못되어서 그런건지 찾지 못하여 게시글 남깁니다! 늘 좋은강의 감사합니다! 개인적으로 문제점이 된다고 생각한 부분AuthenticationManager authenticationManager = http.getSharedObject(AuthenticationManager.class);에서 authenticationManager를 받는 부분이 제대로 안되는것 같습니다... 추가로 SecurityConfig 에서 authenticationManager 부분을 로그로 찍어본 결과 null 출력되는걸 확인했습니다... authenticationManager부분이 생성이 안되는걸까요?
-
미해결스프링 핵심 원리 - 기본편
테스트 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'orderServiceImpl' defined in file [C:\Users\kyoun\OneDrive\바탕 화면\개발\core\out\production\classes\hello\core\order\OrderServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'hello.core.member.MemberRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} 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.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:93) at hello.core.scan.AutoAppConfigTest.basicScan(AutoAppConfigTest.java:14) at java.base/java.lang.reflect.Method.invoke(Method.java:578) 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.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.core.member.MemberRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1878) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1404) 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) ... 17 moreProcess finished with exit code -1이렇게 오류가 뜨는데 뭐가 문제일까요?