안녕하세요, 강사님. BSP트리를 활용한 렌더링 순서에 대해서 설명해주시는 부분에 있어서 궁금한 점이 있어 여쭈어보고자 합니다. 다음 예시에서 플레이어가 평면 F로 분할된 공간의 양의 공간에 있을 때, 음의 공간의 폴리곤부터 먼저 렌더링을 해야한다고 설명해주셨습니다(10:13~). 그런데 단순하게 생각하면 플레이어 입장에서 보여지는 부분부터 순서대로 렌더링 되어야 하는 것이 아닌가 하는 생각이 들었습니다. 예를 들어 F앞면 - A1 - B - C1 / G앞면 - A2 - D1 / H앞면 - D4 - C2 / D3 와 같은 순서처럼 말입니다. 렌더링 순서는 사실 크게 중요하지 않은 것인지, 그게 아니라면 해당 예시와 같이 플레이어 입장에서는 보이지 않는 영역인 음의 공간의 폴리곤부터 먼저 렌더링하는 이유(성능적인 부분)가 특별히 있는 것인지 궁금합니다.
spring 버전이 달라 구글링 해서 버전에 맞는 gradle 설정을 끝내고 측면의 gradle 탭에서 build를 눌러 q클래스를 생성시켰더니 test 클래스에서 다음과 같은 오류가 났고 해당 오류부분을 주석처리하여 실행시켰더니 새로 만든 querydsl 메서드를 사용하는 주문내역 페이지(/orders)가 오류가 났는데 구글링을 아무리 해도 해결하는 방법을 모르겠습니다 ㅠㅠ
제로초님께서 '서버쪽에서 MSW를 자연스럽게 돌리는 방식이 아직 나오지 않았다' 라고 말씀하셨는데, 이 부분에 대해 궁금해서 자료를 찾던 중 해당 내용을 다루는 깃헙 이슈를 찾아서 읽어보았습니다. 아직까지도 서버쪽에서 MSW를 사용하는 부분은 업데이트가 되지 않았다는 내용이 있어서 혼자 이것저것 건들던 도중에 http.ts 실행을 종료해도 클라이언트 쪽에서 요청을 보내면 모킹이 되어야 하는게 아닌가 하는 의문이 들었습니다. 그래서 http.ts 의 실행을 종료하고 요청을 보냈으나 클라이언트 쪽에서는 404 에러가 발생하였고, 서버 쪽에서는 200 이 뜨면서 이전에 가져왔던 데이터를 가져왔습니다. 여기서 제가 궁금한 것은 http.ts 는 서버 모킹을 위해 추가적으로 작성된 파일이라고 생각하는데 제가 잘못 생각한 것인지 궁금합니다. http.ts 실행이 종료된 상태로 클라이언트 컴포넌트에서 요청을 보낸다면 http://localhost:3000/api/login 으로 요청을 보냈을 때 정상적으로 모킹이 되어야 한다고 생각하는데 맞게 생각한 것인지 궁금합니다. (저는 클라이언트-browser.ts, 서버-http.ts 로 모킹이 연결된다고 이해했습니다.) 제가 작성한 코드는 강의에서 작성된 코드와 같은 코드를 사용했으며 출력 부분(console.log)만 조금 수정했습니다. 좋은 강의 만들어주셔서 감사합니다.
모던 웹을 위한 상세한 모던 CSS Selector 정리3[2:49]에서 셀렉터에 따른 css적용 모습을 보여주셨는데, css가 아래와 같이 작성된 상태에서 p:first-child { color: red; } p:last-child { color: blue; } p:nth-child(2) { color: green; } p:nth-last-child(2) { color: purple; } <body> <div> <p>1번</p> <p>2번</p> <p>3번</p> <p>4번</p> <p>5번</p> </div> </body> 의 결과값은 <body> <p>1번</p> <p>2번</p> <p>3번</p> <p>4번</p> <p>5번</p> </body> 의 결과값은 이렇게 나오는데, 왜 이런 차이가 발생하는 것인가요? 제 생각엔, <div>태그가 없더라도 <body>태그를 기준으로 하면 last-child가 적용되는 자식 요소의 순서는 똑같아야 할 것 같은데 그 이유가 궁금합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 앞전의 영상까지는 테스트 환경 문제없이 했고 그 전의 강의도 문제 없이 하였습니다. 하지만 해당 강의 첫 부분 부터 회원가입(join0을 실행하면 해다 오류가 나옵니다. 17:08:49.341 [main] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [com.example.test.Sevice.MemberServiceIntTest]: MemberServiceIntTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration. 17:08:49.463 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper -- Found @SpringBootConfiguration com.example.test.TestApplication for test class com.example.test.Sevice.MemberServiceIntTest java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker (alternate: null) at org.mockito.internal.configuration.plugins.PluginLoader$1.invoke(PluginLoader.java:84) at jdk.proxy2/jdk.proxy2.$Proxy72.getHandler(Unknown Source) at org.mockito.internal.util.MockUtil.getMockHandlerOrNull(MockUtil.java:158) at org.mockito.internal.util.MockUtil.isMock(MockUtil.java:147) at org.mockito.internal.util.DefaultMockingDetails.isMock(DefaultMockingDetails.java:32) at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.java:106) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:85) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:73) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.beforeTestMethod(ResetMocksTestExecutionListener.java:60) at org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.java:320) at org.springframework.test.context.junit.jupiter.SpringExtension.beforeEach(SpringExtension.java:240) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) Suppressed: java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker (alternate: null) at org.mockito.internal.configuration.plugins.PluginLoader$1.invoke(PluginLoader.java:84) at jdk.proxy2/jdk.proxy2.$Proxy72.getHandler(Unknown Source) at org.mockito.internal.util.MockUtil.getMockHandlerOrNull(MockUtil.java:158) at org.mockito.internal.util.MockUtil.isMock(MockUtil.java:147) at org.mockito.internal.util.DefaultMockingDetails.isMock(DefaultMockingDetails.java:32) at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.java:106) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:85) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:73) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.afterTestMethod(ResetMocksTestExecutionListener.java:67) at org.springframework.test.context.TestContextManager.afterTestMethod(TestContextManager.java:487) at org.springframework.test.context.junit.jupiter.SpringExtension.afterEach(SpringExtension.java:278) ... 2 more Caused by: java.lang.IllegalStateException: Internal problem occurred, please report it. Mockito is unable to load the default implementation of class that is a part of Mockito distribution. Failed to load interface org.mockito.plugins.MockMaker at org.mockito.internal.configuration.plugins.DefaultMockitoPlugins.create(DefaultMockitoPlugins.java:105) at org.mockito.internal.configuration.plugins.DefaultMockitoPlugins.getDefaultPlugin(DefaultMockitoPlugins.java:79) at org.mockito.internal.configuration.plugins.PluginLoader.loadPlugin(PluginLoader.java:75) at org.mockito.internal.configuration.plugins.PluginLoader.loadPlugin(PluginLoader.java:50) at org.mockito.internal.configuration.plugins.PluginRegistry.<init>(PluginRegistry.java:27) at org.mockito.internal.configuration.plugins.Plugins.<clinit>(Plugins.java:22) at org.mockito.internal.MockitoCore.<clinit>(MockitoCore.java:73) at org.mockito.Mockito.<clinit>(Mockito.java:1683) at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.java:105) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:85) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:73) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.beforeTestMethod(ResetMocksTestExecutionListener.java:60) at org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.java:320) at org.springframework.test.context.junit.jupiter.SpringExtension.beforeEach(SpringExtension.java:240) ... 2 more Caused by: java.lang.reflect.InvocationTargetException at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:484) at org.mockito.internal.configuration.plugins.DefaultMockitoPlugins.create(DefaultMockitoPlugins.java:103) ... 15 more Caused by: org.mockito.exceptions.base.MockitoInitializationException: Could not initialize inline Byte Buddy mock maker. It appears as if your JDK does not supply a working agent attachment mechanism. Java : 19 JVM vendor name : Oracle Corporation JVM vendor version : 19.0.1+10-21 JVM name : OpenJDK 64-Bit Server VM JVM version : 19.0.1+10-21 JVM info : mixed mode, sharing OS name : Windows 11 OS version : 10.0 at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<init>(InlineDelegateByteBuddyMockMaker.java:260) at org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker.<init>(InlineByteBuddyMockMaker.java:23) ... 18 more Caused by: java.lang.IllegalStateException: Could not self-attach to current VM using external process at net.bytebuddy.agent.ByteBuddyAgent.installExternal(ByteBuddyAgent.java:706) at net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:636) at net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:616) at net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:568) at net.bytebuddy.agent.ByteBuddyAgent.install(ByteBuddyAgent.java:545) at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<clinit>(InlineDelegateByteBuddyMockMaker.java:133) ... 19 more Caused by: [CIRCULAR REFERENCE: java.lang.IllegalStateException: Internal problem occurred, please report it. Mockito is unable to load the default implementation of class that is a part of Mockito distribution. Failed to load interface org.mockito.plugins.MockMaker] 커뮤니티 찾아다니면서 혼자 해결할려했으나, 도저히 방법이 ㅇ없어서 질문드립니다 ㅠㅠ
[질문 내용] 지금까지 영한님께서 작성하신 테스트 코드 들은 Assertions.... 를 통해서 테스트하셔서 감을 익히고, 저도 테스트 케이스 작성 영상 보기 전에 미리 작성해보고 비교해보는 식으로 강의를 수강 중입니다. 처음 작성한 코드입니다. @Test public void 중복_회원_예외() throws Exception { //given Member member1 = new Member(); member1.setName("Lim"); Member member2 = new Member(); member2.setName("Lim"); //when Long savedId1 = memberService.join(member1); //then Assertions.assertThrows(IllegalStateException.class, ()-> memberService.join(member2)); } 위 처럼 Assertions.assertThrows를 사용하지 않으신 이유는 fail()이란 메서드의 존재와 @Test에 expected 옵션의 사용법을 알려주고자 하신 목적이신가요?? 어떤 테스트 케이스가 더 좋은 건가요? 그 이유도 궁금합니다!!! MemberService에 이미 명시적으로 IllegalStateException를 던져 놓았기에 더 짧은 타이핑으로 작성할 수 있는 assertThrows가 적합하다고 생각이 드는데, 강사님의 생각이 궁금합니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 아래 소스로 실행했는데 select 쿼리가 안나갑니다 select문에 where절 빼고 실행하면 select되긴 하는데 이유가 뭔지 모르겠어요 package jpabook.jpashop; import jpabook.jpashop.domain.Book; import jpabook.jpashop.domain.Member; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import javax.persistence.Persistence; import java.util.List; public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); try { List<Member> result = em.createQuery( "select m from Member m where m.username like '%kim%'" , Member.class ).getResultList(); for (Member member : result) { System.out.println("member = " + member); } tx.commit(); } catch (Exception e) { tx.rollback(); } finally { em.close(); } emf.close(); } }
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여러 was가 띄워있는 웹에서 0.0000...01초까지 동일한 시간에 join()메서드가 동시에 호출되어 validateDuplicateMember()메서드 또한 동시에 호출되고 findByName()을 통한 조회가 동시에 호출될 경우에 두 클라이언트에 대한 요청에 대해서 모두 isEmpty가 true가 되어 검증 로직을 통과하게 되어 최후의 수단으로 DB단에서 name 필드를 Unique 제약조건을 두어 유일성을 가지게 하는 것은 이해하였습니다. 그렇다면, Unique제약조건까지 설정한 이후에 두 클라이언트가 동시에 요청을 했을 때, 1. 둘 다 DB에 insertion 되지 못하고 에러가 나나요? 2. 둘 중 하나가 삽입이 되고 나머지 하나는 삽입 되지 못하나요? 그렇다면, 어떤 기준으로 둘 중 하나가 선택되나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 컴포넌트를 가져와서 사용하는 경우도 부모자식관계인건가요?? 예를들어서 TheNav.vue를 App.vue에서 사용하는 경우도 부모자식관계인건지 궁금합니다. 아니면 데이터 관련되어있을 때만 부모자식인건가요?ㅠㅠ 부모자식관계를 언제 따지는 지 잘 모르겠습니다ㅜㅜ 컴포넌트 가져와서 사용할 때 뷰 개발자 도구 확인하시던데, 그 컴포넌트 간의 관계를 편하게 보기 위해서 사용하시는건가요??ㅜㅜ
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 유튜브 제목 크롤링을 하려는데 웹드라이버문제로 아예 초반부터 막혔습니다ㅠㅠ초반 코드 도와주세요...