묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
인스턴스와 인스턴스 변수의 차이는 무엇인가요?
예를 들어 클래스는 그랜저 설계도 객체는 그랜저 인스턴스는 우리 아빠 그랜저 라고 한다면 인스턴스 변수는 무엇인가요? 우리 아빠 그랜저의 자동차 바퀴 이런 느낌인건가요?
-
해결됨김영한의 실전 자바 - 중급 2편
직접 구현한 MyHashSet
에서 데이터를 hascode로 변환하고 그 hashcode로 hashindex에 넣는거를 구현했잖아요자바 컬랙션에서 지원하는 hastSet,LinkedHashSet,TreeSet은 자바에서 hashCode는 지원하는건 알겠는데 저희가 배열에 값을 넣을때 따로 hashcode % 배열의크기 이 코드를 안넣어도되는건가요? 자바에서 hashCode도 생성해주고 hashIndex까지 생성해줘서 배열에 넣어주나요?
-
해결됨스프링 핵심 원리 - 기본편
섹션 10. 빈스코프 질문 2
public class PrototypeTest { @Test void PrototypeBeanTest() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(PrototypeBean.class); System.out.println("find PrototypeBean1"); PrototypeBean prototypeBean1 = ac.getBean(PrototypeBean.class); System.out.println("find PrototypeBean2"); PrototypeBean prototypeBean2 = ac.getBean(PrototypeBean.class); System.out.println("prototypeBean1 = " + prototypeBean1); System.out.println("prototypeBean2 = " + prototypeBean2); assertThat(prototypeBean1).isNotSameAs(prototypeBean2); } static class PrototypeBean { @PostConstruct public void init() { System.out.println("PrototypeBean.init"); } @PreDestroy public void destroy() { System.out.println("PrototypeBean.destroy"); } } }결과prototypeBean1 = hello.core.scope.PrototypeTest$PrototypeBean@29caf222prototypeBean2 = hello.core.scope.PrototypeTest$PrototypeBean@29caf222 강의에서 프로토타입 스코프를 코드로 작성하고 실행하는 도중 깜빡하고 스코프 애노테이션을 넣는 걸 깜빡했습니다.그런데 prototypeBean1 과 prototypeBean2 의 참조값이 같게 나왔습니다.@Configuration을 적지 않았는데 왜 싱글톤이 적용이 된 건지 잘 이해가 가지 않습니다...AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(PrototypeBean.class);위 코드에서 AnnotationConfigApplicationContext를 생성할 때 PrototypeBean 정보를 넘겨주면 내부적으로 빈 등록 과정이 진행되기 때문입니다.감사합니다.라고 답변을 받았는데,답변에 대한 질문: PrototypeBean.class의 정보를 넘겨주는데 PrototypeBean 클래스에 @Configuration을 적지 않으면 싱글톤이 적용이 안되는 거 아닌가요??ㅠㅠ
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
가끔 클래스 파일을 만들려하면 오류가 나와요.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]여기에 질문 내용을 남겨주세요.Cannot Creat ClassUnable to parse template "Class" Error message: File '/Users/jaehoon/IdeaProjects/java-start/src/casting/Casting1.java' already exists가끔 클래스 파일을 만들려하면 오류가 나와요.이럴땐 어떻게 해결할 수 있나요?
-
미해결김영한의 실전 자바 - 중급 1편
Enum 질문
안녕하세요.Enum 메서드에서 toString()이 오버라이딩 되어서 BASIC, GOLD, DIAMOND가 변수명 그대로 찍혀 나온다고 말씀하셨는데 enum Grade에서 toString()을 재정의 하려고 하면 재정의 못하는 걸로 컴파일 에러가 나더라고요. 재정의 하려면 어떻게 해야 하나요 ?
-
미해결김영한의 실전 자바 - 중급 1편
ClaaGrade 질문
안녕하세요.해당 ClassGrade 변수들은 static final로 선언되어 있으니 메서드 영역의 클래스 영역에 들어가 있는 것이 아니라 상수풀에 들어가 있어야 하는 거 아닌가요 ? (static final로 선언되어 있으니까요)감사합니다public static final ClassGrade BASIC
-
해결됨스프링 핵심 원리 - 기본편
섹션 7. 조회한 빈이 모두 필요할 때, List, Map
이렇게 한 상태에서 코드 돌리실 때 강의에서는 돌아가는데 제가 하니까 오류가 뜹니다...ㅠㅠ선생님께서도 fix하고 rate 모두 @Component 붙이셨고..강의에서 rate에서 @MainDiscountPolicy 제거하셨는데 어떻게 오류없이 돌아가는 건가요ㅠㅠ 왜 저만 오류가....이 강의에서 소스코드가 없어서 선생님하고 어느 부분이 다른지 확인하기도 어렵습니다ㅠㅠ어느 부분에서 잘못된 건지 확인 가능할까요...ㅠㅠhttps://drive.google.com/file/d/1zr_OjcriS2xs6HdrWQCUmuPCV4iAfGaw/view?usp=drive_link 혹은 소스코드를 받을 수 있으면 확인해보고싶습니다... @Test void findAllBean() { ApplicationContext ac = new AnnotationConfigApplicationContext(AutoAppConfig.class, DiscountService.class); } static class DiscountService { private final Map<String, DiscountPolicy> policyMap; private final List<DiscountPolicy> policies; @Autowired public DiscountService(Map<String, DiscountPolicy> policyMap, List<DiscountPolicy> policies) { this.policyMap = policyMap; this.policies = policies; System.out.println("policyMap = " + policyMap); System.out.println("policies = " + policies); }Error creating bean with name 'orderServiceImpl' defined in file [E:\study\core\build\classes\java\main\hello\core\order\OrderServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 1: No qualifying bean of type 'hello.core.discount.DiscountPolicy' available: expected single matching bean but found 2: fixDiscountPolicy,rateDiscountPolicy org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'orderServiceImpl' defined in file [E:\study\core\build\classes\java\main\hello\core\order\OrderServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 1: No qualifying bean of type 'hello.core.discount.DiscountPolicy' available: expected single matching bean but found 2: fixDiscountPolicy,rateDiscountPolicy at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:795) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:237) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1357) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1194) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:975) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:962) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:93) at hello.core.autowired.AllBeanTest.findAllBean(AllBeanTest.java:22) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'hello.core.discount.DiscountPolicy' available: expected single matching bean but found 2: fixDiscountPolicy,rateDiscountPolicy 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:904) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:782) ... 17 more No qualifying bean of type 'hello.core.discount.DiscountPolicy' available: expected single matching bean but found 2: fixDiscountPolicy,rateDiscountPolicy org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'hello.core.discount.DiscountPolicy' available: expected single matching bean but found 2: fixDiscountPolicy,rateDiscountPolicy at app//org.springframework.beans.factory.config.DependencyDescriptor.resolveNotUnique(DependencyDescriptor.java:218) at app//org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1420) at app//org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353) at app//org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:904) at app//org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:782) at app//org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:237) at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1357) at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1194) at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) at app//org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) at app//org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at app//org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) at app//org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) at app//org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:975) at app//org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:962) at app//org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) at app//org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:93) at app//hello.core.autowired.AllBeanTest.findAllBean(AllBeanTest.java:22) at java.base@21.0.3/java.lang.reflect.Method.invoke(Method.java:580) at java.base@21.0.3/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base@21.0.3/java.util.ArrayList.forEach(ArrayList.java:1596)
-
해결됨스프링 핵심 원리 - 기본편
섹션 7. 옵션처리
@Component class Ex1 { private final Member member; @Autowired(request = false) public Ex1(Member member) { this.mamber = member; } }@Aurowired(request = false)를 사용하면 생성자 호출이 되지 않으니까->Ex1은 스프링 빈으로 아예 등록 조차 안 되는 게 맞는 건가요? @NullableOptional<Member>만약 request = false를 사용하지않고,Nullable과 Optional을 사용하면 Ex1은 스프링 빈으로 등록되는 게 맞나요?? 그리고 수정자 주입같은 경우는@Component class Ex1 { private final Member member; @Autowired public void setEx1(Member member) { this.mamber = member; } }member가 스프링 빈에 등록되어 있지 않으면 Ex1을 스프링 빈에 member가 주입되지 않은 상태로 저장하고,member가 스프링 빈에 등록되어면 그때서야 Ex1에 자동으로 주입을 해주는 게 맞나요?
-
미해결김영한의 실전 자바 - 중급 2편
제네릭 타입이나 메서드를 정의할 때에 <T extends Animal>
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]제네릭 타입이나 메서드를 정의할 때에 상한 제한을 두기 위해서 <T extends Animal> 로 지정하였는데,이렇게 지정하면 <Animal> 로 지정하는 것과 같은 효과가 나는 것이 아닌가요?만약에 맞다면, 굳이 왜 T extends Animal 이라는 방법을 사용하는지 궁금합니다.
-
미해결스프링 핵심 원리 - 기본편
request 스코프 관련 문의
안녕하세요, 몇가지 질문이 있습니다. 선생님의 코드대로 쳤는데 제 인텔리제이에서는 왜 다음과 같은 에러가 발생하는지 모르겠습니다.왜 LogDemoController가 static 컨텍스트라고 떠서 이런 에러가 발생하는지 모르겠습니다.제가 봤을땐 static이 아닌데 말이죠 (MyLogger, Controller, Service 모두 static은 없음)여기까지의 소스 코드를 1차 첨부합니다. (에러 발생 코드)package hello.core.common; import jakarta.annotation.PostConstruct; import jakarta.annotation.PreDestroy; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import java.util.UUID; @Component @Scope(value="request") public class MyLogger { private String uuid; // unique id private String requestURL; public void setRequestURL(String requestURL){ this.requestURL = requestURL; } public void log(String message){ System.out.println("[" + uuid + "] " + "[" + requestURL + "]" + message); } @PostConstruct public void init(){ uuid = UUID.randomUUID().toString(); System.out.println("[" + uuid + "] " + "[" + requestURL + "] request scope bean create : " + this); } @PreDestroy public void close(){ System.out.println("[" + uuid + "] " + "[" + requestURL + "] request scope bean close : " + this); } /* 로그를 출력하기 위한 클래스 request 스코프로 지정했으며, HTTP 요청당 하나씩 생성되고, HTTP 요청이 끝나는 시점에 소멸된다. 이 빈이 생성되는 시점에 자동으로 @PostConstruct 초기화 메서드를 사용해서 uuid를 생성해서 저장해둔다. 이 빈은 HTTP 요청 당 하나씩 생성되므로, uuid를 저장해두면 다른 HTTP 요청과 구분할 수 있다. requestURL은 빈이 생성되는 시점에는 알 수 없으므로 외부에서 setter로 입력받는다. */ }package hello.core.web; import hello.core.common.MyLogger; import jakarta.servlet.http.HttpServletRequest; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.ObjectProvider; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller @RequiredArgsConstructor public class LogDemoController { private final LogDemoService logDemoService; private final ObjectProvider<MyLogger> myLoggerProvider; // 스프링 컨테이너가 뜨면서 의존관계 주입을 해야하는데 mylogger는 request scope이라 아직 고객 요청이 없어서 에러 @RequestMapping("log-demo") @ResponseBody public String logDemo(HttpServletRequest request){ String requestURL = request.getRequestURL().toString(); // 고객이 요청한 url을 받을 수 있음 MyLogger myLogger = myLoggerProvider.getObject(); // 주입 시점에 주입 받을 수 있음 myLogger.setRequestURL(requestURL); myLogger.log("controller test"); LogDemoService.logic("testId"); return "OK"; } }package hello.core.web; import hello.core.common.MyLogger; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.ObjectProvider; import org.springframework.stereotype.Service; @Service @RequiredArgsConstructor public class LogDemoService { private final ObjectProvider<MyLogger> myLoggerProvider; public void logic(String id) { MyLogger myLogger = myLoggerProvider.getObject(); myLogger.log("service id = " + id); } }어쨋든 이 문제를 해결하지 않으면 소스 코드 실행이 되지 않습니다. 따라서 intelliJ 가이드에 따라 static으로 만들어주고 실행을 하면 또 에러가 발생합니다.private final ObjectProvider<MyLogger> myLoggerProvider;위 구문 초기화를 하라는 가이드에 = Null을 해주면 소스 코드 실행 시 (디버깅 결과) myLoggerProvider.getObject() 에서 널포인트 익셉션이 터집니다.여기까지 상황의 코드를 2차 첨부합니다.package hello.core.web; import hello.core.common.MyLogger; import jakarta.servlet.http.HttpServletRequest; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.ObjectProvider; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller @RequiredArgsConstructor public class LogDemoController { private final LogDemoService logDemoService; private final ObjectProvider<MyLogger> myLoggerProvider; // 스프링 컨테이너가 뜨면서 의존관계 주입을 해야하는데 mylogger는 request scope이라 아직 고객 요청이 없어서 에러 @RequestMapping("log-demo") @ResponseBody public String logDemo(HttpServletRequest request){ String requestURL = request.getRequestURL().toString(); // 고객이 요청한 url을 받을 수 있음 MyLogger myLogger = myLoggerProvider.getObject(); // 주입 시점에 주입 받을 수 있음 myLogger.setRequestURL(requestURL); myLogger.log("controller test"); LogDemoService.logic("testId"); return "OK"; } }package hello.core.web; import hello.core.common.MyLogger; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.ObjectProvider; import org.springframework.stereotype.Service; @Service @RequiredArgsConstructor public class LogDemoService { private static final ObjectProvider<MyLogger> myLoggerProvider = null; public static void logic(String id) { MyLogger myLogger = myLoggerProvider.getObject(); myLogger.log("service id = " + id); } } 어떻게 해결해야할까요? 제가 잘못 타이핑한 부분이 있다면 말씀 부탁드립니다.
-
미해결스프링 핵심 원리 - 기본편
싱글톤 패턴 문제점
싱글톤 패턴의 문제점중 하나로 클라이언트가 구체 클래스에 의존해서 DIP와 OCP원칙을 위반할 수 있다고설명이 되어 있는데 궁금한 부분이 여기서 말하는 클라이언트가 아래와 같이 강의 중에 설명한 코드 중private static final SingletonService instance = new SingletonService()를 의미하는건지혹은 두 번째 코드에서 SingletonService singletonService1 = SingletonService.getInstance()과 같이 SingletonService 객체에서 객체를 가져오는 것을 의미하는 건가요? 그리고 강사님께서 싱글톤 패턴을 테스트에 위치하여 작성하였고 해당 SingletonService 클래스의 싱글톤을 구현한 코드를 해당 클래스 안에 작성하셨는데 스프링을 사용하지 않는다는 가정하에 싱글톤으로 컨테이너 객체를 관리할 때 SingletonService는 인터페이스고 해당 인터페이스를 구현하는 구현 클래스에 싱글톤 구현부들 작성하는게 맞을까요?
-
미해결김영한의 실전 자바 - 중급 1편
로또 메서드 문의
안녕하세요.궁금한 점이 있어 문의 드립니다.아래의 isUnique 메서드가 실행되었을 때를 가정해서 질문해보면 isUnique 매서드가 호출이 될 때 스택에 새롭게 할당이 되고 코드가 실행이 될텐데 이 때 이 새롭게 생성된 스택 영역 안에서 매개변수로 받은 number의 값 말고 나머지 바디에 있는 count 변수나 lottoNumbers 배열을 아는 건 메서드 영역의 클래스 영역에서 클래스 네임별로 구별이 되어 있고 그 클래스의 메서드를 가져다 쓰는 거니 메서드 내부의 변수들도 그 클래스에 해당한다는 걸 스택영역에서 알 수가 있는 거죠 ? 생각해보니 메서드 영역과 스택 영역은 분리되어 있고 메서드가 호출될 때 새롭게 스택 영역이 할당이 될텐데 어떻게 새롭게 할당된 공간 안에서 메서드 내부의 값들을 다 알까 싶어서요.감사합니다.
-
해결됨스프링 핵심 원리 - 기본편
UnsatisfiedDependencyException & NoUniqueBeanDefinitionException 2
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberServiceImpl' defined in file [E:\java-spring-basic-review\myStudy\out\production\classes\hello2\myStudy\member\MemberServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'hello2.myStudy.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,memberRepository ... Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'hello2.myStudy.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,memberRepository질문 한 번 올렸는데 ai답변이 와서 거기서 본 링크쪽으로도 갔는데 문제를 모르겠습니다...3시간 동안 찾아보고 해결해보려하는데 되지 않습니다... 도와주세요.https://drive.google.com/file/d/1cBsUxNQ27kT1rdo6R-s0iuNEGOC7paFG/view?usp=drive_link혹시몰라 파일도 올립니다ㅠㅠ 정말 알 수가 없습니다...
-
해결됨스프링 핵심 원리 - 기본편
UnsatisfiedDependencyException & NoUniqueBeanDefinitionException
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberServiceImpl' defined in file [E:\java-spring-basic-review\myStudy\out\production\classes\hello2\myStudy\member\MemberServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'hello2.myStudy.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,memberRepository ... Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'hello2.myStudy.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,memberRepository 복습하는 중에 전체 테스트를 돌렸는데 MyStudyApplicationTests에서만 오류가 납니다.정말 해결하려 노력해보았으나, 머리박고 헤드뱅이 100바퀴 돌정도로 모르겠습니다.생각해봤을 때, appConfig와 AutoAppConfig에서 같은 타입의 빈이 2개 생성돼서 오류가 나는 거 같은데...정확히 어디가 잘 못된 건지 고칠 방법이 뭔지 알 수가 없습니다...도와주세욤....
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
문제 풀이 질문 있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]여기에 질문 내용을 남겨주세요. 두번째 문제에 짝수를 출력하는 프로그램에서 강사님과 제 코드가 다른데 출력값은 같은데 저 처럼 풀어도 문제가 없는건가요? public static void main(String[] args) { // 처음 10개의 짝수를 출력하는 프로그램을 만들어보자. num변수 사용. int num = 2; while (num <= 20) { if (num % 2 == 0) System.out.println(num); num++; } } public static void main(String[] args) { for(int num = 2; num <= 20; num++){ if(num % 2 == 0){ System.out.println(num); } } }
-
미해결김영한의 실전 자바 - 기본편
메서드 시그니쳐 관련 질문
안녕하세요.메서드 관련 질문입니다.컴파일이 될 때 메서드 영역 > 클래스 영역 이 부분에 클래스의 관련 코드들이 다 들어가 있는 걸로 이해했는데 그러면 다음의 두 경우는 어떻게 이해하면 될까요 ? (두 경우 다 추상 클래스, 인터페이스에는 메서드의 바디가 작성되어 있지 않고 나중에 작성되는 경우) -> 메서드 영역의 클래스 영역에 처음에는 바디가 없으니 관련 정보가 전혀 없을 거 같은데 이와 같이 나중에 오버라이딩을 해주었을 때 메서드 영역의 클래스 영역에서 어떻게 되는지 궁금합니다. 새로운 클래스 영역에 메서드로 정의되는 부분이 아니라 기존에 클래스 영역에서 정의가 되어야 하는데 문제는 클래스 영역의 기존 메서드를 수정하자니 다음의 두 케이스는 해당 객체를 생성할 때에만 적용되는 일회성 코드라 ...2.1 AbstractAnimal은 추상클래스로 sound()가 추상 메서드입니다.AbstractAnimal animal = new AbstractAnimal() { @Override public void sound() { System.out.println("test"); }};2.2 InterfaceAnimal interface 입니다.InterfaceAnimal interfaceAnimal = new InterfaceAnimal() { @Override public void sound() { System.out.println("test"); } @Override public void move() { System.out.println("test"); } };추상 메서드의 경우 메서드 시그니처만 메모리에 로드되었다 실행시점에 구체화 시킨 클래스에서 구현된 메서드가 메모리에 로드된다고 하셨는데 위의 예제를 보면 상속받아 메서드를 오버라이딩 한 것이 아니라 기존에 메서드 시그니처만 존재하는 클래스에서 일시적으로 구현한 방식입니다.이럴 때에는 메모리 영역의 클래스 영역에서 어떤 로직이 수행되나요 ? (위의 예제처럼 실행될 때 익명객체 처럼 구현하여 객체 생성할 때)
-
해결됨김영한의 실전 자바 - 중급 1편
중급1편에서 String에 대해서 배우는걸로 아는데
StringBuffer,StringToken 이거뿐만 아니라 Math등도 알려주시는건가요?
-
미해결김영한의 실전 자바 - 중급 1편
래퍼 클래스 질문
안녕하세요.래퍼클래스 강의 중 궁금한게 있어서 문의드립니다. 래퍼 클래스 기본형 한계 얘기하시면서 값이 있으면 MyInteger객체를 반환해주고 없으면 null을 반환한다고 하셨는데, MyInteger는 toString을 재정의 해서 해당 클래스의 value를 String으로 출력하도록 되어 있어서 value가 나오는건 알겠는데 밑의 예시처럼 값이 없을 때에는 null 이 나오는데 이게 System.out.println(null)과 같은 뜻일텐데 따로 이런식으로 입력해보면 null이라고 안 찍히고 에러가 나더라고요. println 메서드 까서 봐도 밑과 같이 되어 있는데 String.valueOf(null)은 에러가 나고요.설명 부탁드립니다.System.out.println(findValue(arrInt, 100));public void println(Object x) { String s = String.valueOf(x);
-
미해결스프링 핵심 원리 - 기본편
테스트 로그
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.테스트를 실패하면 로그가 나오는데 성공하면 영상처럼 로그가 안나오는데 따로 설정이 필요한가요?
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
3:24에 무슨 단축키 쓰신 지 알 수 있을까요?
3:24에 break; 에서 Enter 치면 break 이랑 같은 indent에 작성이 되는 데, 강사님께서는 순식간에 그 전 indent로 가시는 데 초록색 화면을 봐도 어떻게 하신 지 잘 모르겠어요 ㅠㅠ