묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
질문드립니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. AnnotationConfigApplicationContext(LifeCycleConfig.class);여기에서 안에 들어간 클래스는 자동으로 컨테이너에 등록된다고 알고있는데LifeCycleConfig.class에 또 @Configuration을 등록해줄 필요가있나요?
-
미해결스프링 핵심 원리 - 기본편
싱글톤을 사용하면서 DIP를 만족하는 경우
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요. 항상 좋은 강의를 제공해주셔서 감사합니다.다름이 아니라 한가지 질문이 있는데요.getInstance()를 구현하지 않고 AppConfig.class를 아래와 같이 짠다면 싱글톤이면서 DIP를 만족한다고 할 수 있을까요?
-
미해결스프링 핵심 원리 - 기본편
UnsatisfiedDependencyException 에러가 떠요..!
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요 영한님 UnsatisfiedDependencyException에러를 구글링해봤습니다. 이유는 memberServiceImlple을 빈으로 등록할 때 파라미터로 MemberRepository빈이 생성자주입이 안 된다는 것 같습니다. 해결하려고 하는데 어디를 손대야 될지 모르겠습니다... 혹시 어느 부분이 잘못된 것인지 알 수 있을까요..? [MemberServiceImpl][MemoryMemberRepository][AutoAppConfig][AppConfig]java.lang.IllegalStateException: Failed to load ApplicationContextat org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:98)at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124)at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:118)at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)at org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener.prepareTestInstance(SpringBootDependencyInjectionTestExecutionListener.java:43)at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248)at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138)at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$8(ClassBasedTestDescriptor.java:363)at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:368)at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$9(ClassBasedTestDescriptor.java:363)at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:312)at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735)at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734)at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658)at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestInstancePostProcessors(ClassBasedTestDescriptor.java:362)at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$instantiateAndPostProcessTestInstance$6(ClassBasedTestDescriptor.java:283)at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:282)at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$4(ClassBasedTestDescriptor.java:272)at java.base/java.util.Optional.orElseGet(Optional.java:369)at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$5(ClassBasedTestDescriptor.java:271)at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:31)at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:102)at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:101)at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:66)at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$2(NodeTestTask.java:123)at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:123)at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:90)at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53)at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:57)at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberServiceImpl' defined in file [C:\Inprun_SpringCore\core\out\production\classes\hello\core\member\MemberServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'hello.core.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,MemberRepositoryat org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:800)at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:229)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955)at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731)at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408)at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:136)at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:141)at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:90)... 72 moreCaused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'hello.core.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,MemberRepositoryat org.springframework.beans.factory.config.DependencyDescriptor.resolveNotUnique(DependencyDescriptor.java:220)at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1369)at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311)at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887)at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)... 90 more
-
미해결스프링 핵심 원리 - 기본편
수업 내용 이게 맞을까요?
@Controller @RequiredArgsConstructor public class LogDemoController { private final LogDemoService logDemoService; private final MyLogger myLogger; @RequestMapping("log-demo") @ResponseBody public String logDemo(HttpServletRequest request) { String requestURL = request.getRequestURL().toString(); myLogger.setRequestURL(requestURL); myLogger.log("controller test"); logDemoService.logic("testId"); return "OK"; } }1. 위 코드가 에러가 나는 이유@RequiredArgsConstructor 이 코드로 생성자 자동 주입을 실행빈 라이플 사이클 생성자 주입특징으로 객체 생성 과정과 의존관계주입이 한번에 일어나니MyLogger 객체가 setRequestURL 세터 메서드로인해 (외부에서 입력 받아야하니) 정보를 못담아서 에러가 나는거 맞을까요? @RequestMapping("log-demo") @ResponseBody public String logDemo(HttpServletRequest request) { String requestURL = request.getRequestURL().toString(); MyLogger myLogger = myLoggerProvider.getObject(); myLogger.setRequestURL(requestURL); myLogger.log("controller test"); logDemoService.logic("testId"); return "OK"; } }코드가 실행되는 이유빈 라이플 사이클 중 Setter와 Field 주입은 객체 생성 후 의존관계 주입으로 나뉘어져있으므로logDemo메서드가 실행하면 Provider.getObject()가 나올떄까지 빈 생성을 지연시키다가 request요청을 받은후 Provider.getObject()로 객체를 생성하고setRequestURL()로 의존관계를 주입하는사이클 맞을까요?
-
미해결스프링 핵심 원리 - 기본편
@Autowired 빨간줄
@Scope("singleton") static class ClientBean{ @Autowired private Provider<PrototypeBean> provider; public int logic() { PrototypeBean prototypeBean = provider.get(); prototypeBean.addCount(); int count = prototypeBean.getCount(); return count; } }위에 코드 @Autowired 에 빨간줄이 생기면서Inspection 'Incorrect autowiring in Spring bean components' options 오류 메시지가 뜨네요그런데 테스트 실행은 정상작동 되던데 뭐가 문제인가요?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
퀴즈 7번 질문있습니다.
안녕하세요. 선생님 강의 퀴즈 7번을 풀다가 에러가 나서 질문 드립니다.다형성을 이용해서 클래스를 배열에 담는 과정에서 에러가 발생하는데요. 소스코드를 선생님과 동일하게 쳐도 non-static variable this cannot be referenced from a static context 에러가 뜹니다..구글링을 통해 해결해보려고 했으나 각 클래스에 static 을 명시해줘야 한다고 해서 해보니까 스택오버플롤우 에러가 뜨네요 ㅜㅜ
-
미해결스프링 핵심 원리 - 기본편
주문 할인 도매인 개발 강의 중 질문이있어요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]생성자를 만드는 이유는 뭔가요??
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
void의 사용에 대해
메소드 강의에서 3분 24초 쯤 void를 이용하는데 왜 갑자기 void를 쓰는지에 대한 설명이 없어서 헷갈려서 질문드립니다. 어떨 때 void를 쓰는지 ( 제가 알기론 반환 값이 없을 때 사용 ) 그리고 위의 부분들과 어떠한 점이 달라서 void를 쓰게 되었는지를 잘 모르겠습니다... 객체 듣다가 너무 어려워서 객체 파트만 2번째 듣는데 너무 어렵네요 ㅠㅠ
-
미해결스프링 핵심 원리 - 기본편
의존관계주입에 관하여 질문이 있씁니다!
스프링 부트를 사용하여 프로젝트를 진행한 경험이 있습니다. 스프링 이론에 대한 전반적인 이해가 부족하여 이번 강의를 듣게 되었습니다.스프링 부트에서 프로젝트를 진행할 때는 구현체와 인터페이스를 구분하여 클래스를 생성하지 않고 구현체만 생성해서 진행했습니다. 따라서 MemberService를 직접 MemberController에서 호출해서 사용했습니다. 이 때, new를 하지 않고 바로 메서드 사용이 가능했습니다. 이는 스프링 부트가 @Autowired를 하지 않아도 자동으로 빈등록을 해줘서 가능한건지 궁금합니다.또한 매 프로젝트를 진행할 때마다 구현체와 인터페이스를 분리하여 진행하는 것이 좋은 개발인지도 궁금합니다!마지막으로 구현체와 인터페이스를 하나의 패키지에 관리하는 것인지 아니면 구현체는 구현체끼리 인터페이스는 인터페이스끼리 관리하는 것인지도 궁금합니다!
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
퀴즈1번
String busName = "전주08"; System.out.println( "버스 번호는 " + busName + "입니다."); int leftTime = Integer.parseInt("5"); System.out.println("남은 시간은 " + leftTime + "분 입니다"); double leftDistance = Double.parseDouble("1.5"); System.out.println("남은 거리는 " + leftDistance + "Km 입니다");String busNo = "전주08"int minutes = 5; 이렇게 만드는 거랑 위의 방법으로 만드는 거랑 출력은 같아 보여도 컴퓨터가 인식했을 때 다른가요?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
블로그에 정리해서 올려도 될까요?
안녕하세요 나도 코딩님 강의 잘 듣고 있고 배운지 꽤 되서 감을 잊고있었는데 되새김질이 되서 좋습니다. 제가 또 잊어버릴까봐 걱정되서 그러는데 혹시 제가 블로그에 정리해도 되나요???퀴즈에 대한 강의는 나도 코딩님의 지적 재산이니 일절 올리지 않을것이고 강의로 인해 배운 지식에 대해서만 올리겠습니다.기본 예시에 대한 문제라면 제가 어레인지해서 올리도록하겠습니다. 허락 부탁드립니다...!!!!
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
Quiz6에 대한 피드백 부탁드립니다(이번 문제는 배열이 아니라 String 클래스라서 "*" 처리하는데 굉장히 애먹었네요 ㅎㅎ;;)
package chap_06; public class _Quiz_06 { public static String getHiddenData(String src, int index) { // 1. substring()을 이용하면 문자열의 일부를 자를 수 있음 // 2. length()를 이용하면 문자열의 길이를 알 수 있음 // 알고리즘: src의 길이를 파악한 후, substring()으로 문자열을 먼저 잘라보자 String temp = src.substring(index); // index부터 슬라이싱 String hiddenStr = temp.replaceAll("[코딩]", "*"); // 나** String hiddenNum = hiddenStr.replaceAll("[0-9]", "*"); // 0~9까지의 모든숫자를 *로 만들겠다 String ori = src.substring(0, index); return ori + hiddenNum; } public static void main(String[] args) { // 1. 개인정보를 비공개로 전환하는 메소드 작성 // 2. 하나의 메소드에서 모든 동작 처리( getHiddenData(name, 1) ) // 3. 각 정보는 아래 위치부터 비공개 적용 String name = "나코딩"; // 이름 String id = "990130-1234567"; // 주민등록번호 String phone = "010-1234-5678"; // 전화번호 System.out.println("이름 : " + getHiddenData(name, 1)); // 개인정보, 비공개 시작 위치 System.out.println("주민등록번호 : " + getHiddenData(id, 8)); System.out.println("전화번호 : " + getHiddenData(phone, 9)); } }추가로, str.replaceAll() 메소드는 oldstring를 []와 같이 정규표현식(regular expression)으로 사용하여, []안에 있는 모든 값을 newstring으로 바꾸겠다는 의미입니다.https://jamesdreaming.tistory.com/85str.replace()는 예를 들어, str.replace("코딩, "*")을 하면 나*만 나오는데 비해, str.replaceAll("[코딩]", "*")을 하면 나**로 나오는 것으로 보아, 정규식에 포함하는 리터럴 상수를 하나씩 *로 바꿔주는 것 같습니다.
-
미해결스프링 핵심 원리 - 기본편
close()메서드는 왜 호출되어야 작동하나요?
init()과 다르게 호출되어야 작동하는게 단순 궁금해서 질문합니다
-
미해결스프링 핵심 원리 - 기본편
강의를 수강하는 순서에 대해 질문 드립니다.
안녕하세요 현재 백엔드 개발자 취준생으로 스프링 로드맵을 전체 결제 후 로드맵 순서 대로스프링 입문편 -> 스프링 기초편 까지 수강하였습니다.그런데 강의의 마지막 목차인 다음으로에서 JPA를 수강하고 나머지 스프링 부트를 수강하는게 더 좋을 것이다 라는 느낌을 받았는데로드맵 순서대로가 아닌 현재에서 JPA 로드맵을 수강신청후 듣고나서 나머지 남은 스프링 강의들을 수강해야할까요 ??로드맵을 신청하기전에 김영한님의 유튜브 로드맵 영상을 봤을 때는 스프링 부트 로드맵을 끝낸 뒤 -> JPA 로드맵 수강 이 순서라 생각해 먼저 스프링 부트 로드맵을 다 수강신청 해 스프링 부트를 다 끝내고 JPA를 수강할 예정이였는데어떤 순서로 들어야할 지 햇갈려서 질문드립니다.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
2가지 이상 자료형을 가지는 변수는 받을 수 없나요?
2가지 이상 자료형을 가지는 변수는 받을 수 없나요?String | int 이렇게 두가지를 같이 선언 불가한가요?
-
미해결스프링 핵심 원리 - 기본편
NoUniqueBeanDefinitionException가 안발생해요
[질문 내용]같은 타입의 빈을 컨테이너에 2개 이상 등록하면 NoUniqueBeanDefinitionException가 발생해야하는데 테스트가 문제없이 돌아가요. 검색해보니 제가 자식클래스를 직접 빈에 등록해서 생긴것같은데 이걸 해결해도 계속 문제가 발생하지 않네요.. 뭐가 문제일까요
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
int size = 120;
int size = 120;size = size + 10; System.out.println(size)int는 자료형의 변수 size와 아래 코드에 있는 size는 다른 건가요? size라는 덩어리에 값을 담는 다는 건 알고 있습니다.
-
미해결스프링 핵심 원리 - 기본편
java 17버전으로 사용하면 안되나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요. 11로 변경하기가 어려워서요 ㅠㅠ17로 사용해도 괜찮을까요?
-
미해결스프링 핵심 원리 - 기본편
RateDiscountPolicyTest 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]int discount = discountPolicy.discount(member, 10000); 여기에서 member부분이 오류가 납니다.java: cannot find symbol symbol: variable member location: class hello.core.discount.RateDiscountPolicyTest이렇게 나오는데 뭐가 문제인가요?
-
미해결스프링 핵심 원리 - 기본편
getInstance()와 DIP
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]싱글톤은 DIP를 위반한다는 설명에서(기존)public MemberService memberService(){ return new MemberServiceImpl(memberserviceRepository());}(싱글톤 패턴 적용 시)public MemberService memberService(){ return MemberServiceImpl.getInstance();}에서 구체 클래스에 의존하기 때문에 DIP를 위반한다고 하셨습니다. 하지만 AppConfig에는 객체 인스턴스를 연결하기 위해 어차피 구체클래스를 사용하는데, DIP를 위반한다고 하는 이유가 뭔지 궁금합니다!