========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 의존관계 자동 주입 부분 강의듣고 있는데요 생성자 주입이랑 수정자 주입부분 설명하실때 코드에 this.memberRepository = memberRepository; 이런 코드가 존재하는데 이는 필드값을 변경하는거 아닌가요?? 싱클톤 컨테이너 강의에서 싱글톤 방식의 주의점에서 특정 클라이언트가 값을 변경할수 있는 필드가 있으면 안된다고 하셨는데 그러면 위의 코드처럼 쓰면 안되는거 아닌가요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] springio에서 첫번째 사진처럼 설정한 후 인텔리제이로 실행하니 두번째 사진과 같은 오류가 뜹니다. 자바도 11버전으로 다운받았고 환경 변수까지 설정했습니다. 뭐가 문제일까요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 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. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 강의에서 @Component 에노테이션이 붙은 클래스들을 찾아 빈(bean)으로 등록을 한다고 말씀하셨습니다. 이때, 각각의 클래스들이 빈(bean, 자바 개념으로는 객체)로 등록이 되어 관리가 된다는 것까지는 이해가 됐습니다. 근데 AutoAppConfig 클래스는 무엇인가요?? 이 클래스는 다른 클래스들을 관리하는 빈으로 생각하면 되는건가요?? 설명 부탁드립니다. 더위 조심하세요
자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 2(마스터편)
안녕하세요 수업 중간에 선생님께서 헬프를 연다?라고 하시면서 메소드에 대고 단축키를 눌렀더니 자바 사이트로 이동해서 관련 메소드에 대한 정보를 보시던데 어떤 키를 눌렀는지 궁금합니다. 참고로 인텔리제이 쓰고 있습니다. 구글에 검색해서 알고 싶은데 뭐라고 검색해야 나오는지 몰라서 그냥 여기다가 질문올려봅니다.
안녕하세요. 강의를 듣고 공부해보고 있는 개발자입니다. 일단 너무 감사하게 잘 듣고 있습니다. 이런 강의는 잘 없어서 나쁜 구조(클래스 중복, 날로 해버리는 코드)로만 유지보수를 해오고 있었었고 개선하고 싶은 생각이 많이 들었거든요. PHP에 숨겨진(잘모르는) 기능도 알아가게 되서 무한 감사합니다. 다름이 아니라 nginx 를 사용해서 쓰고 싶은데 잘 작동하지 않는 것 같아 질문드립니다. php -S localhost:8080 -t public 커맨드를 이용했을 땐, 크게 문제가 없는 상태입니다. 한 가지 예로 nginx에 연동하면 라우팅 쪽이 원하는대로 작동되지 않습니다. get '/call' 에서 resource/call.php 를 호출해서 echo 'call' 을 실행시키게 해두었는데 get '/call' 시, / 의 resource/index.php 내의 echo 'hello World' 가 출력이 되고 있어서 어떤 것을 확인하면 좋을지 몰라 질문드립니다. nginx에 설정에 문제로 생각이 들긴하는데, 잘 모르겠습니다. PHP는 8.1을 사용하고 nginx설정은 다음과 같습니다. server { listen 80; listen [::]:80; root /var/www/html/app/public; index index.php; server_name localhost; error_log /var/www/html/log/nginx/error.log; access_log /var/www/html/log/nginx/access.log; charset utf-8; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/run/php/php8.1-fpm.sock; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } }
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 의존관계 자동 주입 강의에서 수정자 주입 부분 설명하실때 setMemberRepository 와 setDiscountPolicy 메서드에 print문 작성하고 테스트 돌리면 set메서드를 호출하지 않았는데 어떻게 print문도 출력이 되는건가요?? OrderServiceImpl 을 빈으로 등록할때 거깄는 메서드까지 다 호출하는건가요??
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] fixDiscountPolicy에 @MainDiscountPolicy를 붙이고 OrderServiceImpl 생성자에서 동일하게 public OrderServiceImpl(MemberRepository memberRepository, @MainDiscountPolicy DiscountPolicy discountPolicy) 라고 주입을 했습니다. 하지만 에러가 나는데 아래와 같이 납니다. No qualifying bean of type ' hello.core.discount .DiscountPolicy' available: expected single matching bean but found 2: mainDiscountPolicy,rateDiscountPolicy 보면 fix가 아닌 mainDiscountPolicy와 rateDiscountPolicy를 찾았는데요. 어디에 코드를 놓쳤을까요? 영상 두번 돌려봐도 도저히 다른점을 모르겠어요.
제가 JVM이 어떠한 구조인지 잘 모르겠는데 JVM에 새로운 객체들을 계속 생성하는 메모리 문제는 Java(JVM) 만의 문제인가요? 아니면 다른 언어들도 예를 들면 자바스크립트의 prototype, 파이썬에서도 Class로 객체를 만들 수 있고 go언어는 struct 로 객체를 만들 수 있는데 이러한 것들도 스프링처럼 싱글톤으로 관리해주는 프레임워크가 없으면 메모리가 가득 차게 되나요? 그러면 웹 어플을 만든다고 할 때 가능하면 객체들은 싱글톤 패턴으로 개발해야 좋은 건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요 MemberServiceImpl.java MemoryMemberRepository.java AppConfig.java Parameter 0 of constructor in hello.core.member.MemberServiceImpl required a single bean, but 2 were found: - memoryMemberRepository: defined in file [C:\Users\cksgu\Spring\스프링 핵심 원리 - 기본편\core\core\out\production\classes\hello\core\member\MemoryMemberRepository.class] - MemberRepository: defined by method 'MemberRepository' in class path resource [hello/core/AppConfig.class]. CoreApplicationTests를 실행하면 위와 같은 오류가 나는데 뭐가 문제일까요? 제가 생각하기에는 스프링 컨테이너 내에 있는 MemberRepository 타입의 빈이 여러 개가 있어서 그런 것 같은데 맞나요? 제가 생각하는 스프링 빈이 등록하는 과정과 충돌 되는 이유는 다음과 같습니다. @Bean으로 인해 이름이 MemberRepository인 MemoryMemberRepository를 빈으로 등록 (처음에는 앞 글자가 소문자인 memberRepository 이름으로 등록 되는 줄 알았는데 출력을 해보니 MemberRepository 이름 그대로 저장되는 것 같아요.) @Component으로 인해 이름이 memoryMemberRepository인 MemoryMemberRepository를 빈으로 등록 3. MemberServiceImpl에서 @Autowired으로 생성자 주입을 하기 시작함. 생성자 매개변수가 MemberRepository 타입이므로 MemberRepository 타입과 일치하는 빈을 스프링 컨테이너에서 찾아서 주입한다. 그러나 일치하는 빈이 여러 개 있으므로 충돌이 남... 혹시나 해서 AppConfig.java 내에 있는 MemberRepository() 함수를 앞 글자가 소문자인 memberRepository() 함수로 바꿔서 실행하면 잘 동작하는데 왜 그런지 알 수 있을까요? MemberRepository() 함수 이름이 MemberRepository 타입의 이름과 일치하면 안되나요? 빈 이름만 바꿨을 뿐 타입이 일치하는 빈이 스프링 컨테이너에서 여전히 여러 개일 텐데 왜 오류가 날지 않는지 궁금합니다. ============== 자답 =============== @Autowired 매칭 정리 1. 타입 매칭 2. 타입 매칭의 결과가 2개 이상일 때 필드 명, 파라미터 명으로 빈 이름 매칭 한다고 합니다. @Bean으로 인해 이름이 MemberRepository인 MemoryMemberRepository를 빈으로 등록 @Component으로 인해 이름이 memoryMemberRepository인 MemoryMemberRepository를 빈으로 등록 MemberRepository 타입과 일치하는 두 개의 타입을 찾았고, 그중에서 MemberServiceImpl 생성자 파라미터 명 memberRepository과 일치하는 빈이 없으므로 오류가 나는 것 같습니다.
안녕하세요. 나름대로 혼자 코드를 짜고 문제를 풀어보았습니다. 근데 SpeedCam의 코드에서 저의 코드는 package camera2; import detector.*; import reporter.*; public class SpeedCam extends Camera { private Detectable detect; private Reportable report; public void setDetect(Detectable detect) { this.detect = detect; } public void setReport(Reportable report) { this.report = report; } public void showMainFeature() { System.out.println("속도 측정, 번호 인식"); } public void detect() { detect.detect(); } public void report() { report.report(); } } 이러합니다. 정상적으로 목표 결과도 얻었습니다 근데 강사님의 코드는 public void detect() { this.detect.detect(); } public void report() { this.report.report(); } 이렇게 다른 부분이 존재하는데 this는 왜 필요한걸까요?
아래 코드에서 detect메소드는 public으로 해줘야 에러가 안뜨더라구요. 무조건 정의는 public으로 해줘야 하는 건가요? package detector; public class AcciedntDetector implements Detectable{ public void detect() { System.out.println("교통 사고를 감지합시다."); }; }
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] SingletonBean.init singletonBean1 = hello.core.scope.PrototypeTest$SingletonBean@54504ecd singletonBean2 = hello.core.scope.PrototypeTest$SingletonBean@54504ecd org.springframework.context.annotation.AnnotationConfigApplicationContext - Closing SingletonBean.destroy singletonBeanFind() 의 실행 결과입니다. 결과를 보면 ac.close() 로 인해 스프링 컨테이너가 종료된 뒤(네 번째 라인), 싱글톤 빈의 종료 메서드가 호출됩니다. 제가 이해한 바로는 싱글톤 빈의 소멸 메서드는 스프링 컨테이너가 종료되기 전에 호출된다고 알고 있습니다. 그런데 출력 순서를 보면 반대로 되어있어서 왜 그런건지 모르겠습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] AutoAppConfigTest.java의 basicScan() 테스트 메소드는 잘 돌아가는데요. Test Passed라고만 뜨고 설정된 빈 내역들이 로그에 뜨지 않네요... 빈들은 제대로 설정 됐는지 모든 테스트들은 패스가 되긴하는데ㅠㅠ... 강의를 따라하면서 종종 선생님 로그와 다를때가 있긴 했는데 큰 문제는 되지 않아서 그냥 넘겼거든요. 혹시나 따로 뭘 설정해줘야하는지, 아니면 제가 놓친게 있는 걸까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 인텔리제이가 비싸 스프링3에 스타터스트링에서 설정해놓은 파일을 다운받아 임포트 하려고 하는데 강의상 말씀하신 툴이 달라 어떻게 임포트 해야하는지 모르겠습니다 ㅜㅜ설명 부탁드립니다.