묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
빈 충돌,중복
강의 중에 빈충돌로 인한 코드를 잡는데 주석처리를 해도 잡히지가 않네요 강의에서는 잡혔는데 저는 왜 안잡히고 @Primary,@Qualifier 를 사용하라 하나요?memoryMemberRepository와 memberRepository라는 두 개의 MemberRepository 빈이 발견되었다는 오류가 뜹니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
빈 중복 충돌 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]2024-02-18T19:26:55.314+09:00 INFO 21364 --- [ restartedMain] jpabook.jpashop.JpashopApplication : Starting JpashopApplication using Java 17.0.3 with PID 21364 (C:\Users\HJ\Documents\GitHub\Spring-Study\out\production\classes started by HJ in C:\Users\HJ\Documents\GitHub\Spring-Study)2024-02-18T19:26:55.316+09:00 INFO 21364 --- [ restartedMain] jpabook.jpashop.JpashopApplication : No active profile set, falling back to 1 default profile: "default"2024-02-18T19:26:55.361+09:00 INFO 21364 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable2024-02-18T19:26:55.361+09:00 INFO 21364 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'2024-02-18T19:26:55.488+09:00 WARN 21364 --- [ restartedMain] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [jpabook.jpashop.JpashopApplication]2024-02-18T19:26:55.740+09:00 ERROR 21364 --- [ restartedMain] o.s.boot.SpringApplication : Application run failedorg.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [jpabook.jpashop.JpashopApplication] at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:179) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:416) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:289) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:118) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:788) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:606) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.2.jar:3.2.2] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.2.jar:3.2.2] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.2.jar:3.2.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.2.jar:3.2.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-3.2.2.jar:3.2.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-3.2.2.jar:3.2.2] at jpabook.jpashop.JpashopApplication.main(JpashopApplication.java:10) ~[classes/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) ~[spring-boot-devtools-3.2.2.jar:3.2.2]Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'memberRepository' for bean class [jpabook.jpashop.repository.MemberRepository] conflicts with existing, non-compatible bean definition of same name and class [jpabook.jpashop.MemberRepository] at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.checkCandidate(ClassPathBeanDefinitionScanner.java:361) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:288) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.annotation.ComponentScanAnnotationParser.parse(ComponentScanAnnotationParser.java:128) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:306) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:246) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:197) ~[spring-context-6.1.3.jar:6.1.3] at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:165) ~[spring-context-6.1.3.jar:6.1.3] ... 18 common frames omittedProcess finished with exit code 0 -----------------------------------------다음과 같은 에러코드를 받았습니다 위에 내용을 보면Annotation-specified bean name 'memberRepository' for bean class [jpabook.jpashop.repository.MemberRepository] conflicts with existing, non-compatible bean definition of same name and class [jpabook.jpashop.MemberRepository]해당 문구가 있는 것을 보고 같은 이름의 클래스가 2개 존재하여 bean이 중복되어 충돌이 일어난 것을 확인 하였는데 jpabook.jpashop.MemberRepository를 삭제했는데도 불구하고 해당 에러가 계속 발생합니다 왜일까요? ..존재하지 않는 사진 첨부하겠습니다.
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
create test 부분에서 시퀀스 문제가 있습니다.
단일 테스트는 문제 없지만 전체 테스트 진행 시테이블의 id의 시퀀스가 계속 증가 하는 문제로 jpa save 시 id 1에 저장하려는 문제가 발생하여user-service-test-data.sql -- insert into `users` (`id`, `email`, `nickname`, `address`, `certification_code`, `status`, `last_login_at`) -- values (1, 'kok202@naver.com', 'kok202', 'Seoul', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', 'ACTIVE', 0); -- insert into `users` (`id`, `email`, `nickname`, `address`, `certification_code`, `status`, `last_login_at`) -- values (2, 'kok303@naver.com', 'kok303', 'Seoul', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaab', 'PENDING', 0); insert into `users` (`email`, `nickname`, `address`, `certification_code`, `status`, `last_login_at`) values ('kok202@naver.com', 'kok202', 'Seoul', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', 'ACTIVE', 0); insert into `users` (`email`, `nickname`, `address`, `certification_code`, `status`, `last_login_at`) values ('kok303@naver.com', 'kok303', 'Seoul', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaab', 'PENDING', 0);post-service-test-data.sql -- insert into `users` (`id`, `email`, `nickname`, `address`, `certification_code`, `status`, `last_login_at`) -- values (1, 'kok202@naver.com', 'kok202', 'Seoul', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', 'ACTIVE', 0); -- insert into `users` (`id`, `email`, `nickname`, `address`, `certification_code`, `status`, `last_login_at`) -- values (2, 'kok303@naver.com', 'kok303', 'Seoul', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaab', 'PENDING', 0); -- insert into `posts` (`id`, `content`, `created_at`, `modified_at`, `user_id`) -- values (1, 'helloworld', 1678530673958, 0, 1); insert into `users` (`email`, `nickname`, `address`, `certification_code`, `status`, `last_login_at`) values ('kok202@naver.com', 'kok202', 'Seoul', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa', 'ACTIVE', 0); insert into `users` (`email`, `nickname`, `address`, `certification_code`, `status`, `last_login_at`) values ('kok303@naver.com', 'kok303', 'Seoul', 'aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaab', 'PENDING', 0); insert into `posts` (`content`, `created_at`, `modified_at`, `user_id`) values ('helloworld', 1678530673958, 0, 1);delte-all-data.sql delete from `posts` where 1; delete from `users` where 1; ALTER TABLE `users` ALTER COLUMN id RESTART WITH 1; ALTER TABLE `posts` ALTER COLUMN id RESTART WITH 1; 이와 같이 변경하였는데 혹시 다른 방법이 있을까요?
-
해결됨[2025 리뉴얼] 스스로 구축하는 AWS 클라우드 인프라 - 기본편
bastion host 사용을 위해 private instance에 보안 그룹 설정할 때
안녕하세요, 아래 강의를 듣다가 궁금한 점이 있어 글을 남깁니다. [실습] Bastion host와 NAT Gateway를 통한 Private EC2 인스턴스의 외부 통신 구성 위 내용에서 private subnet 에 private instance들을 생성할 때 방화벽(보안 그룹)을 새로 생성하여 ssh, https, http 를 모두 0.0.0.0/0으로 열어주셨는데요. (그리고 위 보안그룹 명을 private-ec2-sg로 정의) CIDR 블록 값인 0.0.0.0/0 으로 설정하지 않고 public instance 생성 당시에 같이 신규로 생성하였던 보안그룹 명인 public-ec2-sg로 지정해도 현재 실습의 내용과 동일한 내용이 맞을까요? private subnet 안에서 생성한 인스턴스는 public subnet에서 온 트래픽만을 허용하고(bastion host) 그 외의 접속은 불가능하게 하도록 보안그룹 설정을 할 때, 소스 부분을 public instance에 연결한 보안 그룹으로 연결한다는 내용을 보았는데,실습에서는 private용으로 신규로 생성하기에.. 둘이 결과적으로는 같은 내용인지 아닌지 궁금하여 질문드립니다 !
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
맥 h2 데이터베이스 사이트 연결 안됨
터미널에 나와있는 대로 입력 하고 localhost도 붙여서 쳐봤지만 연결이안됩니다 ㅠㅠ 어떻게 하면 될까요?
-
해결됨PM을 위한 데이터 리터러시(프로덕트 데이터 분석)
5-3. 카트 추가 횟수에서 시간간격을 안보는 이유
안녕하세요!5-3의 가설 1번에서 유저들은 2회 이내로 카트에 추가하고 있다는 데이터가 나왔습니다.이때 시간 간격을 봐도 애매하다고 언급해주셨는데 이는 2회 이상추가한 유저 수가 너무 적어 비교해도 의미가 없을지도 모른다는 뜻으로 생각해도 괜찮을까요? (어차피 여러번 카트에 추가하는 유저는 적다는 결론이 나왔으니)
-
미해결[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
nickname, age, city 데이터 안 보임
안녕하세요!다음과 같이 코드를 작성하고, 오류도 뜨지 않지만보여야 할 데이터가 보이지 않습니다..(메인 화면입니다.)뭐가 문젠가요?!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-H 질문있습니다.
while(e<n){ if(cnt[a[e]]==0){ cnt[a[e]]++; e++; } else{ ret+=(e-s); cnt[a[s]]--; s++; } }강사님 안녕하세요?else문에서 cnt[a[s]]-- 대신 cnt[a[e]]--로 하면 틀리는 이유를 모르겠습니다. 어차피 a[s]랑 a[e]는 똑같은 값이어서 어떤 것을 줄여도 맞아야하는거 아닌가요?http://boj.kr/b07dba8700854c70b5f4031fbd5239c1
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
해당 강의를 듣고있는 학생입니다.
강의를 기반으로 포트폴리오를 만들고있는데요. 파티를 만들어서 던전에 입장할때 하나의 새로운 Room으로 만들고그 Room에 들어온 파티원들을 새로운 던전Scene으로 이동시킬때. Unity에서 scene전환을 동기시킬 방법이 뭐가있을까 궁금하여 질문드립니다. 항상 좋은강의 올려주셔서 감사합니다.
-
미해결홍정모의 따라하며 배우는 C언어
이렇게 간단한 것도 구현 못하는 거면 심각한가요?
이중 for문 자체는 이해를 하고 있는데 아예 떠올리질 못했습니다...이런 경우엔 뭘 해야 하나요? 복습한다고 해서 의미가 있을까요?
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
에뮬레이터 실행 에러
안녕하세요. 강의를 듣다가 에뮬레이터를 실행하려는데 실행이 되지 않습니다.해결방안을 찾아보다 SDK Tools를 보는데 필수 도구들 중에 intel x86 Emulator (HAXM installer)가 없는 것을 알게 되었습니다. 이게 없어서 에뮬레이터 실행이 안 되는 것일까요? 해결방안을 아무리 찾아도 모르겠습니다...위의 사진이 계속해서 뜨는 에러입니다. 기존에 이미 있는 에뮬레이터 말고 다른 것을 실행시켜도 같은 에러가 뜹니다.
-
해결됨삼각형의 실전! OpenAI Triton 초급
실행을 위한 최적 환경
안녕하세요 hello_triton.py가 실행이 되지 않아 질문남깁니다 현재 cuda==11.8pytorch==2.1.2triton==2.1 의 환경을 사용하고 있습니다 hello_triton.py 실행 시 아래 오류가 뜹니다Traceback (most recent call last): File "/home/furiosa/Desktop/workspace/Triton/practice-triton/hello_triton.py", line 28, in <module> def hello_triton(): File "/home/furiosa/miniconda3/envs/triton/lib/python3.10/site-packages/triton/runtime/jit.py", line 542, in jit return decorator(fn) File "/home/furiosa/miniconda3/envs/triton/lib/python3.10/site-packages/triton/runtime/jit.py", line 534, in decorator return JITFunction( File "/home/furiosa/miniconda3/envs/triton/lib/python3.10/site-packages/triton/runtime/jit.py", line 433, in init self.run = self._make_launcher() File "/home/furiosa/miniconda3/envs/triton/lib/python3.10/site-packages/triton/runtime/jit.py", line 400, in makelauncher exec(src, scope) File "<string>", line 2 def hello_triton(, grid=None, num_warps=4, num_stages=3, extern_libs=None, stream=None, warmup=False, device=None, device_type=None): ^SyntaxError: invalid syntax triton==2.2 가 아니라 2.1을 사용하는 이유는, hello_triton.py 실행 시 아래 오류가 떴기 때문입니다RuntimeError: Triton Error [CUDA]: device kernel image is invalid 공식홈페이지에서 제공하는 01-vetor-add.py 같은 경우 실행이 잘됩니다triton을 사용하기 위한 최적환경은 무엇인지 별 설명이 없었던 것 같은데요어떤 cuda/pytorch 환경을 사용해야 오류가 가장 안나고 안정적인가요?위 오류는 왜 일어나고 어떻게 해결할까요? 인터넷에도 크게 도움되는 정보는 없어서 부득이 질문 남깁니다ㅠㅠ
-
미해결초보자를 위한 ChatGPT API 활용법 - API 기본 문법부터 12가지 프로그램 제작 배포까지
ch02 코드 에러 _ 신용카드 등록했음에도 'You exceeded your current quota ...' 에러가 발생합니다
안녕하세요 강사님좋은 강의 만들어주셔서 정말 감사합니다신용카드를 등록했음에도 불구하고 계속 같은 에러가 뜹니다. 지난번 어떤 분이 해당 에러 관련해서 글을 올려주셨고, 그것을 참고해 신용카드를 등록했음에도 같은 에러가 발생합니다 혹시 추가적으로 해야될 부분이 있는걸까요?
-
미해결개발자를 위한 쉬운 도커
CMD 부분에 질문이 있습니다.
CMD ["nginx" "-g" "daemon off;"] 이 부분이 잘 이해가 안가서 찾아보니foreground로 실행되게 변경하는것, 초기 프로세스가 종료되지 않고 컨테이너가 계속 실행된다.로 나와있던데이게 잘 와닿지가 않습니다.. 우선 저 명령어는 생성한 nginx 컨테이너에서 실행되는거라고 이해했는데foreground로 실행된다는게 정확히 어떤 뜻인가요?컨테이너도 도커가 켜져있고 안건드리면 계속 돌아가지 않나요?
-
해결됨스프링 핵심 원리 - 기본편
강의에서 21:36 쯤에
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]영한쌤께서 fieldInjectionTest 테스트 코드를 만드실 때, new OrderServiceImpl() 로 OrderServiceimpl 객체를 생성하잖아요? 여기서 해당 객체는 스프링 빈으로 등록된 OrderServiceImpl이 아닌 그냥 완전히 새로 생성된 자바 객체인 OrderServiceImpl 인거죠??
-
해결됨파이썬/장고로 결제 시작하기 (Feat. 아임포트) - 기본편
포트원 결제 payment_detail 이전 과정 문제
원래 잘 안올리고 다른 질문부터 확인하긴하는데, 몇 사례가 없어 찾아보기 힘들어 이렇게 요청드려요. 밑에 글이랑 비슷한데, order_check를 했을 때, 404(포트원에서 결제내역을 찾을 수 없습니다) 에러가 보입니다. 밑의 질문 답변처럼 order_pay.html에서 console.log를 찍어 확인해보려 해도, 콘솔창에 보이지 않네요... 어떻게 해결해야할까요?코드도 공유드립니다.order_pay.html {% block extra-script %} {{ payment_props|json_script:"payment-props" }} <script src="https://cdn.iamport.kr/v1/iamport.js"></script> <script> (function() { const IMP = window.IMP; const next_url = "{{ next_url }}"; IMP.init("{{ portone_shop_id }}"); const json_string = document.querySelector("#payment-props").textContent; const props = JSON.parse(json_string); IMP.request_pay(props, function(response) { // location.href = next_url; console.log(response); console.log(props); }); })(); </script> {% endblock %}views.py @login_required def order_pay(request, pk): order = get_object_or_404(Order, pk=pk, user=request.user) if not order.can_pay(): messages.error(request, "현재 결제를 할 수 없는 주문입니다.") return redirect("membership:order_detail", order.pk) # TODO: order_detail 구현 payment = OrderPayment.create_by_order(order) payment_props = { "pg": "uplus", "merchant_uid": payment.merchant_uid, "name": payment.name, "amount": payment.desired_valuation, "buyer_name": payment.buyer_name, "buyer_email": payment.buyer_email, "buyer_tel": str(request.user.phone_number), "buyer_addr": "성수이로 20길 16", "buyer_postcode": "04783", } return render( request, 'membership/order_pay.html', { 'portone_shop_id': settings.PORTONE_SHOP_ID, 'payment_props': payment_props, 'next_url': reverse('membership:order_check', args=[order.pk, payment.pk]), } )
-
미해결스프링 핵심 원리 - 기본편
3분 30초 경 오류 해결 부분
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 오류 로그 Failed to load ApplicationContext for [MergedContextConfiguration@65ae095c 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@4ef37659, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@306cf3ea, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@52102734, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@4d910fd6, org.springframework.boot.test.context.SpringBootTestAnnotation@930cd593], contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null]강의의 3분 30초 경 오류 코드를 수정하는 순서에서의 AutoAppConfig클래스의 3줄을 주석처리 하는 부분을 처리 하였는데도 오류가 떠서 GPT에 검색을 해보니까 주석 처리를 했는데도 memoryMemberRepository Bean이 두개가 등록이 되어있다고 나옵니다.AutoAppCofig 코드package hello.core; import hello.core.member.MemberRepository; import hello.core.member.MemoryMemberRepository; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.FilterType; @Configuration @ComponentScan( excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class) ) public class AutoAppConfig { // @Bean("memoryMemberRepository") // MemberRepository memberRepository() { // return new MemoryMemberRepository(); // } } MemberServiceImpl 코드package hello.core.member; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; @Component public class MemberServiceImpl implements MemberService{ private final MemberRepository memberRepository; @Autowired // ac.getBean(MemberRepository.class) 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; } }MemberService 코드package hello.core.member; public interface MemberService { void join(Member member); Member findMember(Long memberId); } MemoryMemberRepository 코드package hello.core.member; import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.Map; @Component public class MemoryMemberRepository implements MemberRepository{ private static Map<Long, Member> store = new HashMap<>(); @Override public void save(Member member) { store.put(member.getId(), member); } @Override public Member findById(Long memberId) { return store.get(memberId); } }
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
상품 등록 폼 조회 , 회원 가입 폼 조회 시의 차이
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]1. 상품 등록 폼 조회 코드@GetMapping("/add") public String addForm(Model model) { model.addAttribute("item", new Item()); return "items/addForm"; } 2.회원 가입 폼 조회 코드@GetMapping("/add") public String addForm(@ModelAttribute Member member){ return "members/addMemberForm"; }상품 등록 시에는 빈 Item 객체를 Model에 직접 지정해서 넘겼는데 , 회원 가입 시에는 @ModelAttribute를 통하여 자동으로 Member을 Model에 지정해서 넘겼습니다왜 Item에는 빈 Item 객체를 직접 모델에 담았고 Member에는 @ModelAttribute로 자동으로 처리되게 했는지 궁금하고 어떤 방식이 효율이 좋은지 궁금합니다!
-
해결됨도대체 왜? 도대체 어떻게! DB 설계와 데이터 다루기
[가상데이터 생성]
안녕하세요. 워크벤치로 하다보니 동일한 쿼리문에 에러가 나는 경우가 더러 있네요. 구글링으로 보완해가면서 테스트 중입니다. 카페 사용관련 가상데이터 설명 (21:06분) 내용 중에 '1일2회 이상 등록된 전화번호 및 결제일자를 삭제 하는 쿼리문 실행시, "" 요런 메시지가 나와서, 구글링을 해보니, 삭제시 자기 테이블을 조회할 수 없기 때문이라고 나와서 수정을 했는데요. 요렇게 하면 제대로 수행이 되는 것 같습니다. 근데 궁금한 건... 강의내용의 쿼리문은고객의 해당일자 전체를 삭제하는 것 같은데요.하루 최초 또는 마지막 건수를 남기고 나머지를 삭제하는 쿼리문을 좀 알 수 있을까요?
-
미해결스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션
import 오류
안녕하세요 프로젝트 생성 시 이렇게 오류가 뜨는데, 어떤 문제인지 모르겠어서 글 올립니다. 현재 jdk17 버전 사용중이고, 그래서 3버전으로 바꿨는데 jdk 11버전 다운로드와 2점대로 버전을 낮춰야하는건지 여쭤보려구요! build.gradle 사진도 첨부합니다. 추가 간단하게 web,devtools로도 테스트 프로젝트 생성해봤는데 똑같은 에러가 납니다ㅠㅠ 강사님 repo에 있는걸 clone 해서 연결해봐도 같습니다ㅠㅠ