[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
안녕하세요 선생님. SwapChain클래스에서 두개의 버퍼를 만들었고, DescripterHeap의 Init에서 CreateRenderTargetView 함수를 호출했습니다. 질문 1. 버퍼는 화면을 출력하기 위한 리소스, RTV는 각 버퍼마다 GPU에게 명령을 내리기 위한 기안서라고 이해하면 될까요? 질문 2. 그렇다면 RTV 개수와 버퍼 개수는 동일한가요? 버퍼, RTV 두 용어가 헷갈려서 질문글 남겨봅니다.
안녕하세요 조현영님. 다대다 관계를 설정할 때 관계를 연결할 컬럼을 만들고 many to many 데코레이터를 달은 후 둘 중하나의 컬럼에다가 보통 joinTable컬럼을 달잖아요. 그런데 joinTable을 달게 되면 새로운 테이블이 하나 더 생기게 될텐데 제가 관계 설계중 상품과 리뷰의 관계를 many to many로 서로 해주려 했었는데 이러면 불필요한 테이블이 하나 생기게 되어 필요가 없을거 같아서요. 그런데 또 many to many를 one to many와 many to one으로 바꿔서 사용이 가능하다 하셨는데 질문1. 만약 joinTable대신 joinColumn을 쓰고 싶을 때 many to many 대신 one to many, many to one을 사용할 수 있을까요? 질문2. 위 질문이 가능하다면 저는 many to many를 쓰는 대신 상품 엔티티와 유저 엔티티 사이에 리뷰 엔티티를 만들어 놓고 상품 엔티티 - one to many -> 리뷰 엔티티 상품 엔티티 <- many to one - 리뷰 엔티티 유저 - one to many -> 리뷰 엔티티 유저 <- many to one - 리뷰 엔티티 이런식으로 사용이 가능할까요?
assertThrows에서 오류가 생기는데 이를 해결할 방법을 알려주시길 부탁드립니다 <Memberservice> package hello.hellospring1.service; import hello.hellospring1.repository.MemoryMemberRepository; import hello.hellospring1.repository.MemberRepository; import hello.hellospring1.domain.Member; import java.util.List; import java.util.Optional; public class MemberService { private final MemberRepository memberRepository; public MemberService(MemberRepository memberRepository){ this.memberRepository = memberRepository; } /** * 회원가입 */ public Long join(Member member){ //같은 이름이 있는 중복 회원은 x validateDuplicateMember(member); //optional으로 한번 감싸면 optional안에 member객체가 있는거 //옛날에는 ifnull 지금은 optional로 감싸기 //optional로 바로 반환하는거는 추천x memberRepository.save(member); return member.getId(); } private void validateDuplicateMember(Member member) { memberRepository.findByName(member.getName()) //ctrl+alt+v .ifPresent(m -> { //result가 null이 아니면 즉, 값이 있으면 동작 throw new IllegalStateException("이미 존재하는 회원입니다."); }); } /** * 전체 회원 조회 */ public List<Member> findMember() { return memberRepository.findAll(); } public Optional<Member> findOne(Long memberId){ return memberRepository.findById(memberId); } } <MemberServiceTest> -> 중복_회원_예외에서 오류 발생 package hello.hellospring1.service; import hello.hellospring1.domain.Member; import hello.hellospring1.repository.MemoryMemberRepository; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; //import java.util.Optional; import static org.junit.jupiter.api.Assertions.*; //import static org.assertj.core.api.Assertions.*; class MemberServiceTest { //test코드는 실제 코드에 포함 되지 않음 MemberService memberService; MemoryMemberRepository memberRepository; @BeforeEach public void beforeEach() { memberRepository = new MemoryMemberRepository(); memberService = new MemberService(memberRepository); } @AfterEach public void afterEach() { memberRepository.clearStore(); } @Test void 회원가입() { //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()); Member findMember = memberService.findOne(saveId).get(); Assertions.assertThat(member.getName()).isEqualTo(findMember.getName()); } //test는 정상도 중요한데 예외도 중요함 @Test public void 중복_회원_예외() { //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)); Assertions.assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); /* try { memberService.join(member2); fail(); } catch (IllegalStateException e){ Assertions.assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); } */ //then } <오류 화면>
강의안과 조금 달라졌는지, 데이터셋이 압축되어 있었어요. 하단의 코드를 데이터 다운로드 다음에 추가하니 잘 돌아갑니다! import shutil shutil.unpack_archive("house-prices-advanced-regression-techniques.zip")
position속성 문의드립니다. 강의내용중 display 속성에대한 이해도 강의가 별도로 있는것처럼 position속성에대한 자세한 강의는 없는지해서 문의드립니다. 강의내용중 if조건문을 이용한 스크롤 후 헤더 디자인변경이라는 강의내용중 헷갈리는 부분이 나타서 말입니다. 상단메뉴 position-"fix" 를 주셨는데 아래 내용 section p 안에 내용이 상단으로 붙어있더라구요. 강사님 화면도 그런거같던데 padding-top:100px;를 줘서 잡아주기는했는데, position속성에대한 이해도가 좀 부족한거 같아 문의드립니다. - 먼저 유사한 질문이 있었는지 검색해주세요. - 궁금한 부분이 있으시면 해당 강의의 타임라인 부분을 표시해주시면 좋습니다. - HTML, CSS, JQUERY 코드 소스를 텍스트 형태로 첨부해주시고 스크린샷도 첨부해주세요. - 다운로드가 필요한 파일은 해당 강의의 마지막 섹션에 모두 있습니다.
INFO Starting development server... 98% after emitting CopyPlugin ERROR Failed to compile with 47 errors 오후 5:01:11 error in ./node_modules/vue-router/dist/vue-router.mjs "export 'computed' was not found in 'vue' ~~~~~~~~~~~~~~~~~ error in ./node_modules/vue-router/dist/vue-router.mjs "export 'defineComponent' was not found in 'vue' error in ./node_modules/vue-router/dist/vue-router.mjs ~~~~~~~~~~~~~~~~~~~~~~~~~~ "export 'h' was not found in 'vue' error in ./node_modules/vue-router/dist/vue-router.mjs "export 'h' was not found in 'vue' error in ./node_modules/vue-router/dist/vue-router.mjs "export 'inject' was not found in 'vue' error in ./node_modules/vue-router/dist/vue-router.mjs ~~~~~~~~~~~~~~~~~~ "export 'nextTick' was not found in 'vue' error in ./node_modules/vue-router/dist/vue-router.mjs "export 'onActivated' was not found in 'vue' error in ./node_modules/vue-router/dist/vue-router.mjs "export 'onDeactivated' was not found in 'vue' error in ./node_modules/vue-router/dist/vue-router.mjs "export 'onUnmounted' was not found in 'vue' error in ./node_modules/vue-router/dist/vue-router.mjs "export 'provide' was not found in 'vue' error in ./node_modules/vue-router/dist/vue-router.mjs "export 'provide' was not found in 'vue' error in ./node_modules/vue-router/dist/vue-router.mjs "export 'provide' was not found in 'vue' error in ./node_modules/vue-router/dist/vue-router.mjs "export 'reactive' was not found in 'vue' error in ./node_modules/vue-router/dist/vue-router.mjs "export 'reactive' was not found in 'vue' error in ./node_modules/vue-router/dist/vue-router.mjs "export 'ref' was not found in 'vue' error in ./node_modules/vue-router/dist/vue-router.mjs "export 'shallowRef' was not found in 'vue' error in ./node_modules/vue-router/dist/vue-router.mjs "export 'unref' was not found in 'vue' error in ./node_modules/vue-router/dist/vue-router.mjs ~~~~~~~~~~~~~~~~~~ "export 'watch' was not found in 'vue' error in ./node_modules/vue-router/dist/vue-router.mjs "export 'watch' was not found in 'vue' error in ./node_modules/vue-router/dist/vue-router.mjs "export 'watchEffect' was not found in 'vue' 와 같이 나타납니다. ~~~ 된거는 4번이상 동일 메시지가 반복된겁니다 .체크 부탁드립니다...ㅠㅠ 크론 받은거에서 도 일단 npm run serve가 되지 않았습니다.
안녕하세요, 자세한 강의 감사드려요. 현재 강의 초반을 수강중이고, databricks 환경에서 실습을 하고 있습니다. 저는 spark를 이용해 클러스터를 구성해서 singlenode보다 mulinode에서 연산을 진행해서 속도가 빨라지는걸 확인하고 싶은데 그 부분이 강의 뒷부분에 포함되어있는지, 혹시 안되어있다면 조언주실 수 있는지 문의드립니다. 감사합니다.
안녕하세요. 권철민 선생님 SQL Fundamentals 강의 내 이동평균 Analytic SQL 실습 편의 3일 이동 평균 매출 예제 쿼리에 대해 질문이 있습니다. order_date를 date_trunc 함수 활용하여 group by 하셨는데 select date_trunc('day',b.order_date)::date as order_dy , sum(a.amount) from order_items as a inner join orders as b on a.order_id = b.order_id group by date_trunc('day',b.order_date)::date order by 1 아래 쿼리처럼 곧바로 order_date로 group by 하는 것과 어떤 차이점이 있을까요? 표면적으로 보여지는 결과값은 같아 보여서 왜 date_trunc 함수를 사용했는지가 궁금합니다. select order_date , sum(a.amount) from order_items as a inner join orders as b on a.order_id = b.order_id group by 1 order by 1
리액트에서 자바스크립트를 사용할때 {}을 사용해야하는건 이해가 가는데 this.todoData.map((data) => { }) 가 아니라 중괄호 자리에 그냥 괄호가 들어가는 이유가있나요? 중괄호를 넣고 세이브를 하니 Line 50:37: Array.prototype.map() expects a return value from arrow function array-callback-return 이런 경고창이 뜹니다