묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
배포후 에러
{ "extends": ["next"]}선생님 안녕하세요.eslintrc.json 변경후 배포하니 잘되었습니다.그런데 커뮤니티 사진 변경시 오류가나서 "message": "Parsing error: Cannot find module 'next/babel'\nRequire stack:\n- C:\\Users\\DELL\\Desktop\\reddit-clone-app\\client\\node_modules\\next\\dist\\compiled\\babel\\bundle.js\n- C:\\Users\\DELL\\Desktop\\reddit-clone-app\\client\\node_modules\\next\\dist\\compiled\\babel\\eslint-parser.js\n- C:\\Users\\DELL\\Desktop\\reddit-clone-app\\client\\node_modules\\eslint-config-next\\parser.js\n- C:\\Users\\DELL\\Desktop\\reddit-clone-app\\client\\node_modules\\@eslint\\eslintrc\\dist\\eslintrc.cjs", "source": "eslint", "startLineNumber": 1, "startColumn": 1, "endLineNumber": 1, "endColumn": 1node_modules 다시설치해보고 했는데 해결이 안되더라구요그러다터미널에서 client,도커, server 실행은되는데 localhost:3000 들어가니 터미널에서 client 오류뜨고localhost:3000에서 server error 가 떳어요Server Error Error: Invalid <Link> with <a> child. Please remove <a> or use <Link legacyBehavior>. Learn more: https://nextjs.org/docs/messages/invalid-new-link-with-extra-anchor This error happened while generating the page. Any console logs will be displayed in the terminal window.server localhost:3000이어서 그런건가요
-
미해결스프링 핵심 원리 - 기본편
수업질문
의존관계 자동주입에서 질문있습니다.(영상시간 18분 16초) @Autowired를 통해 의존관계 주입에서 자료타입에 따라 설정된다고 하였는데, DiscountPolicy 자료타입에서 rateDicountPolicy가 @Component 설정이 되어있어서 rateDicountPolicy 만 의존관계 자동주입설정된건가요? @Component 유무에 따라서 자료타입지정이 가능하면 자료타입 중(FixDiscountPolicy,RateDiscountPolicy) 하나만 설정으로 해야겠네요?? 여러개를 설정하면 충돌에러가 뜨나요?
-
미해결스프링 시큐리티 OAuth2
중복로그인
안녕하세요, 좋은 강의 올려주셔서 정말 감사합니다. 강의 덕분에 프로젝트를 무사히 할 수 있게 되었습니다. jwt 구현하면서 궁금한 점이 생겨 질문을 남기게 되었습니다. jwt를 사용하면서 컴퓨터 a에서 로그인하고 나서 컴퓨터 b에서 로그인을 할 경우,중복 로그인이 발생하는데 이전 강사님 강의에서는 세션을 사용하면 세션에서 방지할 수 있다고 배웠으나 jwt에서는 세션을 사용하지 않기 때문에 중복 로그인을 어떻게 막을 수 있는 지 궁금하여 질문을 남기게 되었습니다. 나름대로 찾아본 결과, 디비에 로그인을 시도에 대한 컬럼을 넣고 이전 로그인의 토큰을 무효화하고 이후에 들어온 로그인에 대한 토큰으로 인증을 처리-> 이렇게 되면 액세스 토큰, 리프레시 토큰을 모두 디비에 넣던가, 아니면 액세스 토큰의 만료시간을 굉장히 작게 잡아서 사용해야 할 것 같은데 모두 디비에 넣고 사용하게 되면 jwt 방식에 대한 효율점이 적어지게 되는데 어떤 점이 좋은 지 궁금하여 남기게 되었습니다. 하드웨어의 ip 값을 디비에 저장해서 사용하는 것이 좋은 건가요? 읽어주셔서 감사합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
apigateway-service에서 @EnableDiscoveryClient 관련 질문드립니다.
안녕하세요! 먼저 좋은 강의 감사드립니다. 수강 중 궁금한 부분이 생겨 글 작성합니다.user-service 프로젝트에서는 @EnableDiscoveryClient 을 추가해주었는데, apigateway-service와 catalog-service에서는 @EnableDiscoveryClient를 추가해주지 않아서 그 이유가 궁금하여 질문드립니다.@EnableDiscoveryClient 는 eureka server에 등록하기 위한 어노테이션이라고 이해했습니다.user-service 와 마찬가지로 apigateway-service, catalog-service에도 아래 설정은 추가되어서 eureka server에 등록되는 것이라고 생각하였는데 왜 위 어노테이션은 빠진 것인지 궁금했습니다! 그리고 위 어노테이션과 아래 설정의 정확한 의미 차이도 궁금합니다. 감사합니다!!eureka: client: register-with-eureka: true fetch-registry: true
-
미해결뉴욕 프로덕트 디자이너가 알려주는, 입문자를 위한 UX디자인 개론
UI 디자인 원리가 적용된 사례
안녕하세요! UI 디자인 원리중 '유사성의 원리' 와 'CTA의 중요성'을 중점으로 잘 사용되고, 사용되지 않은 사례들에 대해 찾아보았습니다.좋은 사례<직방>먼저 좋은 사례로는 직방 어플을 선택했습니다.[메인 - 카테고리 선택 - 매물 선택] 의 순서로 보았을때메인 - 각 아파트,빌라, 원룸 등 집을 알아보기 위한 사람들에게 한눈에 알아보기 쉽게 그룹화 되어있습니다.카테고리 선택 - 원하는 동네 (또는 지역)을 지도/ 지하철역으로 찾기로 사용자가 더 편한 방법으로 선택할 수 있도록 합니다.매물 선택 - 선택한 매물의 정보들이 나열되며, 원하면 바로 문의도 할 수있는 CTA가 자리합니다.하지만 여기서 조금 아쉬웠던 부분은 CTA의 옆에 매물의 정보가 아닌, 상단에있는 찜버튼(하트)와 공유하기 버튼이 왔으면 더 좋지 않았을까 라는 생각을 했습니다.전체적으로 이 어플을 사용했을 때, 직관적이고 사용자가 한눈에 알아보고 사용할 수 있게끔 유도한다고 느껴졌습니다. 안좋은 사례<스테이폴리오>안좋은 사례로는 스테이폴리오_여행 숙소 예약 어플입니다.메인 - 원하는 여행지의 숙소를 찾으러 들어간 사용자의 입장에서 보았을 때, 사용하기 어렵다는 생각이 들었습니다.여행지와 여행 날짜를 선택할 수 있는 버튼이 상단에 아이콘으로 작게 들어가 있는게 아쉬웠습니다. 한 눈에 보이도록 위치했다면 더 좋지 않았을까 싶습니다.숙소 선택 - 숙소에 대한 컨셉부터 설명까지 너무 많은 글로 나열되어있고, 그 글들 사이에 예약하려는 방이 이미지로 보여져 그래도 눈에 띄었지만, 가격과 [예약하기] 버튼이 더 잘 보이도록 위치했으면 어땠을까? 라는 생각이 들었습니다.
-
해결됨[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
랜덤 숫자가 3개가 안되는 경우가 있습니다.
newNumber에서 3개가 아니면 while문을 계속 될텐데콘솔에 찍인 걸 보면 2개가 있는 경우가 있습니다. 왜 그럴까요?
-
미해결SCSS(SASS)+GRID+FLEX 실전 포트폴리오 퍼블리싱
선생님 질문이 있습니다 !
variables.scss(변수파일)에는 전역변수만 넣어야 하나요??만약에 그렇다면지역변수는 style.scss 에서 선언하면 되나요?저는 scss 파일에서 밑에 코드를 실행시키니까 css 파일에서 "font-size: 30px" 로 연산되어 나와지는데혹시 최근에 scss에서 버전이 업그레이드 된걸까요?font-size: calc(15px * 2);
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
contextLoads 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요. contextLoads라는 오류가 생겼는데 어디가 잘 못된 건지 찾지 못해 질문드립니다.Failed to load ApplicationContext (오류문구 중)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 org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62) 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.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) at com.sun.proxy.$Proxy2.stop(Unknown Source) at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65) at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)Caused by: org.springframework.beans.factory.support.BeanDefinitionOverrideException: Invalid bean definition with name 'memberService' defined in class path resource [com/example/hellospring/service/SpringConfig.class]: Cannot register bean definition [Root bean: class [null]; scope=; abstract=false; lazyInit=null; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=springConfig;
-
미해결실전! Querydsl
DTO 안에 DTO
안녕하세요.추가로 개인적으로 공부를 하다가 궁금한 점이 생겨서 질문드립니다!Projections 사용 시에 DTO 의 생성자 방식으로 사용하였는데,혹시 DTO 안에 DTO 를 사용하는 방식은 가능할까요?? 이런 방식으로도 사용이 가능한 지 궁금해서 질문을 남겨봅니다! 감사합니다!
-
미해결뉴욕 프로덕트 디자이너가 알려주는, 입문자를 위한 UX디자인 개론
UX 디자인 원리_사례
안녕하세요! 미션으로 내주신 UX디자인의 좋은 사례와 안 좋은 사례에 관해 글 남깁니다!강의해주신 UX 디자인 원리 중에 '정보설계와 사용자의도'를 중점으로 찾아보았습니다.좋은 사례<올리브영_PC><올리브영_MO> <올리브영_MO> 좋은 사례로는 '올리브영'의 웹사이트와, 어플입니다.올리브영은 특히나 사용자의 의도를 잘 파악한 것 같다고 생각했습니다.상단에는 바로 보이는 카테고리들로, 높은의도를 가진 사람들이 바로 접근하여, 원하는 제품을 찾을 수 있도록 합니다.중간부터 아래로 내려갈수록 본인에게 맞는 제품을 추천해주거나, 인기 있는 제품들을 노출 시킴으로, 낮은 의도를 가진 사람들이 관심 있게 둘러볼 수 있도록 해줍니다.저 또한 사용해보면서, 높은 의도를 가지고 접속했을때에도 저만을 위한 제품을 추천해주는 카테고리에 눈길이가 한번 더 둘러봤던 경험이 있습니다.이처럼 높은 의도를 가진 사람에게도 더 둘러보게 하는 흥미를 주고, 낮은 의도를 가진 사람들도 다양하게 찾아볼 수 있도록 해주었다고 생각합니다.안좋은 사례 <'EQL' 쇼핑 플랫폼>안좋은 사례로는 'EQL' 쇼핑 플랫폼입니다.어플을 처음 접속했을 때, 화면의 반 이상을 채워 크게 보이는 이벤트 컨텐츠가 너무 눈길을 사로 잡아, 다른 부분들이 잘 눈에 들어오지 않는 듯 했습니다.높은 의도를 가진 사람이 메뉴를 선택하기 위해선, 하단바에 있는 메뉴 버튼을 눌러야만 합니다.페이지의 가장 상단에 있는 이벤트 컨텐츠 밑에 작게 있는 간편 메뉴 (투데이, 우먼, 맨, 라이프)를 선택했을 시엔 각 카테고리의 베스트 순위가 바로 나열되지 않고, 이벤트 중인 브랜드의 광고가 뜹니다.그래서 베스트 순위를 확인 하려면 버튼을 눌러 또 한번 페이지를 넘어가야 하는 번거로움이 있습니다.저도 직접 사용해보면서물론, 낮은 의도를 가진 사람들은 다양하게 둘러볼 수 있다 라는 장점으로 와 닿는 페이지가 될 수도 있지만,처음 접속하고, 원하는 제품이 확실히 있는 경우엔, 검색 창도, 메뉴도, 하단에 있는 버튼을 선택해야만 확인할 수 있다는 점이 조금은 낯설고 불편하다고 느끼게 되었던 것 같습니다.물론 두가지의 어플/웹사이트를 자주 사용해보면서 좋은점도 아쉬운 점도 각각 있었지만, 가장 두드러지게 느낀점들을 토대로 작성해보았습니다!
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
@BeforeAll 질문입니다
@BeforeAll 사용시, companion object로 감싸라는 컴파일에러가 발생하는데, 강사님은 발생하지 않으셔서 질문을 남깁니다. jvm버전때문에 발생하는 에러일까요?
-
미해결스프링 시큐리티
Session 과 SecurityContext에 관련된 질문입니다.
안녕하세요 선생님 질문이 있습니다.다른 질문들을 읽어보니 인증관련 관계도를 보면 이렇습니다.Session > SecurityContext > Authentication > UserDetials 입니다.+ 그리고 스프링 시큐리티에서 SecurityContext 에 인증객체를 저장하는 것은 세션과는 아무런 상관이 없습니다.SecurityContextHolder > ThreadLocal > SecurityContext > Authentication > UserDetails 이러한 관계도를 가진다고 말씀해주셔서 디버깅 해보니 인증을 성공한 시점에 request.getSession에서 attribute로 SecurityContextImpl 을 들고 있다는것을 확인하였습니다.궁금한 것은 spring security에서 SecurityContext에 인증객체를 저장하는것은 세션과 아무런 상관이 없다는것이 session은 attributes에 들고 있고SecurityContextHolder는 threadlocal에 들고 있으니 그냥 각각 다른 저장소에 같은것을 저장할 뿐이다. 그래서 아무런 상관이 없다.라고 이해하면 맞을까요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
3way hand shake관련 질문 드립니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: )질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 복습하다가 궁금한 점이 생겨 질문드립니다 3 way handshake가 tcp 계층에서 실행되는데 연결시 ip 정보 없이 port정보로만 연결 하는 것인가요 ???그러면 3 way hand shake 연결 후 ip layer에서 ip정보 , network access layer에서 mac 정보가 추가된 후 클라리언트에게 패킷을 전달하는 것인가요???
-
해결됨GraphQL 완전정복 (키오스크를 만들며 배우는 풀스택 과정) - [2024 부분 리뉴얼]
왜 전달인자가 있을때 화살표 함수를 쓰는게 더좋을까요.?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.전달인자가 있을때 화살표 함수를 쓰는게 더좋을까요.?Props 전달시 아래두개 차이는 무엇일까요?{함수명}{() => 함수명() }
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
memberRepository import 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 오류가 났는데 이 두가지밖에 안 뜹니다..
-
미해결
podman user 간 image와 컨테이너 공유
안녕하세요, podman으로 환경 구성을 하던 중 질문이 있습니다.root 계정에 podman을 설치하고 이미지를 pull해와서 컨테이너를 빌드해봤습니다.그리고 나서 다른 user로 접속하여 이미지와 컨테이너를 검색해보니 아무것도 보이지 않습니다.docker에서는 docker 그룹에 user를 추가하여 사용하였는데 podman group은 없는것 같네요...?!임의로 sudo podman images 해주니까 보이긴 합니다.모든 계정에서 동일한 이미지와 컨테이너를 보려면 어떻게 해야되나요?다른 user계정에 root권한을 주지 않고 가능한 방법이 있을까요?
-
미해결[신규 개정판] 이것이 진짜 엑셀자동화다 - 기본편
셀레니움 기초 사용법 강좌 질문
셀레니움 기초 사용법 강좌중에, VSCODE로 크롬 웹을 실행하는 과정이 있는데, 크롬 웹에서 "크롬이 자동화된 프로그램에 의해 제어되고 있다며" 실행을 중단시킵니다. 실행 중단을 혹시 막을수는 없을까요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
회원조회 api DOT 클래스 생성 질문드립니다
// 2. DTO를 사용할 경우 @GetMapping("/api/v2/members") public MemberListResponse<List<Member>> membersV2(){ List<Member> member = memberService.findMembers(); return new MemberListResponse<List<Member>>(member); } @Data @AllArgsConstructor static class MemberListResponse<T>{ private T member; }저는 김영한 강사님과 다르게 위에 코드처럼 구현했는데 이렇게 구현해도 문제 없는 걸까요? 성능상 안 좋거나 단점이 있는지 알고 싶습니다!
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
섹션2 k번째 수 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. import sys sys.stdin=open("input.txt", "rt") T=int(input()) for t in range(T): n, s, e, k = map(int, input().split()) a=list(map(int, input().split())) a=a[s-1:e].sort() print("#%d %d"%(t+1,a[k-1])) 저는 처음에 코드를 이런식으로 작성을 했었는데 TypeError: 'NoneType' object is not subscriptable 에러가 뜨게 됩니다. 검색해서보니 none인 경우에 index를 사용하려고 할때 다음과 같은 에러가 생긴다는 것을 알게 되었습니다. sort()함수를 같이 써주고 a를 출력해보면 none이 뜨게 되는데 왜 none이 뜨는지 그 이유를 모르겠습니다. a=a[s-1:e].sort() a=a[s-1:e] a.sort() 이렇게 쓰면 저는 같은 결과가 나올 것이라고 생각했는데 위에 코드에서 a를 찍어보면 none이 출력됩니다. 그 이유가 알고 싶습니다.
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
현재 강의랑은 관련없는 질문이지만
혹시 따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기 이 강의 리뉴얼 한다고 공지를 봤는데 혹시 1. 혹시 언제쯤 리뉴얼 강의를 올리시고 2.가격은 어떻게 될지 궁금합니다.