묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결데이터 분석 SQL Fundamentals
having 절 별명 사용
섹션 4. Group by 실습 01 강의 중select deptno, max(sal) as max_sal, min(sal) as min_sal, round(avg(sal), 2) as avg_salfrom hr.empgroup by deptnohaving avg >= 2000;코드에 대한 질문이 있습니다.막줄에서 avg >= 2000 대신 alias인 avg_sal >=2000 로 적으면 오류가 나는ㄷ 이처럼 having절에서는 별명으로 적으면 인식을 못하는 게 일반적인가요? 감사합니다.
-
미해결스프링 핵심 원리 - 고급편
강의자료 문의
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요, 영한님 강의를 수강 하고 있는 수강생 입니다. 다름이 아니라, 블로그 작성에 있어 영한님 강의자료 PDF 이미지를 사용해도 괜찮을까요?(PDF의 Diagram이 인용 가능한 라이센스인지 확인하고자 문의 드립니다!)
-
미해결[웹 개발 풀스택 코스] HTML&CSS 기초
<track> 태그를 사용하여도 자막이 뜨지 않습니다.
14강 비디오와 오디오 강의 12분 쯤에서, <track> 태그를 사용하여 자막을 뜨는 방법을 알려주셨는데 똑같이 따라해보아도 동영상에서 자막이 뜨지 않습니다. 자막 선택하는 버튼은 정상적으로 작동하는데, 선택을 하여도 자막이 보이지 않습니다. 어떻게 하면 될까요??
-
미해결블렌더 처음 시작부터 로우폴리 3D 애니메이션 까지
선택한 영역의 Inset Faces가 이상해요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세 로우폴리 헬리콥터3 1:06초에서 Shift를 누르고 해당 영역들을 클릭했는데영상과 다르게 선택이 됩니다 어떻게 해야하나요?
-
미해결
MemberServiceIntegrationTest에서 오류가 납니다. java.lang.IllegalStateException: Failed to load ApplicationContext
일단 jpa로 진행하던중 오류가 났습니다..Member.javaMember.javapackage hwang.hwangspring.domain; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity //->JPA가 관리하는 ENTITY라는 의미가 됨 public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; //시스템이 정해줌 private String name; //고객이 회원가입할 때 적는 이름 public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } JpaMemberRepository.java import javax.persistence.EntityManager; import java.util.List; import java.util.Optional; public class JpaMemberRepository implements MemberRepository{ private final EntityManager em; public JpaMemberRepository(EntityManager em) { this.em = em; } @Override public Member save(Member member) { em.persist(member); return member; } @Override public Optional<Member> findById(Long id) { Member member = em.find(Member.class,id); return Optional.ofNullable(member); } @Override public Optional<Member> findByName(String name) { List<Member> result= em.createQuery("select m from Member m where m.name =:name",Member.class) .setParameter("name",name) .getResultList(); return result.stream().findAny(); } @Override public List<Member> findAll() { List<Member> result = em.createQuery("select m from Member m", Member.class).getResultList(); return result; //객체 자체를 return, } } Springconfig.javaimport org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.persistence.Entity; import javax.persistence.EntityManager; import javax.sql.DataSource; @Configuration public class SpringConfig { private final EntityManager em; private final DataSource dataSource; @Autowired public SpringConfig(DataSource dataSource,EntityManager em){ this.dataSource=dataSource; this.em=em; } @Bean public MemberService memberService() { // 이 로직을 등록해서 스프링 빈에 등록을 해줌 return new MemberService((MemoryMemberRepository) memberRepository()); //MemberService()가 스트링빈에 등록됨 } @Bean public MemberRepository memberRepository(){ return new JpaMemberRepository(em); } } MemberIntegrataionTest를 실행할경우package hwang.hwangspring.service; import hwang.hwangspring.domain.Member; import hwang.hwangspring.repository.MemberRepository; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.transaction.annotation.Transactional; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; @SpringBootTest @Transactional class MemberServiceIntegrationTest { @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; @Test public void 회원가입() throws Exception { //Given Member member = new Member(); member.setName("hello"); //When Long saveId = memberService.join(member); //Then Member findMember = memberRepository.findById(saveId).get(); assertEquals(member.getName(), findMember.getName()); } @Test public void 중복_회원_예외() throws Exception { //Given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); //When memberService.join(member1); IllegalStateException e = assertThrows(IllegalStateException.class, () -> memberService.join(member2));//예외가 발생해야 한다. assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); } }아래와 같은 오류가 뜹니다 ㅠㅠ 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.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) 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.UnsatisfiedDependencyException: Error creating bean with name 'memberController' defined in file [C:\Users\hyk46\hwang-spring\hwang-spring\out\production\classes\hwang\hwangspring\controller\MemberController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'memberService' defined in class path resource [hwang/hwangspring/SpringConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [hwang.hwangspring.service.MemberService]: Factory method 'memberService' threw exception; nested exception is java.lang.ClassCastException: class hwang.hwangspring.repository.JpaMemberRepository cannot be cast to class hwang.hwangspring.repository.MemoryMemberRepository (hwang.hwangspring.repository.JpaMemberRepository and hwang.hwangspring.repository.MemoryMemberRepository are in unnamed module of loader 'app') 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:920) 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) ... 71 moreCaused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'memberService' defined in class path resource [hwang/hwangspring/SpringConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [hwang.hwangspring.service.MemberService]: Factory method 'memberService' threw exception; nested exception is java.lang.ClassCastException: class hwang.hwangspring.repository.JpaMemberRepository cannot be cast to class hwang.hwangspring.repository.MemoryMemberRepository (hwang.hwangspring.repository.JpaMemberRepository and hwang.hwangspring.repository.MemoryMemberRepository are in unnamed module of loader 'app') at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:658) at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:486) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195) 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.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391) 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) ... 89 moreCaused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [hwang.hwangspring.service.MemberService]: Factory method 'memberService' threw exception; nested exception is java.lang.ClassCastException: class hwang.hwangspring.repository.JpaMemberRepository cannot be cast to class hwang.hwangspring.repository.MemoryMemberRepository (hwang.hwangspring.repository.JpaMemberRepository and hwang.hwangspring.repository.MemoryMemberRepository are in unnamed module of loader 'app') at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ... 103 moreCaused by: java.lang.ClassCastException: class hwang.hwangspring.repository.JpaMemberRepository cannot be cast to class hwang.hwangspring.repository.MemoryMemberRepository (hwang.hwangspring.repository.JpaMemberRepository and hwang.hwangspring.repository.MemoryMemberRepository are in unnamed module of loader 'app') at hwang.hwangspring.SpringConfig.memberService(SpringConfig.java:29) at hwang.hwangspring.SpringConfig$$EnhancerBySpringCGLIB$$f992599.CGLIB$memberService$0(<generated>) at hwang.hwangspring.SpringConfig$$EnhancerBySpringCGLIB$$f992599$$FastClassBySpringCGLIB$$aa36e038.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244) at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331) at hwang.hwangspring.SpringConfig$$EnhancerBySpringCGLIB$$f992599.memberService(<generated>) 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.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ... 104 more
-
미해결스프링 시큐리티 OAuth2
jwt token의 토큰 검증
안녕하세요강의에서는 resource 서버가 받은 토큰 검증 과정에서 opaqueToken을 사용하고 있는데요.JWT 경우로 질문을 드리고 싶습니다.JWT토큰도 opaqueToken과 마찬가지로 oauth2/revoke api를 호출하면 정상적으로 meta.invalidated 필드가 true로 변경되는 것을 확인했습니다.해당 필드가 true로 변경되었음에도 불과하고 resource 서버에 동일한 토큰으로 요청을 보내도 정상적으로 동작하고 있는 것을 확인했는데요. jwtToken 방식의 경우에는 토큰 검증시 최초에만 jwkSet을 가져오기 위해 한번만 authorization server를 호출하고 이후에는 내부적으로 jwtDecoder를 사용해 검증하는 것으로 보입니다. 결론적으로 jwtToken을 사용할때는 oauth2/revoke를 통해 meta.invalidated 값과 무관하게 토큰 만료 전까지는 지속적으로 접근이 가능한 것으로 보이는데요.제가 이해한 흐름이 맞을까요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
orderItem에 관한 질문입니다.
만약에 JPARepository를 사용하면 orderItemRepository도 따로 만들어서 orderItemRepository.save()를 이용하는게 맞는건가요??
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
추상화 + API
선생님 강의 잘 듣고 있습니다. 현재 섹션 0까지 완강한 상태인데 궁금한 점이 있습니다.[Q. 추상화란 무엇인가요? ★★★] 강좌에서 프로세스 추상화를 설명하실 때 "어떠한 내부 프로세스를 숨기는 것을 말한다." 이렇게 설명하셨는데요 그러면 만약에 CS 면접시에 추상화에 대한 설명을 해보라는 질문을 받았을 때프로세스 추상화를 설명하면서 API의 예시를 들어서 설명해도 맞는걸까요?? "프로세스 추상화는 내부 프로세스를 숨기는 것을 말합니다. 내부의 세세한 로직을 알 필요 없이 단순한 명령어로 기능을 동작시키는 것을 예시로 들 수 있는데요, API 또한 프로세스 추상화의 대표적인 예시로 말할 수 있습니다(사용자는 해당 API의 내부 로직이 어떻게 구성되어 있는지 잘 몰라도 API 명세서에 정의한 메서드들만 호출하면 기능을 동작시킬 수 있기 때문에...)"이런식으로 설명하면 될 것 같은데 제대로 이해하고 있는지 궁금합니다!
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
채점 문제 해결부탁드립니다..
채점하려고 AA.py파일을 만들어 k의 약수문제에 붙여넣고 judge를 누르니 처리되지 않은 예외: System.AggregateException: 하나 이상의 오류가 발생했습니다. ---> System.IO.IOException: 파이프가 끝났습니다. 위치: System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 위치: System.IO.__Error.WinIOError() 위치: System.IO.FileStream.FlushOSBuffer() 위치: System.IO.FileStream.<>c.<FlushAsync>b__117_0(Object state) 위치: System.Threading.Tasks.Task.InnerInvoke() 위치: System.Threading.Tasks.Task.Execute()--- 예외가 throw된 이전 위치의 스택 추적 끝 --- 위치: System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 위치: System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 위치: System.IO.StreamWriter.<FlushAsyncInternal>d__68.MoveNext()--- 예외가 throw된 이전 위치의 스택 추적 끝 --- 위치: System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 위치: System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 위치: System.IO.StreamWriter.<WriteAsyncInternal>d__55.MoveNext() --- 내부 예외 스택 추적의 끝 --- 위치: System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) 위치: System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout) 위치: Judge.Program.Main(String[] args) 다음과 같은 오류가 발생하는데 어떻게 해야할까요
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
노래도 내주세요...
중독성 미쳤습니다 선생님ㅋㅋ...1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ 1 바이트 짜리~ (강의 재밌게 듣고 있습니다 ㅋㅋ! 오늘 질문은 여기까지!)
-
해결됨더 자바, 코드를 조작하는 다양한 방법
CGLib를 따라 해보면서 문제점이 있으며, 해결법입니다. JDK17입니다.
JDK17을 사용하면서, `Spring`의 추가를 하지않고 진행을 하면서 보니 아래의 이미지와 같은 오류가 발생하네요.확인을 해보니, JDK16부터 Issue가 발생되었던것 같아보입니다. 제가 참고한 글은 https://github.com/cglib/cglib/issues/191 글이었습니다. 해결법은 위의 issue에 나와있는 그대로, VMOptions항목에 --add-opens java.base/java.lang=ALL-UNNAME를 추가하였습니다. 아래의 사진처럼요.혹시 실습해보고 싶은데 안되는 분들중, 유사한 오류가 나시는 분들은 참고하시기 바랍니다.
-
해결됨외워서 끝내는 네트워크 핵심이론 - 기초
데이터 처리량
데이터 처리량을 늘리고 싶어서소켓버퍼와 MTU크기를 튜닝해도 경로 중간에 있는 라우터의 크기가 작게 설정돼있으면 이런 경우는 방법이 없나요??헤더에 분할 할 수 없다는 시그널을 남겨서 보내기도 하나요?? 감사합니다
-
해결됨[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
최종본제작 세로2칼럼 c타입에 공지사항 갤러리 제작 관련 문의
공지사항 갤러리와 바로가기 제작이 생략 되어있어서다른 실전 제작 강의를 참고해서 혼자 만들어보았는데, 공지사항과 갤러리 사이 간격을 주고싶은데 방법을 모르겠습니다 ㅠ그리고 바로가기 메뉴와 갤러리 메뉴 사이에도간격을 주는 방법을 모르겠는데 어떻게 하면 될까요?지금 제가 작성한 html과 css에 어떤걸 추가하면 될까요 ㅠㅠ?
-
해결됨처음 만난 리액트(React)
최종변환?
jsx강의 에서는 jsx는 내부적으로 html/xml코드를 자바스크립트로 변환하는 과정을 거치게 된다. 그래서 최종적으로는 자바스크립트 코드로 나오게 된다. 이렇게 말씀해주시고 jsx코드를 자바스크립트 코드로 변환하게 해주는 것이 react.createElement라고 하셨는데, 여기 강의 에서는 5분 35초 부근에 react.createElement 내부에 리액트 컴포넌트를 적어도 되고 모든 리액트 컴포넌트는 최종적으로는 html 태그를 사용하게 돼있다라고 하셨습니다. react.createElement를 통해서 최종적으로 자바스크립트가 된다는건가요? 아니면 html 코드가 된다는건가요,,?ㅠㅠ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
jar 랑 war
둘중에서 war 는 서버에 배포용이라고 하셧는데 포토폴리오 만들때 서버에 배포용으로 하려고 하면 war로 선택해서 프로젝트를 생성하야하나요? 아니면 jar 로 해도 상관없나요? 포토폴리오는 도메인과 서버를 구매해서 쓸 예정입니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
변경감지를 사용하여 db 데이터 업데이터 시 sql이 2번 실행되는 것에 대한 성능
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요.김영한님 JPA 강의를 다 듣고 개발을 하던 도중 궁금한게 생겼습니다.Entity를 변경 감지를 통해 데이터를 바꿀 시 select 쿼리를 통해 데이터를 불러오고 수정하게 되면 update 쿼리가 한번사용되어 총 2번의 sql로 데이터를 바꾸게 되는데,그냥 "update ~~~ where id = ?" 이런 식으로 데이터를 바꾸게 되면 한 번의 sql로 데이터를 바꾸니까 성능 상 더 좋은 부분이 생길수도 있나? 라는 생각을 하게됩니다. 여기서 답변 받고 싶은 부분은이 부분은 아주 미묘한 차이니까 무시하는 것인가?실제로 자주 변경되는 데이터는 성능상에 이유로 update 쿼리를 한 번만 직접 날려 처리하는 경우도 있는가? (벌크 연산제외)변경 감지로 데이터를 update하는 것의 장점들도 궁금합니다. 제가 예전에 강의를 들어서 혹시 영한님이 언급하셨는데 못 찾고 있는건가라는 생각도 들지만 궁금해서 여쭤봅니다!
-
미해결스프링 핵심 원리 - 기본편
MyLogger 를 Interceptor 로 구현 시 질문
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]안녕하세요? 강의를 듣다가 requesURL 같은 경우 Interceptor 에서 멤버 변수로 저장하는 것이 좋다고 해서 구현을 해보려고 했는데 문제가 생겨서 질문 드립니다.## 앞으로 강좌를 계속 듣긴 할 거라서 혹시 뒤의 강좌를 듣고 나면 해결될 수 있는 문제라면 어느 강좌인지 알려주셔도 될 것 같습니다. MyLogger.javapackage hello.core.common; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; import java.util.UUID; @Component @Scope(value = "request") public class MyLogger { private String uuid; 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 + "] request scope bean create: " + this); } @PreDestroy public void close() { System.out.println("[" + uuid + "] request scope bean close: " + this); } } CoreInterceptor.javapackage hello.core.common; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.ObjectProvider; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @Component @RequiredArgsConstructor public class CoreInterceptor implements HandlerInterceptor { private final ObjectProvider<MyLogger> myLoggerProvider; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("CoreInterceptor.preHandle"); String requestURL = request.getRequestURL().toString(); MyLogger myLogger = myLoggerProvider.getObject(); myLogger.setRequestURL(requestURL); return HandlerInterceptor.super.preHandle(request, response, handler); } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { HandlerInterceptor.super.postHandle(request, response, handler, modelAndView); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { HandlerInterceptor.super.afterCompletion(request, response, handler, ex); } } WebMvcConfig.javapackage hello.core.common; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.ObjectProvider; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration @RequiredArgsConstructor public class WebMvcConfig implements WebMvcConfigurer { private final ObjectProvider<MyLogger> myLoggerProvider; @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new CoreInterceptor(myLoggerProvider)).excludePathPatterns("/css/**", "/images/**", "/js/**"); } } LogDemoController.javapackage hello.core.web; import hello.core.common.MyLogger; 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; import javax.servlet.http.HttpServletRequest; @Controller @RequiredArgsConstructor public class LogDemoController { private final LogDemoService logDemoService; private final ObjectProvider<MyLogger> myLoggerProvider; @RequestMapping("log-demo") @ResponseBody public String logDemo(HttpServletRequest request) { String requestURL = request.getRequestURL().toString(); MyLogger myLogger = myLoggerProvider.getObject(); myLogger.log("controller test"); logDemoService.logic("testId"); return "OK"; } } LogDemoService.javapackage 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); } } 위와 같이 이렇게 구현을 해보니 문제가 생기는데...일단, 인터셉터를 스프링 빈으로 등록하면서 MyLogger 를 활용하려면 알려주신 ObjectProvider 를 사용해야 할 것 같은데... WebMvcConfig 에서 인터셉터를 등록하는 경우, 위의 경우처럼 처음 서버 구동 시에 처리되어야 하는데 이 때는 reqeust 를 사용할 수 없는 문제입니다. 앞서 이 문제를 ObjectProvider 로 해결했는데 Interceptor 의 경우, 나중에 등록이 안 될 것 같은데 이런 경우 어떻게 해결해야 될까요?저렇게 인터셉터를 null 로 호출하니 실행해 보면 WebMvcConfig.java -> registry.addInterceptor(new CoreInterceptor(null))...java.lang.NullPointerException: Cannot invoke "org.springframework.beans.factory.ObjectProvider.getObject()" because "this.myLoggerProvider" is null위와 같은 에러가 발생합니다.관련된 소스 첨부하였습니다.도움 부탁 드립니다. 위의 소스는 제대로 된 걸로 다시 첨부하였습니다.registry.addInterceptor(new CoreInterceptor(null))...->private final ObjectProvider<MyLogger> myLoggerProvider; @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new CoreInterceptor(myLoggerProvider)).excludePathPatterns("/css/**", "/images/**", "/js/**"); } 위와 같이 수정하였습니다. 이런 저런 버그들과 강의에서 가르쳐 주신 ObjectProvider 를 사용해서 설정파일에서 request 가 들어오는 시점에 로그를 주입해서 처리되도록 수정하였습니다.Interceptor 에서는 왜 ObjectProvider 를 사용하지 못할 거라고 생각했는지 모르겠네요. 답변 글 보고 질문을 수정하다가 생각이 나서 소스를 수정해 보니 잘 되는 것 같네요.감사합니다.
-
미해결스프링 시큐리티 OAuth2
Resources Server 질문
안녕하세요 수원님 ! 강의를 수강하다가 헷갈리는 내용이 생겨 질문드립니다 ! 위와 같은 그림을 설명하실때, 스프링 서버는 Client 의 역할을 하신다고 하셨습니다. 이후 Resource Server 를 강의하시는 파트에서는 스프링 서버가 리소스 서버가 된다고 하셨는데, 이 부분에서 혼동이 발생하여 질문드립니다. 카카오와 같은 소셜 로그인 기능을 구현한다고 가정하겠습니다.스프링 서버가 JWT 의 의존성을 갖고, 프론트에게 토큰을 발행해주는 서비스를 구현한다면, 이때 스프링 서버는 Client 와 Resourse Server 의 역할을 동시에 하는 것일까요??위와 같은 구조에서 토큰을 프론트에 발행할 때, 스프링은 카카오 인가 서버로 부터 토큰을 받고 해당 토큰을 그대로 내려주는 것일까요?? 보안상 문제가 발생하니 발급 받은 토큰을 기반으로 새로운 JWT 생성해서 내려주는 것일까요??소셜 로그인을 연동했다면, issuer-uri 에는 카카오의 인가 서버 Url 을 입력 하면 될까요??
-
미해결언리얼 엔진4 입문 (C++ 기반)
언리얼엔진 VisualStudio build 오류
안녕하세요. 유니티vs언리얼 강의를 들으며 이제 프로젝트 내에 C++ 코드를 처음 작성하고 있던 중이었습니다. 그런데 이제 코드를 동일하게 작성하고 빌드를 눌렀는데 아래와 같은 오류가 나옵니다. 코드를 잘못 따라친건가 싶어서 아예 새 C++ 파일을 생성해 빌드를 해봐도 위와 동일한 오류가 나옵니다. 구글에도 찾아보고 해결 방법을 찾아보고 있기는 한데 , 혹시 오류의 원인을 알 수 있을까 해서 질문을 올립니다. 언리얼 버전은 5.2입니다.비쥬얼스튜디오 버전은 2022 입니다.
-
미해결JSP 웹 쇼핑몰 프로그래밍 기본 과정(JSP WEB Programming)
이 강의는 model2 mvc 패턴은 쓰지않는건가요? 아무나 답 좀 해주세요......어흑흑흑....
모델 1만 배우고 끝나는 건가요?