묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
Stat외에 싱글톤 클래스는 어떻게 만드나요?
프로젝트세팅에 추가한 ABGameSingleton안에는스텟관련된것이 추가되있는데.. 다른 싱글톤을 만드려면 어떻게 해야하나요?? 스탯 관련된것은 빼고 ABGameSingleton을 상속받아 다른 클래스를 제작하면 될까요??
-
해결됨[백문이불여일타] 데이터 분석을 위한 기초 SQL
해커랭크 넥스트 챌린지 문제 질문드립니다!
Query all columns for a city in CITY with the ID 1661.The CITY table is described as follows:처음 예시문제 풀어보고 넥스트 챌린지 눌렀는데 강의에 나온 station 문제랑 다른 예제문제가 나와 해당 문제 코드는 어떻게 짜야될지 모르겠어서 문의드립니다! 확인 한 번 해주시면 감사드리겠습니다 :)
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
다른 스켈레탈 메쉬를 가진 적을소환하려고 하면
스켈레탈 메쉬도 동일한방법으로 불러와 세팅해야 할까요?
-
미해결처음 만난 리액트(React)
styled-components 설치 문제
module를 지웠다가 깔아봐도 계속 이 오류가 뜨네요.,..
-
해결됨왕초보를 위한 네트워크 기초
논리주소와 물리주소
논리주소와 물리주소에 관해서 이해가 부족해서 질문 부탁드립니다. . 근데 논리주소와 물리주소를 나누어놓은 이유가 뭔가요?? 논리주소가 사람이 이해하기 쉽고 변동이 쉬워서 이고 물리주소는 사람이 이해하기 어렵다는것 까지는 이해했습니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Controller V5중 외부 주입 방식 질문
안녕하세요. 유연한 컨트롤러2- V5 강의 11분경에 handlerMappingMap, handlerAdapters를 외부에서 주입하는 방식으로 구현하면 프론트 컨트롤러조차 확장시 건들지 않아도 된다라고 언급 해 주셨습니다해당 방법의 구현은, 저 해시맵과, 어레이리스트를 필드로 갖고, 내용물을 내부에서 넣어주는 클래스를 만든 뒤 스프링 빈으로 등록하여 DI를 하는 방식으로 구현하는게 말씀하신 의도인 방법일까요?
-
해결됨비전공자를 위한 진짜 입문 올인원 개발 부트캠프
강의 5분경 내용인 "메인 페이지" 글자가 뜨지 않습니다.
이전 메인페이지가 뜨지 않는다는 질문과 답변들을 통해 App.js파일과 index.js 파일 상단에 import React from 'react'; 를 넣기도 해보고 node와 npm 삭제 > 재설치 후 진행해 보아도 메인페이지에 글자가 뜨지 않아 질문드립니다ㅜㅜ또한 각 파일의 vscode내 터미널 로그를 보아도 딱히 에러가 보이지 않아 문의드립니다..!
-
미해결된다! 사각사각 아이패드 드로잉 with 프로크리에이트
안녕하세요 질문이 있습니다.
애니메이션 어시스트는 어떻게 저장하면 되나요?
-
해결됨배달앱 클론코딩 [with React Native]
remote push notification이 포그라운드에서 팝업되지 않아요
핸드폰 상단바에서 알림 표시만 되고 알림 팝업은 되지 않습니다.localNotification을 활용해서 팝업시켜 봤지만 그렇게 될 경우 onNotification과 함께 중복된 알람 2개가 동시에 옵니다.그리고 상단바를 열어서 localNotification으로 온 알람을 press하게 되면 데이터가 빈 오브젝트로 넘어와서 Screen Navigate를 하지 못합니다.(onNotification로 발생하는 알림에서만 데이터를 활용할 수 있는 상황입니다)결론은 onNotification로 온 알림이 팝업되어서 press를 하면 해당 화면을 이동시키는게 최종 목적이고현재 포그라운드에서 알림 팝업이 안되는 이슈를 해결하고 싶습니다..계속 찾아봐도 답을 못 찾겠어서 질문 남깁니다!// AndroidManifest.xml <meta-data android:name="com.dieam.reactnativepushnotification.notification_foreground" android:value="true"/> <!-- Change the resource name to your App's accent color - or any other color you want --> <meta-data android:name="com.dieam.reactnativepushnotification.notification_color" android:resource="@color/white"/> <!-- or @android:color/{name} to use a standard color --> <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationActions" /> <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationPublisher" /> <receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationBootEventReceiver" android:exported="true"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.QUICKBOOT_POWERON" /> <action android:name="com.htc.intent.action.QUICKBOOT_POWERON"/> </intent-filter> </receiver> <service android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationListenerService" android:exported="false" > <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service> // App.tsx PushNotification.configure({ onNotification: function (notification: any) { PushNotification.localNotification({ message: notification.message, title: notification.title, channelId: 'channel_general', }) } }) PushNotification.createChannel( { channelId: 'channel_general', channelName: '앱', }, (created: boolean) => console.log(`createChannel returned '${created}'`), );
-
미해결스프링 핵심 원리 - 기본편
인터페이스와 구현체 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.강의를 듣다가 갑자기 의문점이 들어서 질문올립니다.public interface DiscountPolicy { int discount(Member member, int price); } 이 코드는 인터페이스이고public class FixDiscountPolicy implements DiscountPolicy{ private int discountFixAmount = 1000; //1000원 할인 @Override public int discount(Member member, int price) { if(member.getGrade() == Grade.VIP) { return discountFixAmount; } else { return 0; } } } 이 코드는 구현체입니다.그런데 궁금한 점은private final DiscountPolicy discountPolicy = new FixDiscountPolicy();에서 discountFixAmount 변수를 사용할 수 있는 이유가 무엇인가요? 타입이 DiscountPolicy이기 때문에 인터페이스에는 없고 구현체에만 있는 메서드나 변수는 사용 할 수 없는거 아닌가요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Junit4 -> Junit5로 테스트 적용 시
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.@Test(expected = IllegalStateException.class) public void 중복_회원_예외() throws Exception{ //given Member member1 = new Member(); member1.setName("kim"); Member member2 = new Member(); member2.setName("kim"); //when memberService.join(member1); memberService.join(member2); //then } }Junit5로 적용 시키고 싶어서 아래와 같이 테스트 코드를 작성했는데, 잘 작성한게 맞나요? 혹시 더 좋은 BestPractice가 있다면, 알려주시면 감사하겠습니다. @Test public void 중복_회원_예외() throws Exception{ //given Member member1 = new Member(); member1.setName("kim"); Member member2 = new Member(); member2.setName("kim"); //when memberService.join(member1); //then assertThrows(IllegalStateException.class, () -> {memberService.join(member2);}); } }
-
미해결[중급편] 코인 가격 모니터링 앱 제작 (Android Kotlin)
Room 관련한 에러 질문 올려용
C:\Users\82103\AndroidStudioProjects\coco\app\build\generated\source\kapt\debug\com\bokchi\coco\db\CoinPriceDatabase_Impl.java:64: error: onCreate(SupportSQLiteDatabase) in <anonymous com.bokchi.coco.db.CoinPriceDatabase_Impl$1> cannot override onCreate(SupportSQLiteDatabase) in Delegate protected void onCreate(SupportSQLiteDatabase _db) { ^ attempting to assign weaker access privileges; was public 이런 에러가 나는데 혹시 어떤 문제인지 알 수있을까요? 깃주소도 첨부합니다 https://github.com/chanho0908/CoCo
-
미해결스프링 핵심 원리 - 기본편
OrderServiceImpl 클래스 질문있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]클래스의 createOrder 메소드에서Member member = memberRepository.findById(memberId); 이 부분에서 왜 findById() 메소드가 사용가능한 건가요 클래스 내부에 private final MemberRepository memberRepository = new MemoryMemberRepository(); 가 있는거는 알겠는데 그러면 memberRepository의 맵에는 아무것도 없지않나요?질문이 좀 헷갈리긴하는데 createOrder 메소드가 지금 할인여부를 확인해서 Order 객체를 만들어서 리턴해주는데 지금 memberRepository.findById(memberId); 가 왜 그 여부를 확인 가능한 건지 이해가 안됩니다 지금 회원리스트가 클래스에 연결된 것도 아니고 그냥 클래스 내부에 private final MemberRepository memberRepository = new MemoryMemberRepository(); 만들어서 해당 변수 사용한건데 그러면 아무것도 없으니까 찾을 수 없는거 아닌가요?그러니까 OrderApp클래스 에서도MemberService memberService = new MemberServiceImpl();OrderService orderService = new OrderServiceImpl();Long memberId =1L;Member member = new Member(memberId,"memberA", Grade.VIP);memberService.join(member);Order order = orderService.createOrder(memberId,"itemA",10000);System.out.println("order= "+order);memberService변수에 멤버를 추가를 해줬는데 이 추가된 멤버의 자료자체가 memberService에 있으니까 이 멤버가 vip인지 아닌지알려면 createOrder메소드에 memberService를 넘겨줘서 뭔가 검사를 해야되는거 아닌가요 왜 제가 봤을땐 연결이 된 부분이 없는거 같은데 여부를 검사할 수 있는지 궁금합니다.
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
삭제하기 버튼은 왜 없나요?
DiaryEditor에서 뒤로가기랑 취소하기 버튼 2개가 있는데 "취소하기를 삭제하기로 바꿔야 하는 것 아닌가?"라는 의문이 들었습니다. 강의를 모든 페이지 구성까지 들었는데 어디에서 일기 삭제하기가 없어서요..혹시 책이나 뒷 강의에 나올진 모르겠지만..
-
해결됨토비의 스프링 부트 - 이해와 원리
[DataSource 자동 구성 클래스 테스트] properties와 yml의 차이점 관련 질문입니다.
안녕하세요, 강사님.섹션 9-2, DataSource 자동 구성 클래스에서, connect() 을 테스트하는 코드에서 yml파일을 이용했을 때, 테스트 실패를 하여 질문글 드립니다.먼저 강의와 동일하게 properties 파일을 이용한다면 정상적으로 테스트가 통과됩니다.application.propertiesDataSourceTest평소에 yml 파일을 더 선호하여, yml 파일로 변경한 후, 테스트 코드 상에서 @TestPropertySource("classpath:/application.yml") 로 classpath를 properties에서 yml로 바꿨을 뿐, 기존과 동일한 환경에서 테스트를 진행해봤습니다. application.ymlDataSourceTest하지만, 아래와 같은 에러 로그가 발생하며 테스트에 실패하게 됩니다. 에러 로그java.lang.IllegalStateException: Failed to load ApplicationContext at 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.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:232) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55) Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tobyspring.config.autoconfig.ServerProperties': Initialization of bean failed; nested exception is org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'server' to tobyspring.config.autoconfig.ServerProperties at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:628) 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:920) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:127) at org.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60) at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.delegateLoading(AbstractDelegatingSmartContextLoader.java:276) at org.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext(AbstractDelegatingSmartContextLoader.java:244) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:141) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:90) ... 71 more Caused by: org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'server' to tobyspring.config.autoconfig.ServerProperties at org.springframework.boot.context.properties.bind.Binder.handleBindError(Binder.java:387) at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:347) at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:332) at org.springframework.boot.context.properties.bind.Binder.bindOrCreate(Binder.java:324) at org.springframework.boot.context.properties.bind.Binder.bindOrCreate(Binder.java:293) at org.springframework.boot.context.properties.bind.Binder.bindOrCreate(Binder.java:278) at tobyspring.config.autoconfig.PropertyPostProcessorConfig$1.postProcessAfterInitialization(PropertyPostProcessorConfig.java:30) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:455) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1808) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) ... 85 more Caused by: org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.lang.String] to type [tobyspring.config.autoconfig.ServerProperties] at org.springframework.boot.context.properties.bind.BindConverter.convert(BindConverter.java:118) at org.springframework.boot.context.properties.bind.BindConverter.convert(BindConverter.java:100) at org.springframework.boot.context.properties.bind.BindConverter.convert(BindConverter.java:92) at org.springframework.boot.context.properties.bind.Binder.bindProperty(Binder.java:459) at org.springframework.boot.context.properties.bind.Binder.bindObject(Binder.java:403) at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:343) ... 93 more 에러 로그를 확인한 후, ServerProperties가 제대로 바인딩 되지 않음을 확인하였습니다.바인딩이 테스트 환경이 아닌, 일반 서버를 구동할 때도 제대로 안되는건가? 라는 의구심에 로그를 찍어보며 이를 확인해봤습니다. 로그 출력PropertyPostProcessorConfigTomcatWebServerConfigDataSourceConfig로그 출력 확인 (일반 서버 구동)테스트 환경이 아닌 일반 서버를 실행시, 위의 결과와 마찬가지로 제대로 바인딩됨을 확인하였습니다. 따라서, 테스트 코드상에서 바인딩이 제대로 이뤄지지 않음을 알게 되었고, 스프링부트 레퍼런스를 찾아보니 yml 파일은 @PropertySource와 @TestPropertySource를 통해 로딩되지 않음을 확인하였습니다.(https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#boot-features-external-config-yaml-shortcomings) 이를 해결하기 위해, 구글링을 통해 해결방법을 참고하여 아래와 같이 변경하였더니, 테스트가 제대로 통과됨을 확인하였습니다.(참고링크 : https://www.inflearn.com/questions/293325/testpropertysource%EC%A7%88%EB%AC%B8%EC%9E%85%EB%8B%88%EB%8B%A4 )하지만 이전 토비님의 질문 답변 중, @SpringBootTest와 @ExtendWith + @ContextConfiguration 의 차이점에 대한 글을 보게 되었습니다.(https://www.inflearn.com/questions/834733/springboottest%EC%99%80-extendwith-contextconfiguration-%EC%B0%A8%EC%9D%B4%EA%B0%80-%EA%B6%81%EA%B8%88%ED%95%A9%EB%8B%88%EB%8B%A4) 혹시 @ExtendWith + @ContextConfiguration 을 유지한 채, yml 파일을 이용하여 해당 테스트를 통과할 수 있는 방법이 존재하는지 궁금합니다. 항상 수준 높은 강의에 감사드립니다.
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
서비스 단계에서 DTO를 사용하지 않고 엔티티를 바로 써도 되나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 강의를 수강 후 엔티티대신 DTO를 서비스에서 사용해야하는지 의문이 생겼습니다.controller 에서는 엔티티형태로 반환해서도 파라미터로 받아서도 안되는것을 이해했습니다.service 에서는 화면으로 보여지기 전에 controller 에서 DTO 형태로 가공할 수 있기 때문에 service 에서는 엔티티형태로 반환하고 파라미터로 받아도 되나요?1번이 아니라면 service 에서 DTO를 사용해야하는 경우나 안사용해도 되는 경우나 약간의 가이드를 주시면 감사하겠습니다.
-
미해결파이썬 레시피 - 웹 활용 입문편 (전자책 포함)
선생님 질문이 있습니다.
네이버 디벨로퍼는 따로 api 사용예제를 올려주지만 다른 사이트나 네이버쇼핑 api 를 사용하고싶을때는 사용예제가 나와있어도 하나하나 이해를 하고 있지 못해서 고민입니다. 예제가 없는 경우에는 어떻게 사용할 수 있는지 알고싶습니다 !
-
해결됨면접관 입장에서 작성하는 합격하는 이력서와 포트폴리오
시각화 하는 툴
포트폴리오 추천과 팁 강의에서 시각화를 하라고 하셨는데 혹시 저렇게 아키텍처 시각화와 uml을 만드는 툴이 따로 있을까요?
-
미해결실습으로 배우는 선착순 이벤트 시스템
카프카 컨슈머에서 본문과 같이 출력되는데,
/14523769<;B@C8:ED?A=>FKHLOGMNQRISJPTWZ^XUb_`]a\[YVd 소스코드 내에서 완전히 동일하게 따라했는데 왜 이렇게 나타나는지 혹시 아시나요..
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
문자열 char와 char* 관련 질문입니다.
안녕하세요 강의 듣는 도중 궁금한 점이 생겨서 질문 드립니다. int BUF_SIZE = 100;char a[BUF_SIZE] = "Hello"char b[BUF_SIZE] = "World"; 1.strcpy나 strcat 같은 함수를 보면 char가 char* 형태의 매개변수가 될 수 있는 이유가a가 배열이기 때문에 배열의 시작주소를 인자로 넘겨주기 때문에 가능한건가요? 2.char형 변수는 데이터가 배열에 저장이 되기 때문에 복사가 이루어지면 그만큼 데이터를 복사하게된다고 생각이드는데실무에서는 용량이나 트래픽을 아끼기위해서 char* 나 const char* 를 사용하는 편인가요??