묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
안녕하세요. 배열 강의 부분에서 공부를 하면서 "값 변경"에 대해 드릴 말씀이 있습니다.
얕은 지식을 가진 제가 감히 강사님께 수정을 요청드려도 될 지 모르겠지만, coffees[2] = "에스프레소"; // 값 변경 에서 많은 학습하는 사람들이 주석에 쓰인 "값 변경"을 C나 C++에서 쓰인 value로 해석할 여지가 있으실 것 같아서 이것을 "참조값 변경"으로 수정해주시면 감사드리겠습니다. 왜냐하면 Java는 미리 public class로 선언한 부분에서 String class를 coffees로 객체명을 지어서 객체를 생성할 수 있고, 우측의 {"아메리카노", "카페모카", "라떼", "카푸치노"}; 인 참조 객체를 객체 변수에 할당하는 것이기 때문입니다.저는 강사님의 넓고 깊은 지식을 강의를 들을 때마다 매번 감탄하면서 배우는 입장인데, 제가 주제넘었다면, 이 글은 바로 삭제하겠습니다. 항상 퀄리티 높은 강의를 제공해주셔서 감사합니다 😄
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
new FileWriter() 랑 new File() 차이점이 뭔가요?
앞에 파일 다루기 강의에서는 파일 생성할때new File() 로 파일을 만들었는데이번 강의에서는 new FileWriter() 로 파일을 만드는 이유가 뭘까요?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
쓰레드 클래스 질문이요
앞에 Thread강의에서는 객체생성하고 start() 함수만 써서 실행했는데이번 강의는 cleanRunnable.start() 안쓰고Thread 객체를 추가로 사용하셨는데 이 쓰레드 객체가 왜 쓰였는지 궁금합니다
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
Quiz 4에서 강사님이 작성하신 if문과 달리 case문으로 작성해보았는데 피드백 부탁드립니다.
package chap_04; public class _Quiz_04 { public static void main(String[] args) { int car = 3; int fee = 0; // 시간당 4000원이므로 초기값을 0으로 저장하자 int max = 30000; // 케이스가 명확하므로 switch문을 작성하는게 맞는데, 시간을 어떻게 반복? switch (car) { case 1: // 일반 차량의 경우 for (int i = 1; i <= 5; i++) { fee += 4000; // 팩토리얼 계산을 때려버림.... } System.out.println("주차 요금은 " + fee + " 원입니다."); break; case 2: for (int i = 1; i <= 5; i++) { fee += 4000; } fee /= 2; // 최종 요금에서 50% 할인 System.out.println("주차 요금은 " + fee + " 원입니다."); break; case 3: for (int i = 1; i <= 10; i++) { fee += 4000; if(fee > max) // fee가 최대 요금을 넘어가면 fee = max; // 최대 요금을 fee로 고정 } fee /= 2; // 최종 요금에서 50% 할인 System.out.println("주차 요금은 " + fee + " 원입니다."); } } } // 일반 차량일 경우 // 경차일 경우 // 장애인 차량일 경우저같은 경우, 케이스가 일반 차량, 경차, 장애인 차량으로 명확해서 case문으로 작성하였고, 시간당 4000원이라고 하여서 fee = 0 으로 먼저 초기화한 다음, 시간을 for문으로 돌려서 계산을 하였는데요. 이렇게 switch-case문 안에 for문을 작성해도 괜찮나요??
-
해결됨스프링 핵심 원리 - 기본편
외부 라이브러리 표시가 안보입니다..
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]프로젝트 안에서 외부 라이브러리 자체가 안보이는 데 보이게 하는 방법이 있을까요?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
특수문자
char 타입에서 특수문자에 관하여 질문을 드립니다.char a = 'A';a = '\'A\''; 에러가 뜨는데 어떻게 수정을 해야할까요??
-
미해결스프링 핵심 원리 - 기본편
질문있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이전강의부터 불변이라는게 좀 헷갈렸는데요setXxx 메서드로 다른개발자가 MemberRepositroy를MemoryRepository에서 JdbcRepositroy로 바꾸면 안되니까final을 붙여 수정을 못하게하고 생성자를 열어놔서 AppConfig에서 Bean을 등록하여 거기서 인스턴스화해서 생성자에 값을 넣어주잖아요 그런데 궁금한건 다른 개발자가 AppConfig에서 똑같이 Memory를 Jdbc로 바꿀수있을텐데 왜 불변인지 잘 이해가 안갑니다 ㅠㅠ
-
미해결스프링 핵심 원리 - 기본편
() {} 이거 빨리치시던데 어떻게하나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.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. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 인터넷 검색해봐도 답이안나오네요 람다식이 뭔지만나오고입력어떻게하는거죠?
-
해결됨은종쌤과 자바로 디자인 패턴 쉽게 시작하기
Bridge pattern 에서...
안녕하세요,Bridge 패턴에서 큐나 스택을 만들때 기능을 구현한 List를 상속하는데 상속받은 메소드를 써야하는거 아닌가요? 예를들어 add 나 remove 같은.public class Queue<T> extends List<T> { public Queue(AbstractList<T> list) { super(list); System.out.println("Queue"); } public void enQueue(T obj) { add(obj); } public T deQueue() { return remove(0); } }public class Stack<T> extends List<T> { public Stack(AbstractList<T> list) { super(list); System.out.println("Stack"); } public void push(T obj) { add(obj, 0); } public T pop() { return remove(0); } public T peek() { return get(0); } }
-
미해결스프링 핵심 원리 - 기본편
에러부분이 나서 진행이 안되네요... 의존성 문제인거 같기도한데
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'orderServiceImpl' defined in file [C:\hello\core\out\production\classes\hello\core\order\OrderServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is 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.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.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:93)at hello.core.scan.AutoAppConfigTest.basicScan(AutoAppConfigTest.java:15)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.base/java.lang.reflect.Method.invoke(Method.java:566)at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725)at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214)at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210)at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135)at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66)at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)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 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.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:1801)at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1357)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)... 83 more종료 코드 -1(으)로 완료된 프로세스 @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired // 생성자에서 여러 의존관계도 한번에 주입받을 수 있다. public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = discountPolicy; } @Override public Order createOrder(Long memberId, String itemName, int itemPrice) { Member member = memberRepository.findById(memberId); int discountPrice = discountPolicy.disCount(member, itemPrice); return new Order(memberId , itemName, itemPrice ,discountPrice); } // 테스트 용도 public MemberRepository getMemberRepository() { return memberRepository; } } public class AutoAppConfigTest { @Test void basicScan() { ApplicationContext ac = new AnnotationConfigApplicationContext(AutoAppConfig.class); MemberService memberService = ac.getBean(MemberService.class); assertThat(memberService).isInstanceOf(MemberService.class); // AnnotationConfigApplicationContext를 사용하는 것은 기존과 동일하다. // 설정 정보로 AutoAppConfig 클래스를 넘겨준다. // 설정해보면 기존과 같이 잘 동작하는 것을 확인할 수 있다. } @Configuration @ComponentScan( //자동으로 스프링 빈을 등록할 수 있는 기능 excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION ,classes = Configuration.class) ) public class AutoAppConfig { }빈을 찾기 못해서 발생하는 문제인건 알겠는데 어느부분인지는 모르겠네요ㅜㅜ
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
Intelli J 사용관련
안녕하세요. _Quiz_07.java를 만들어 Run시키면 Chapter 9의 Inteface관련 Package쪽 에러가 있다고 합니다. Run Configuration에 Quiz07.java를 지정해도 동일한 에러가 반복됩니다. 마치 Intelli J는 프로젝트 전체를 Build하면서 특정 부분에 에러가 있으면 Run이 안되는 것 같습니다. 어떻게 해결할 수 있을까요?이 외에도 Intelli J를 잘 활용하고 싶은데, 좋은 방법 있으면 추천 부탁 드립니다.
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
ArrayList, LinkedList, HashMap 등 및 이들의 메소드들 add(), set() 등에 대해 깊이있게 알고싶습니다...ㅎ
안녕하세요, 나도코딩 선생님...ㅎ 어제 나도코딩 자바편에서 남은 나머지 강의인 Thread 부분과 섹션 10. 제네릭스 (Java Collections Framework)를 다 듣고 완강한 다음 복습 중에 궁금증이 생겨 이렇게 질문을 남깁니다. 나도코딩 파이썬 강의를 완강한 이후로 또 다른 강의를 다 끝내고 나니 기분이 매우 좋습니다 ㅎㅎ(1) 우선 add와 set과 관련된 질문입니다. Java documentation을 보면서 java.util.List에서 add는 object를 추가하는 것 외에도, add(int index, object e)를 통해 특정 위치(index)에 특정 객체(object)를 넣기도 가능하고, set도 마찬가지로 set(int index, object e) 형태로 같은 역할을 수행하는데, add와 set를 따로 나눈 것은 add는 단순하게 리스트 안에 객체를 넣는 것이 초점인 반면, set는 리스트 안에 들어있는 '기존 데이터들이 가진 순서 변경의 목적'이라서 그런건가요?(2) 지금까지 제네릭스를 공부하고 제가 이해한 바로는 LinkedList랑 ArrayList 두 가지 리스트 모두 데이터 순서를 가지고, ArrayList는 데이터를 쓰고 저장하는 것은 알고리즘 시간 복잡도상 O(n)이기 때문에 속도가 느리지만, 읽기(O(1))는 빠른 반면, LinkedList는 데이터를 읽는 속도(O(n))는 느리지만, 리스트 중간에 데이터를 쓰고 저장하는 것(O(1))은 빠르다면, 이 둘의 특성들을 어느 때 쓰는 것이 가장 적합한가요?또한 ArrayList와 LinkedList를 각각 '메모가 많은 공책', 예전에 있었던 '포털 사이트 실시간 검색어 순위'로 비유해서 개념을 이해하는 것도 괜찮을까요? - 제 스스로 이해를 돕기위해 나름 저만의 비유를 적어봤습니다...ㅎ메모가 많은 공책 (ArrayList) : 책 한 장안에 많은 메모들을 볼 수 있어서 읽기는 빠르지만, 메모를 쓰려면 최소 6-7장은 넘겨야 한다.실시간 검색어 순위 (LinkedList) : 순위가 주기적으로 (주로 1시간 단위) 변해서 자료들을 빨리 반영하기는 힘들지만, 실시간 순위인 만큼 빠른 자료 수집 및 추가는 확실하다.(3) HashMap도 또한 일반적으로 어디에 가장 적합 한가요? 이를 테면 제가 원하는 특정 문자에, 특정 정수(Integer) 값을 할당하는 용도로 HashMap을 써도 괜찮을까요? 혹시 몰라 아래처럼 제 나름대로 코드를 적어봤습니다...ㅎ... // 이미 import java.util.Map; 되어있음. HashMap<String, Integer> gameMoves = new HashMap<>(); gameMoves.put("R", 0); // gameMoves.remove("R"); 이렇게 키도 삭제 가능 gameMoves.put("D", 1); gameMoves.put("L", 2); gameMoves.put("U", 3); System.out.println(gameMoves.size()); // 4그리고 위의 예시 처럼 remove("R");을 통해 키 값을 없애면 (HashMap gameMoves에 저장된 String), HashMap gameMoves의 value값은 그대로 살아있는가요? 아니면 null로 처리가 되나요? 스스로 공부하면서 얼핏 본 바로는 key값이 사라지더라도 map의 value는 계속해서 쓸 수 있다고 본거 같은데, 이 부분도 확실하게 제 스스로 짚고 넘어가고 싶습니다! 추가적으로 강의를 들으면서 제네릭스 전반적인 개념을 제 나름대로 그림도 그려가면서 이해를 해봤습니다...ㅎ 제대로 이해했는지 알고 싶어서요...ㅎ 앞으로도 강의 많이 찍어주세요!...ㅎ 항상 감사합니다!
-
미해결스프링 핵심 원리 - 기본편
java.lang.IllegalStateException: Failed to load ApplicationContext
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)java.lang.IllegalStateException: Failed to load ApplicationContext 라고 계속 뜨는데 왜 실패하는 지 모르겠습니다.. 어떤걸 해결해야 테스트가 완료될까요?
-
미해결스프링 핵심 원리 - 기본편
memberRepositroy() 질문있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. AppConfig에서 순서는 보장되지 않는다하셨는데return new MemberServiceImpl(memberRepository())return new OrderServiceImpl(memberRe~~~,dis~~)이부분에서 memberRepository() 메서드를 빼고직접 new MemoryMemberRepository()를 넣으니까서로 다른 객체를 생성하더라구요 ( @Configration 사용한상태 )Configration 애너테이션을 사용해도하나의 메서드로 안빼고 직접 객체를 생성하면스프링컨테이너가 CGLIB?를 통해찾지못하는건가요?
-
미해결스프링 핵심 원리 - 기본편
단축키 cnt+alt_m 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.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. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 싱글톤 문제점에서 order(){ this.price = price) } 이 부분으로 인해서 private int price필드를 서로 참조하고있어 테스트에서 주문금액 조회시 A사용자와 B사용자 값이 같은건 이해가 갔습니다.그런데 궁금한건 예로들어 회원정보 필드가있으면private String nickName; public String getNickName(){ return nickName } 유저가 닉네임을 변경시 setNickName(String nickName) { this.nickName = nickName} setNickName을 사용하여 변경할텐데 왜 이부분에서는 잘 처리되는지 이해가 잘안갑니다 ㅠㅠ
-
해결됨스프링 핵심 원리 - 기본편
pdf 자료 7. 의존관계 자동 주입 7페이지에 질문 있습니다.
[질문 내용]여기에 질문 내용을 남겨주세요.생성자 주입은 객체를 생성할 때 딱 1번만 호출되므로 이후에 호출되는 일이 없다.이 부분에 대해 질문이 있습니다.스프링 컨테이너에 등록되는 객체들은 싱글톤 패턴으로 등록이 되기 때문에 스프링 컨테이너에 객체가 한번 등록되고 나서는 다른 서비스 로직에서 그 객체를 호출할때 계속 그 객체만 사용한다 그래서 스프링 컨테이너에 객체 등록시 생성자를 불러오고 생성자를 불러왔으니 생성자 주입이 발생한다 이때 생성자 주입 호출이 딱 1번만 발생하고 그 이후는 객체를 스프링 컨테이너에 다시 등록할 일이 없으니 생성자 주입이 호출될 일이 없다 라고 이해를 했는데 제가 이해를 한게 맞을까요?감사합니다.
-
해결됨스프링 핵심 원리 - 기본편
빈 등록 과정 질문입니다.
안녕하세요빈 수동등록과 자동등록 과정에 대해서 질문드립니다.챕터 4번째인 스프링 컨테이너와 스프링 빈 편의 교재에 나와있는 참고사항에서 궁금한 점이 생겼습니다.참고 : 스프링은 빈을 생성하고, 의존관계를 주입하는 단계가 나누어져 있다. 그런데 이렇게 자바 코드로 스프링 빈을 등록하면 생성자를 호출하면서 의존관계 주입도 한번에 처리된다. 여기서는 이해를 돕기 위해 개념적으로 나누어 설명했다. 자세한 내용은 의존관계 자동 주입에서 다시 설명하겠다. 용어에 대해서 궁금한 점이 있어요. 교재에 나와있는 빈의 생성은 빈의 등록과 같은 의미인가요?아니면 빈의 생성은 new키워드로 객체를 생성한다는 의미인가요..? 죄송합니다. 이 부분은 쓸 데 없는 질문이지만, 정확한 원리를 모르기 때문에 이러한 단어들의 차이 때문에 혼동이 오는 경우가 있어서요ㅠㅠ. 수동 빈 등록 시 원리가 궁금합니다.@Bean이 붙은 메서드에서 new 키워드로 객체를 생성하고, return이 되는 객체가 빈으로 등록되는 게 맞나요?자동 빈 등록 시 원리가 궁금합니다.@Component가 붙게 되면 해당 클래스 객체를 생성한 뒤에 그 인스턴스를 빈에 등록하는 것이 맞나요? 빈이 등록되는 데에는 순서가 있다고 배웠습니다.2번 질문에서 제가 여쭤본 것 처럼, 수동 등록은 @Bean이 붙은 메서드에서 자바코드로 의존관계를 주입하고 난 뒤에, return으로 반환되는 객체가 비로소 빈으로 등록되는 건가요? 그러면 교재에 나와있듯이, 의존관계 주입은 return하기 전, 즉 객체생성 시에 이뤄지는 건가요? 반면 @ComponentScan방법인 자동등록은 생성자주입일 때를 제외하면, 모든 방법들이 클래스가 우선 빈으로 등록되고 난 뒤에 의존관계 주입이 이뤄지는 것인가요? 그러니까 객체생성 후, 빈으로 등록이 되고, 의존관계는 그 이후에 의존관계가 주입이 되는건지요. 제가 이런 질문으로 확인하고 싶은 점은 스프링 컨테이너에 빈이 등록되는 정확한 시점을 알기 위함입니다. 수동 등록은 @configuration 클래스의 빈 메서드에서 의존관계를 수동으로 모두 설정 후에 return한 객체가 스프링 컨테이너에 빈으로서 올라가는 것인지.또자동 등록은 @Component가 붙은 클래스의 객체를 생성할 때, 생성자 주입이면 의존관계가 우선적으로 주입이 되고 스프링 컨테이너에 빈으로서 등록이 되는지.또한 @Component방법의 나머지 방법들은 객체의 인스턴스가 우선적으로 스프링 컨테이너에 빈으로서 등록이 되고 난 뒤에 의존관계주입이 일어나는지 그 시점들이 궁금합니다. 답변 부탁드립니다.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
함수형 인터페이스(전반전) 람다식 질문있습니다
convertUSD 전달값이 인터페이스 변수임에도 람다식으로 작동되는 이유가 궁금합니다 주석 밑에 코드는 람다식을 인터페이스 변수에 넣고 전달값으로 사용하는건 이해가 가는데 주석으로 되어있는 11번째 코드는 인터페이스 변수가 아닌 그냥 람다식을 붙여넣은건데 이게 인터페이스 convert 메소드인걸 어떻게 알았는지 모르겠네요convert메소드가 하나만있기에 찾아내서 정상작동된건가요?