안녕하세요 강사님. 강사님 강의를 예전에 들었는데 , 현업에서 실제 동시성 처리를 하려고 다시 보니 예전에 안보이던게 보이는 것 같습니다. 감사합니다. 제가 질문하고 싶은 부분은 강의를 들으면서 습관적으로 OptimisticLockStockService에서 @Transactional을 붙였는데 무한루프에 빠졌습니다. 앞의 질문에 대한 답변으로 강사님이 보내주신 답변을 힌트로 그 원인을 생각했는데 , 이부분에 대해 피드백을 주시면 감사하겠습니다. 제가 이해한 바로는 OptimisticLockStockFacade에 @Transactional을 붙이게 되면, 트랜잭션이 재시도 로직을 포함해서 묶이면서, version 차이로 재시도를 할 때 새로운 버전으로 Stock을 조회해와야 하는데, 아직 Transactional이 유지되고 있으니깐, Entity Manager에 있는 이전에 실패한 version의 Stock을 가지고 다시 update를 실패해서 무한루프에 빠진다고 생각했습니다.
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
이전 강의에서 PacketHandller 부분에서 Async를 사용하지 않고 Blocking 방식을 사용하는 이유가 EAP 기반이기 때문에 이미 패킷마다 할당된 쓰레드에 의해 I/O가 이루어지기 때문이라고 이해했습니다. 하지만 GameRoom같은 경우엔 GameRoom 담당 쓰레드가 존재하고 GameRoom 쓰레드의 동기화를 위해 JobSerialize를 이용하여 각 쓰레드가 GameRoom의 Job을 Push하여 동기화를 진행하는데 이때 Job 안에서 DB I/O가 Blocking으로 이루어질 경우 GameRoom 쓰레드가 Blocking이 되고 그렇게되면 GameRoom이 느려지는 상황이 되기때문에 DB I/O 전용 쓰레드(JobSerialize)를 만들어 쓰는것으로 이해했습니다. 결국 개념적으로 봤을때 GameRoom 쓰레드는 메인쓰레드 역할을 하고 DB I/O 처리는 서브쓰레드에게 맡기고 완료됐을때 결과만 다시 메인쓰레드에 돌려받는 NonBlocking I/O 방식인데 Async/Await 역시 호출한 쓰레드를 Blocking 하지 않고 서브쓰레드에게 I/O를 맡긴뒤 작업이 완료되면 메인쓰레드에 결과를 반환하여 Await 이후에 처리한다고 이해하고 있습니다. 그렇다면 복잡하게 DB I/O 전용 쓰레드를 만들어주지 않고 Async/Await만 사용해도 될것같은데 이렇게 하는 이유가 있을까요? 아니면 이후에 강의에 이에 대한 개선이 나오는걸까요?
[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
아무리 찾아도 나오질 않아서 여기에 글 남깁니다. 스웨거 ui 에 파라미터 전달 방법에 page integer ($int64) (query) 이렇게 정의되어 있는건 이해가 되는데 cond[addr::LIKE] string ($string) (query) 이렇게 정의되어 있는건 query parameter를 어떤식으로 전달을 해야 하는가요?
영상에 35:23초에서 의자를 만드실 때 컨트롤+B로 베벨효과를 주잖아요? 그렇게 했을 때 베벨을 끝까지 주면 사진처럼 깨지더라구요! 계속 깨지니까 의자도 계속 새로 만들어보고, 책상도 새로 만들어보고 각 효과들 때문에 잘못한 걸까봐 다시 해보기도 하고 그랬는데 사진과 같은 현상이 생기네요! 컨트롤+A로 로케이션, 로테이트, 스케일 모두 어플라이도 해봤구요. M > Clean up > Merge by distance 도 해봤는데 동일해요.. 어떻게 하면 좋을까요 ㅜㅜ https://youtu.be/y1UQoCRtYpA?si=pFCKda92LCcT5JtZ&t=2123 링크 누르시면 영상 시작지점 체크해뒀어요!
안녕하세요. 단순하고도 어이가 없는(?) 질문일 수도 있겠지만, 제가 DB쪽으로 제대로 공부하는 것이 처음이라, 데이터 관계 구조에 대해서 조금 이해가 되지 않아서요..! 사진과 같이 관계 설정이 되어 있는 상황입니다. 거래처와 제품 테이블의 경우, 판매 테이블과의 관계만 있고, 두 테이블 간에는 관계 설정이 되어 있지 않은데, 실제 행렬 차트를 이용하면 거래처에 따라 색상이 영향을 받고 있는데, (예를 들어 ABC 상사 11개 색상, ITM 9개 색상) 이 두 테이블이 판매 테이블과 관계 설정이 되어 있다는 이유로, 아무 관계 설정이 되어 있지 않은 두 테이블이 서로 영향을 주고 있는 상황인데 이게 이유가 무엇일까요..?
처음 강의 들을 때에는 BFS, DFS기본 문제도 못풀었는데 풀었던 문제들 다시 풀어보고 또 풀어보면서 BFS, DFS, 조합 등에 익숙해지니 이런 문제들도 혼자 풀 수 있는 날이 오네요 ㅠㅠㅠ http://boj.kr/9831abd022b2486f9421eb048c8ae62d 제 나름대로 배웠던 지식들 활용해서 풀어봤습니다. 선생님 풀이보다 10ms정도 시간이 더 느린 것은 메모리를 복사하는 과정에서 늦어지는 것일까요?
안녕하세요 좋은 강의 감사합니다. 어드레서블 관련해서 궁금한 점이 있어서요. 앱을 출시하고 업데이트 할 때, 검토 기간이 어느 정도 소요되는 것으로 알고 있습니다. (UI_LobbyScene.prefab 을 예시로 가져왔습니다) 현재 버전인 A 를 (화살표 기준으로) 위의 이미지, 업데이트 될 버전 B 를 아래의 이미지로 가정 했을 때, 어드레서블 파일들을 업데이트 하고, 검토를 보낸다면, 검토가 완료되기 전 까지 어드레서블 만 업데이트 된 A 버전의 사람들은 작동하지 않는 [이벤트] 버튼을 사용하게 될 것 같은데요. 아직 이벤트 기능을 포함한 스크립트가 생성된 B 버전의 앱은 출시가 되지 않은 상황 이기 때문입니다. 혹시 이 부분을 어떻게 해결 하면 좋을까요?
모든 상황에서 인터페이스(DiscountPolicy)-구현체(FixDiscountPolicy) 처럼 나누는게 좋은 건 아니겠죠 ?? 지금 상황처럼 정책이 바뀔 경우가 없다면 그냥 바로 구현체를 만드는 게 더 효율적인 것 같은데, 설계상 정책이 안바뀐다 하더라도 만약의 상황을 대비해 인터페이스를 만들어두는편인가요 ??
BlackBox b1 = new BlackBox(); b1.modelName = "까망이"; b1.autoReport();// 지원안됨 BlackBox.canAutoReport = true; b1.autoReport();// 지원 됨 여기에서 canAutoReport 는 한 class의 변수이니까 메인메소드로 부를 때 BlackBox.canAutoReport로 부른거라면, modelName은 클래스의 변수가 아니라서 클래스의 변수인 BlackBox로 선언한 b1 으로 부른건가요? 그리고 object 와 class의 차이점을 모르겠어요 ... 알려주시면 감사하겠습니다 ...!:)
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. http://localhost:8080/hello 에 들어가면 에러페이지가 뜹니다. 코드 아무리 봐도 어디가 잘못된 건지 모르겠네요. ㅠㅅㅠ
안녕하세요 강사님 좋은 강의 정말 감사드립니다. user service에서 어떤 요청이 들어오든 AuthenticationFilter 를 거치게 되는 것으로 알고 있는데 login 요청을 제외한 다른 요청들은(ex: health-check, welcome 등) AuthenticationFilter 에 존재하는 attemptAuthentication과 loadUserByUsername 메소드는 실행되지 않고 바로 필터가 통과되는 것인가요? 해당 질문은 msa 라기보다 시큐리티 관련 내용인 것 같아 여기에 질문하는 것이 좀 죄송한데 답변 주시면 정말 감사드리겠습니다. 감사합니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 다형성 활용3 수업에서 각 동물을 Animal의 자식클래스로 두고, sound()를 호출하는 코드를 보고 있습니다. 그리고 soundAnimal()의 매개변수로 Animal 타입을 받아서 처리하는 부분에서 각 동물들의 소리가 다를 수 있는 이유가 sound()함수가 Override되어서 그런걸로 알고 있는데, 이 자식 클래스들이 @Override 부분을 빼도 똑같이 작동하더라구요. Override가 필수는 아닌건가요? 이것도 가독성을 향상시켜주는 syntatic sugar라고 할 수 있을까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 스프링 컨테이너 테스트 할 때 보통 ApplicationContext 인터페이스에 없는 메서드들도 있기 때문에 AnnotationConfigApplicationContext ac=new AnnotationConfigApplicationContext 을 쓰면 되는걸까요??