묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨외워서 끝내는 네트워크 핵심이론 - 기초
L3 인터넷 통신 과정에서 개념이 헷갈립니다.
안녕하세요 강사님!비전공자에게 이렇게 재밋게 네트워크 강의를 해주셔서 감사합니다. 다름이 아니라 강의를 듣는 와중에 기억이 섞여서 헷갈리는 부분이 생겨 질문을 남겨봅니다. 에펠탑을 택배로 보내야 한다고 할 때프로세스가 저장장치에 있는 데이터를 자신이 허용 가능한 버퍼에 읽어옵니다.그리고 그걸 Socket에 송신 합니다.Socket 내부 Buffer에 보관하고 있으면TCP가 해당 Buffer를 MSS 크기로 자르고IP 계층에 넘겨줍니다. IP 헤더를 추가하고 L2 계층에 넘깁니다. L2 계층인 이더넷에 넘기면 Frame 단위로 포장해서 이제 랜던을 타고 L2 스위칭이 되서 인터넷으로 가는걸로 이해를 했습니다. 그리고 다시 받는 수신 입장에서 Frame을 받고 하나씩 해체하면서헤더정보를 보고 필요한 프로세스에 전달을 합니다. 이렇게 이해를 했습니다.그런데 여기서 개념이 헷갈리는게L2 스위치까지는 프레임으로 움직이는건 이해를 했는데게이트 웨이를 통해서 인터넷으로 갈때여기서도 프레임으로 움직이나요 ?L3 라우터니까 패킷단위로 움직이나요 ?도착할때는 다시 프레임으로 감싸서 들어가는건지아니면 프레임인 상태에서 L3 라우터에서 이동이 되는데TTL이 감소되는건지 궁금합니다.
-
해결됨Flutter 중급 3편 - 의존성 주입 가이드
뷰 모델 분리하기
뷰모델을 분리하는 방법에 대해 질문 드립니다.하나의 scaffold (activity) 내에 여러개의 container (fragment : no scaffold) 가 있을 때 각각 프레그 먼트에 뷰모델을 사용하면 좋겠지만 부득이하게 상위 activity 뷰모델에 모든 프레그먼트의 로직을 담당해야 하는 상황에서 각 화면별로 뷰모델을 나누고자 합니다. swift 에서는 클래스 외부에 extension 으로 메소드 들을 기능별로 분리하여 사용하는 것을 알고 있고 dart 에도 extension 이 있어서 사용하려니 extention 할때 changenotifier 의 notifyListeners() 를 사용 할 수가 없어서 어려움을 겪고 있습니다. 다중상속도 지원하지 않기 때문에 어떻게 하면 좋을 지 조언 부탁드립니다. 감사합니다.
-
해결됨이펙티브 자바 완벽 공략 2부
아이템19 - 구체 클래스가 표준 인터페이스를 구현하지 않았는데 상속을 금지하면 사용하기에 상당히 불편해진다.
안녕하세요 강사님! 이펙티브 자바 강의 재밌게 수강하고 있습니다. 항상 감사드립니다. 책의 내용 중 하나가 도저히 이해가 되지 않아 질문 드립니다![아이템19]"구체 클래스가 표준 인터페이스를 구현하지 않았는데 상속을 금지하면 사용하기에 상당히 불편해진다. 이런 클래스라도 상속을 꼭 허용해야겠다면 합당한 방법이 있다." 에서 "사용하기에 상당히 불편해진다." 가 무얼 뜻하는지 잘 모르겠습니다. 그리고 상속을 금지했는데, 허용한다? 라는 말도 잘 이해가 가지 않습니다!제가 이해하기로는 1. "구체 클래스가 표준 인터페이스를 구현하지 않았는데 상속을 금지하면 사용하기에 상당히 불편해진다. : 표준 인터페이스를 구현하지 않은 클래스는 내부 동작을 예측하기가 쉽지 않다. 또한 확장이나 변경이 제한적이다. 상속을 금지하게되면 더 제한적이게 된다.2. "이런 클래스라도 상속을 꼭 허용해야겠다면 합당한 방법이 있다." :위와 같이 제한적인 불편함이 싫다면 상속을 허용하고 내부메서드에서 자기의 재정의 가능 메서드를 호출하는 코드를 제거하는데, 그 중 하나의 방법이 'private 도우미 메서드' 방법을 사용하라.라는 뜻일까요? 맞다면 아래와 같은 상황일까요?1. 이전 릴리스에서는 표준 인터페이스를 구현하지 않고 상속도 금지한 구체클래스였다.2. 다음 릴리스때 이 구체클래스를 확장해야겠다고 판단했고, 상속을 허용하기로 했다.
-
해결됨한 입 크기로 잘라먹는 타입스크립트(TypeScript)
강의 관련 질문은 아니지만.. javascript 함수 관련 질문 있습니다!
안녕하세요.해당 강의를 완주하고 개인 프로젝트를 하는 도중에 이해되지 않은 부분이 있어서 글을 남기게 되었습니다! 예를 들어 오늘이 6일이면 6일이 몇주차인지를 계산하는 아래 코드를 작성하고 있었는데요!const today = now.getDate(); const firstDay = new Date(now.setDate(1)).getDay(); const week = Math.ceil((today + firstDay) / 7);today 변수는 오늘 날짜를 가져와서 6이 출력되고 firstDay는 첫요일을 가져오고 싶어서 작성했는데 5가 출력되고week에서는 6+5 / 7 이므로 1.4에서 반올림 되어 2로 나오고 있습니다! 9월 6일은 2주차기 때문에 제대로 계산은 되는데 new Date(now.setDate(1)).getDay(); 이 부분이 사실 이해가 되지 않습니다. 9월의 첫째일은 1일로 setDate(1)을 해주었는데 getDay()로 가져오는 값은 첫요일인 1일을 제외한 요일인 5일을 가져오는 것일까요..?
-
미해결일잘하는 마케터, MD에게 꼭 필요한 파이썬 데이터 분석
5강 코드 에러가 뜹니다...!
안녕하세요 강사님! 소스코드를 그대로 복사해서 실행했는데 하단과 같은 에러코드가 뜹니다...! ㅠㅠ
-
미해결자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 1(기초편)
p.88 연습문제1 질문입니다.
value의 변수가 boolean이라서 value의 출력이 참,거짓으로 나오는건 알겠는데System.out.println(myAge <= 25); 를 출력해보니 왜 true라고 나올까요??System.out.println(myAge == teacherAge);가 false로 출력되는 것도 마찬가지입니다.여기서 myAge의 변수가 처음에 int 였는데 왜 참,거짓으로 출력이 되나요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
트랜잭션 추상화 관려해서 궁금한 점이 있습니다.
트랜잭션 추상화시키는데, 이것도 일관성 있는 서비스 추상화로 볼 수 있는건가요?공통 인터페이스를 만들어서 구현체만 바꿔주는 방법이 일관성 있는 서비스 추상화를 활용하는 것으로 볼 수 있는건가요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
PlatformTransactionManager 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.1.위의 코드에서txTemplate의 타입은 TransactionTemplate인데생성자를 만들 때는 왜PlatformTransactionManager의 타입으로 받는건가요?2. TracsactionTemplate 타입인 txTemplate에 어떻게 PlatformTransactionManager의 타입으로도 주입해줄 수 있는건가요?tracsactionTemplate와 PlatformTransactionManager는 어떤 관계가 있는건가요? 위와 같은 설명과 연관이 있는거 같은데 잘 이해가 안됩니다 설명 부탁드립니다!
-
미해결아두이노와 떠나는 사물인터넷 여행 - 아두이노 입문부터 IoT 중급까지!
외부에서 집 내부의 IoT 기기 접속
안녕하세요양질의 귀에 쏙쏙 들어오는 강의 감사합니다.강의 듣다보니 핸드폰이 와이파이가 연결되지 않은 집 밖에서는 어떻게 제어할까?궁금증이 생겨서 질문드립니다. 제가 집안에서 Wemos가 핸들링하는 웹서버에on / off 요청을 보내다가. 집밖에 나가서 저희 집 IP:80 에 on / off를 요청하면집 밖에서도 제어가 가능한가요?어떻게 될지 너무 궁금해서 성급하지만 질문 남깁니다.
-
미해결스프링 핵심 원리 - 기본편
'code' 질문입니다
12번째줄에서FixDiscountPolicy discountPolicy =new FixDiscountPolicy();이렇게써도 정상적으로 test에는 성공하던데, 선생님의 DiscountPolicy discountPolicy=new FixDiscountPolicy();와FixDiscountPolicy discountPolicy =new FixDiscountPolicy();뜻 차이는 뭔가요?그리고 선생님처럼 써야하는 이유는 무엇인지 궁금합니다.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
sout
원래는 안그랬는데 어느순간부터 sout 작성하고 엔터치면 System.out.println 이 안나오고WSDLOutput 이 나와요......그래서 System.out.println 이라고 직접적으로 작성을 했는데 println 부분이 빨간색으로 뜨면서오류로 인식해요 .. ㅠㅠ갑자기 이렇게 되어서 왜그런지 모르겠어요 ㅠㅠ
-
미해결아두이노와 떠나는 사물인터넷 여행 - 아두이노 입문부터 IoT 중급까지!
준비물 구매 질문입니다.
안녕하세요ESP32 CAM이나 wemos d1 mini같은 경우어떤 제품을 사야하나요 ㅠㅠ가격도 천차만별이고 옵션이 달라서 조금 어렵습니다.어느 강의에 나와있는지라도 알려주실 수 있을까요?개략적인 이름만 나와있어서 구매하는데 고민입니다~좋은 강의 감사합니다 ^^
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
String accessToken = authorizationHeader.split(" ")[1];은 accessToken이 맞나요?
강사님 안녕하세요 수업 잘 듣고 있습니다. 덕분에 도전하기 힘들었던 인증인가를 조금이나마 이해하게 되고 있는 것 같습니다. 수업을 듣던 중 한가지 궁금한 점이 생겨서 질문 남기게 되었습니다.LoginController에서 String accessToken = authorizationHeader.split(" ")[1];이라는 변수를 선언하는데 저는 authorizationHeader.split(" ")[1]이 accessToken인지 accessToken을 포함한 jwt인지가 헷갈립니다. 혹시 이 부분과 관련하여 제가 어떻게 이해하면 좋을지 조언 해주실 수 있으실까요? 감사합니다.
-
해결됨스프링 핵심 원리 - 기본편
테스트 시, 로그 나오지 않는 현상 문의
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]테스트 시에 선생님 화면처럼 관련 로그가 나오지 않는데, 어떻게 설정해야 하는지 궁금합니다![제 화면][선생님 화면]
-
미해결
환불
건강상 이유로 수강이 어려워 환불하려고 하는데요.7일 이내 수강 이력이 없는데 구매 취소가 불가능 합니다.오늘이 마직막 날 인 것 같은데 취소해주시면 감사하겠습니다.
-
미해결Verilog FPGA Program 2 (MicroBlaze, Arty A7-35T)
lwip echo server ping test 문의 드립니다.
안녕하세요.본강의를 수강하고 다른 Board에서 lwip echo server를 사용하여 Ping Test를 시도해 보았습니다.본 강의에서 처럼 Link up은 되는데 제 PC의 CMD 창에서 ping 192.168.1.10 주었을 때해당 host에 연결 할 수 없다고 합니다.제 PC는 IP를 192.168.1.11로 설정하였습니다.lwip echo server로는 제 PC에서 Device로 Ping을 보낼 수 없는 건가요?감사합니다.
-
미해결처음 만난 리액트(React)
미니 프로제트에서 map의 요소를 왜 찾지 못하는지 모르겠습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 미니 블로그 실습을 진행하던 중 위와 같은 오류를 발견하였습니다. commentList 파일의 map함수를 보았는데, 분명 배열이여서 map함수가 실행이 되어야 하는데 찾이 못하더라구요 import React from "react"; import styled from "styled-components"; import CommentListItem from "./CommentListItem"; const Wrapper = styled.div` display: flex; flex-direction: column; align-item: flex-start; justify-content: center; & > * { :not(:last-child){ margin-bottom: 16px; } } `; function CommentList(props){ const { comments } = props; return ( <Wrapper> {comments.map((comment, index) => { return <CommentListItem key={comment.id} comment= {comment}/> })} </Wrapper> ) } export default CommentList;혹시 힌트를 알 수 있을까요?
-
해결됨스프링 핵심 원리 - 기본편
logback.xml 관련 에러 메시지 출력 문제
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. xml 부분을 듣고 있는데, 테스트는 통과하지만 logback 파일과 관련해서 에러 메시지가 뜹니다.로그 출력 문제로 logback.xml 파일을 추가했는데 혹시 원인을 알 수 있을까요?한 번 에러가 나니까 테스트를 실행할 때마다 계속 뜹니다. 해당 에러 메시지입니다.Failed to auto configure default logger context Reported exception: ch.qos.logback.core.joran.spi.JoranException: Problem parsing XML document. See previously reported errors. at ch.qos.logback.core.joran.event.SaxEventRecorder.recordEvents(SaxEventRecorder.java:65) at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:151) at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:110) at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:53) at ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:64) at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:134) at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:84) at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55) at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150) at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124) at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:417) at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:362) at org.apache.commons.logging.LogAdapter$Slf4jAdapter.createLocationAwareLog(LogAdapter.java:130) at org.apache.commons.logging.LogAdapter.createLog(LogAdapter.java:91) at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:67) at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:59) at org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:178) at org.springframework.context.support.GenericApplicationContext.<init>(GenericApplicationContext.java:114) at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:67) at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:91) at hello.core.beanDefinition.BeanDefinitionTest.<init>(BeanDefinitionTest.java:11) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) at org.junit.platform.commons.util.ReflectionUtils.newInstance(ReflectionUtils.java:550) at org.junit.jupiter.engine.execution.ConstructorInvocation.proceed(ConstructorInvocation.java:56) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at org.junit.jupiter.api.extension.InvocationInterceptor.interceptTestClassConstructor(InvocationInterceptor.java:73) 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:77) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestClassConstructor(ClassBasedTestDescriptor.java:355) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateTestClass(ClassBasedTestDescriptor.java:302) at org.junit.jupiter.engine.descriptor.ClassTestDescriptor.instantiateTestClass(ClassTestDescriptor.java:79) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:280) 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.xml.sax.SAXParseException; systemId: file:/C:/Users/Name/Desktop/%ec%8a%a4%ed%94%84%eb%a7%81%20%ea%b3%b5%eb%b6%80/core/core/out/production/resources/logback.xml; lineNumber: 1; columnNumber: 6; The processing instruction target matching "[xX][mM][lL]" is not allowed. at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1243) at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635) at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:324) at ch.qos.logback.core.joran.event.SaxEventRecorder.recordEvents(SaxEventRecorder.java:59) ... 89 more 18:12:13,063 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml] 18:12:13,063 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/C:/Users/Name/Desktop/%ec%8a%a4%ed%94%84%eb%a7%81%20%ea%b3%b5%eb%b6%80/core/core/out/production/resources/logback.xml] 18:12:13,205 |-ERROR in ch.qos.logback.core.joran.event.SaxEventRecorder@2ddc9a9f - XML_PARSING - Parsing fatal error on line 1 and column 6 18:12:13,205 |-ERROR in ch.qos.logback.core.joran.event.SaxEventRecorder@2ddc9a9f - org.xml.sax.SAXParseException; systemId: file:/C:/Users/Name/Desktop/%ec%8a%a4%ed%94%84%eb%a7%81%20%ea%b3%b5%eb%b6%80/core/core/out/production/resources/logback.xml; lineNumber: 1; columnNumber: 6; The processing instruction target matching "[xX][mM][lL]" is not allowed. 아래는 logback.xml 파일입니다.<?XML version="1.0" encoding="UTF-8"?> <configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%kvp- %msg%n</pattern> </encoder> </appender> <root level="INFO"> <appender-ref ref="STDOUT" /> </root> </configuration> 테스트가 패스는 되지만 혹시 추후 문제가 발생할까봐 질문 드립니다.
-
해결됨처음 만난 리액트(React)
변경된 input 값이 텍스트로 보이지 않습니다.
개발자 도구로 보면 섭씨에 값 입력 시 화씨 input에도 값이 담기고 변하는데 텍스트는 보이지 않습니다...찾아보니 <input value="{props.temperature}"> 대신 <input defaultValue="{props.temperature}"> 를 쓰면 된대서 defaultValue를 쓰면 텍스트가 잘 나옵니다...아래 사진은 <input defaultValue={props.temperature}>으로 수정했을 때 입니다. 왜 <input value=""> 대신 <input defaultValue="">를 사용해야 정상적으로 나오는지 궁금합니다. TemperatureInput.jsxconst scaleNames = { c: "섭씨", f: "화씨", }; function TemperatureInput(props) { const handleChange = (event) => { props.onTemperatureChange(event.target.value); }; return ( <fieldset> <legend>온도를 입력해주세요(단위: {scaleNames[props.scale]})</legend> <input vaule={props.temperature} onChange={handleChange} /> </fieldset> ); } export default TemperatureInput; Calculator.jsximport React, { useState } from "react"; import TemperatureInput from "./TemperatureInput"; function BoilingVerdict(props) { //물 끓음 감지 if (props.celsius >= 100) { return <p>물이 끓습니다.</p>; } return <p>물이 끓지 않습니다.</p>; } function toCelsius(fahrenheit) { //화씨 계산 함수 return ((fahrenheit - 32) * 5) / 9; } function toFahrenheit(celsius) { //섭씨 계산 함수 return (celsius * 9) / 5 + 32; } function tryConvert(temperature, convert) { const input = parseFloat(temperature); if (Number.isNaN(input)) { return ""; } const output = convert(input); //섭씨 or 화씨로 변환 const rounded = Math.round(output * 1000) / 1000; return rounded.toString(); } function Calculator(props) { const [temperature, setTemperature] = useState(""); const [scale, setScale] = useState("c"); const handleCelsiusChange = (temperature) => { setTemperature(temperature); setScale("c"); }; const handleFahrenheitChange = (temperature) => { setTemperature(temperature); setScale("f"); }; const celsius = scale === "f" ? tryConvert(temperature, toCelsius) : temperature; const fahrenheit = scale === "c" ? tryConvert(temperature, toFahrenheit) : temperature; return ( <div> <TemperatureInput scale="c" temperature={celsius} onTemperatureChange={handleCelsiusChange} /> <TemperatureInput scale="f" temperature={fahrenheit} onTemperatureChange={handleFahrenheitChange} /> <BoilingVerdict celsius={parseFloat(celsius)} /> </div> ); } export default Calculator;
-
미해결[게임 프로그래머 도약반] DirectX11 입문
World 행렬 생성중 회전행렬 값에 대하여 의문이 있습니다.
유니티에서 회전행렬을 확인 해보고자 출력을 했을 때.이렇게 출력을 하였습니다.Transform을 해당 값으로 맞춰놓고 작업을 하였는데 Log 값은이렇게 출력되었습니다. 여기서 의문점인경우가Z축 회전 행렬을 적용하면C -S 0 0S C 0 00 0 0 10 0 0 1이 적용이 되어야 하는데 Log 값으로 출력되는것을 보면 Sin값 적용부분에서C -SS C가 아닌C S-S C로 적용되는걸 알 수 있는데 왜 이렇게 값이 나오는 것인지 궁금합니다.(부호가 왜 바뀌어서 나오는지 궁급합니다.) X축 , Y축 , Z축 동일하게 출력을 해 보았으나 모두 다 같습니다...