자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요 강사님 궁금한것이 있어서 질문 남깁니다 public void returnBook(String bookName) { UserLoanHistory targetHistory = this.userLoanHistories.stream () .filter(history -> history.getBookName().equals(bookName)) .findFirst() .orElseThrow(IllegalAccessError::new); //findFist()는 옵셔널로 반홚나다 targetHistory.doReturn(); } 이 로직에서 만약 한 책을 빌렸다가 반납하면 그 히스토리를 반납완료 상태로 만들어주고 끝내고 다시 그 책을 빌리려고 한다면 새로운 히스토리를 만들어서 List에 저장할텐데 그럼 다시 그책을 반납할 경우 findFirst()를 해서 그 히스토리를 찾아왔을때 이미 반납된 책을 다시 반납하는 행위가 되는것이 아닌건지 궁금해서 질문 드립니다!
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
안녕하세요 수업 내용 이외에 단일 물체 애니메이션을 구현하는 도중에 descriptorheap handle 쪽에서 오류가 발생하였습니다. 기본적으로 물체의 변환행렬을 상수버퍼에 추가하고 셰이더쪽에 연결하여 물체의 최종행렬을 계산하는 과정으로 알고 있습니다. objanimation 클래스를 파줘서 여기다가 모든 애니메이션 정보를 넣어놓고 컴포넌트에 연결해서 finalupdate 에서 행렬 보간을 해주고 meshrenderer 에서 transform 다음에 변환 행렬을 상수 버퍼에 pushdata 하는 과정에서 이런 오류가 발생하였습니다. 그리고 currentindex < elementcount 어썰트가 종종 일어나는데 이부분도 왜 일어나는것인지 궁금합니다 어떤부분에서 잘못구현한 것인지 감이 안잡혀서 질문 남깁니다 또한 오류가 발생하기이전에 다르게 구현을 해봐도 쉽지가 않았습니다. 어떤식으로 접근해봐야 잘 구현이 될지도 궁금합니다!
의존성 조언 두번째 방법에서 문제점이 UserService.login은 여전히 의존성이 감춰져있다. 위와 마찬가지로 Userservice.login을 테스트할 때 clock에 의존하고 있는지 알 수 없다. 이거였는데 세번 째 방법도 UserService를 사용하는 메서드는 login(user)만 남겨서 user가 Clock에 의존하는지 모르지 않나요? 아까 맥도날드 예제에서는 인터페이스를 사용하면 일을 시킨다고 설명하셨는데 이것도 인터페이스를 사용해서 일을 시키는거니 이렇게 구현하면 내부에서 clockHolder를 사용해도 외부에서 몰라도 되나요?
DX12에서 썼던 방법으로 RenderTargetGroup을 적용하는데 SwapChain 옵션 중 SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD; 로 주니까 SwapChain의 버퍼 카운트를 2로 했는데도 SwapChain->GetBuffer(index, IID_PPV_ARGS(&resource)); 이 부분에서 index가 0이 아니면 resource를 반환해주지를 않는데, DX11에서는 DX12때 처럼 SwapChain의 BackBufferIndex를 이용해서 수동으로 관리하는게 불가능한가요
DX12 강의에 있던 방법과 같이 ParticleSystem을 컴포넌트로 만들고, FinalTick에서 Compute Shader로 StructuredBuffer를 전해줘서 계산하고, Render 단계에서, FinalTick에서 전해줬던 StructedBuffer를 다시 던져 그리는 방식으로 만들었는데, m_pShader->GetSRV .... 부분에서 Effects11: ID3DX11EffectVariable::AsShaderResource: Invalid typecast 이런 오류가 뜹니다. RWStructuredBuffer라서 그런가 싶은데, 그럼 Input용으로 던져줄 StructuredBuffer<> 와 Output용으로 던져줄 RWStructuredBuffer를 따로 선언해서 채워줘야 하는건가요?
이번 강의에서 Pipeline클래스를 따로 만든다음에 공통적이고 필수적인 부분들은 _pipeline클래스의 Update가 담당하여 렌더링 파이프 라인을 진행하고 일단은 그 밑에 다시 IA - VS - RS - PS - OM단계를 진행하던데 rendering pipeline도식화 해놓은것을 보면(구글링하여 나온 이미지들) IA - VS - RS -PS -OM 단계인데 RenderBegin()이 호출되면 무조건 바로다음에 IA단계들이 다 붙어서 와야하고 그다음에 VS단계에 오는 것들이 다 순서대로 오는식이 아니라 그냥 RenderBegin()이 시작하여 화면을 초기화하고나서 SwapChain을 통해 Present하기 전에만 그냥 순서상관없이 IA 단계부터 OM단계까지의 함수호출들이 오면 되는 것인가요? 렌더링 파이프라인 도식화 한 이미지들은 렌더링 할 버퍼 이미지를 초기화하고 이것을 Swap하여 Present하기 전까지의 렌더링 과정을 이해하기 쉽게 그냥 도식화 해놓은 개념에 불과한가요?
하고 싶은 것 일부 주문이 서비스 유형: 픽업임에도 배달메뉴코드로 생성되어 이를 찾고 싶습니다. (배달메뉴와 픽업메뉴 코드는 서로 다름) 엑셀 vookup을 사용해서 상품코드를 배달 메뉴 테이블에서 검색하고, 검색되지 않으면 오주문으로 판단하는 코드를 구현했습니다. 같은 프로그램을 파이썬을 통해 구현해보고 싶은데, 다른 dataframe에 없는 값을 찾아 행을 추가하는 과정이 어려워 조언을 구하고 싶습니다. 파이썬 코드 df_pickup = 픽업 주문내역 데이터 프레임 delivery_menu_code = df_delivery_menu["상품코드"] df_misorder = pd.DataFrame() # 픽업 주문내역에서 상품코드를 꺼내 해당 상품코드가 배달 메뉴 코드에 포함되어 있는지 확인 # 만약에 코드가 없으면 해당 row를 df_misorder에 추가 for idx, row in df_pickup.iterrows(): misorder = df_delivery_menu[delivery_menu_code.str.contains(row["상품코드"], na = False)] if len(misorder) != 0: df_misorder.concat(row) else: pass # 어떻게 추가해도 계속 0개로 나와서, 도와주시면 감사드리겠습니다! len(df_misorder)
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 사용자 정의함수를 db에 등록시켜놓은 다음에 jpql로 사용을 해보니 따로 방언을 등록하지 않아도 사용이 가능합니다. List<String> str = em.createQuery("select create_prefix(m.username) from Member m", String.class).getResultList(); create_prefix는 직접 등록한 함수입니다. 수업에서는 방언으로 사용자 정의 함수를 등록해야지 적용이 된다고 하는데 이 경우 왜 작동되는지 알고싶습니다.
중괄호 등을 통해서 코드를 작성할 때 중괄호가 [] 이렇게 두개 자동으로 생성되는데요. 이외에도 '' 등 두개씩 자동으로 만들어줘서 코드를 작성하는데는 편리한데 'LEE' 등 코드를 쓰고 EE에서 '를 넘어 가기 위해 방향키를 눌러줘야 하는 불편함이 있습니다. 혹시 빠르게 작성하기 위해 단투키 같은게 별도로 있을지 문의드립니다
@Autowired로 EntityManager를 주입받을때 여러 쓰레드가 동시에 접근하면 동시성 문제가 발생합니다. 하지만 @Transactional 을 추가해준다면 //1 @Repository @RequiredArgsConstructor @Transactional public class AutowiredRepository { private final EntityManager em; } //2 @Repository public class PersistenceContextRepository { @PersistenceContext private EntityManager em; } @PersistenceContext 처럼 Transaction에 의해 쓰레드간 동시성 문제를 해결해준다 고 생각하는데 맞게 생각한건지 궁금합니다. 두가지 방법 다 EntityManager를 호출 할때마다 Proxy를 통해 EntityManager를 생성하여 Thread-Safe를 보장해준다라고 볼수 있는 건가요?? 답변주시면 정말 감사하겠습니다.
유니티에서 회전행렬을 확인 해보고자 출력을 했을 때. 이렇게 출력을 하였습니다. Transform을 해당 값으로 맞춰놓고 작업을 하였는데 Log 값은 이렇게 출력되었습니다. 여기서 의문점인경우가 Z축 회전 행렬을 적용하면 C -S 0 0 S C 0 0 0 0 0 1 0 0 0 1 이 적용이 되어야 하는데 Log 값으로 출력되는것을 보면 Sin값 적용부분에서 C -S S C 가 아닌 C S -S C 로 적용되는걸 알 수 있는데 왜 이렇게 값이 나오는 것인지 궁금합니다. (부호가 왜 바뀌어서 나오는지 궁급합니다.) X축 , Y축 , Z축 동일하게 출력을 해 보았으나 모두 다 같습니다...
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. OpenJDK 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release. 이러한 오류가 뜨는데, 실행하는데는 문제가 없습니다. 이 오류를 고쳐야 할 것 같은데, 어떻게 고쳐야할까요?
쿠폰 생성 발급 로직도 컬럼에 쿠폰의 개수를 지정해놓으면 이전 강의랑 똑같은 거 같은데 왜 이번 강의는 쿠폰 엔티티를 새로 생성해서 그 개수를 체크하는 건지 궁금합니다. 이전 컬럼에 개수를 두어 관리하는 거랑 지금처럼 엔티티를 생성하는 방식의 차이점이 너무 궁금해요 항상 감사합니다.
안녕하세요 주니어 개발자 길라잡이가 되주셔서 감사합니다. fulltext index에 대해서 질문이 있습니다. 임계점이 올경우 튜닝으로도 해결할 수 없는 문제라고 말씀해주셨는데요 경험담이라고 해주셨는데 그 경험담을 듣고 싶어서 질문을 남겨봅니다. 공식 문서에서 찾아보니까 https://dev.mysql.com/doc/refman/8.0/en/innodb-fulltext-index.html#innodb-fulltext-index-deletion 동시 경합이 발생할 수 있다고 작성이 되어있는데 이 문제로 발생한건가요 ? 아니면 다른 인덱스와 다르게 인덱스 용량 때문에 발생한 문제이신건가요 ? FULLTEXT INDEX의 한계 검색을 해도 다 좋은점만 나오더라구요..
SwapChain에 대해서 제대로 알고있는게 맞는지 개념 확인좀 부탁드립니다. SwapChain 사용 이유 SwapChaine을 생성할시 프론트버퍼와 백버퍼가 생성이되고 프론트버퍼에 있는 데이터가 모니터로 복사가되고 백버퍼에 다음 장면을 렌더링 하는식으로 돌아가게 된다. 이렇게 하는 이유는 버퍼에서 모니터로의 비트 데이터 복사 속도가 매우 느리기 때문에 버퍼를 하나만 쓰다간 모니터에 모든 버퍼의 데이터가 복사되기 전에 먼저 다음 프레임의 비트 데이터가 버퍼에 갱신되어서 모니터에 이전 프레임의 비트 데이터가 복사되던 도중 갑자기 갱신된 현재 프레임의 비트 데이터 복사될수도 있기 때문이다. SwapChain Present 동작 원리 비트 데이터를 전부 화면에 복사한 프론트버퍼를 가리키는 포인터와 현재 프레임의 비트 데이터로 갱신된 백버퍼의 포인터가 서로 가리키고 있는 버퍼를 교체하면서 화면 복사와 다음 프레임 데이터 갱신을 이어나가게 한다. SwapChain을 만들때 BufferCount를 1개로 설정해주던데 이거는 백버퍼의 개수이고 프론트 버퍼는 개수를 지정해줄 수 없고 자동으로 한개만 생성된다