학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 회원 서비스 테스트 강의 5:27에 member와 findMember의 getName을 통해서 맞는지 확인을 했는데 왜 객체가 아닌 이름을 통해 비교를 하는건가요?
30강에서 과일의 Collider2D radius 설정과 관련하여 아래와 같이 질문합니다. 과일들의 크기가 다른 데 같은 radius를 적용해서 모든 과일이 서로 접하도록 설정하는 원리 현재 radisu 값을 3.4로 설정하였는데, 이 값을 디자인 단계에서 어떻게 산출하는 방법
지금은 멀티 모듈로 프로젝트를 설정해서 common이라는 공통 모듈로 분리해도 문제가 없을 것 같은데, 정말 개발 환경이 달라지면 어떻게 진행이 되나요? 예를 들어, board는 java, comment는 python으로 개발이 된다고 하면, board와 comment에 사용될 common을 팀끼리 약속을 해두고 각각 서버에 구현을 해서 사용하게 되나요?
안녕하세요, 강사님. 매번 빠르게 기출 분석 및 해설 강좌 업로드 해주심에 대단히 감사드립니다!!! 😄 글 제목과 관련된 위의 영상에서 말씀해주셨습니다만, 아직 인프런 강의 목록에서는 확인을 하지 못하여서요... 2편은 포함하여, 강의 업로드 계획을 문의드리고자 글 남깁니다. 항상 고생 많으십니다 ㅜㅜ 감사합니다.
1.이 강좌의 아이템 시스템과 전에 만드신 퀘스트 시스템 강좌를 합치려면 어떻게 해야 하나요? 퀘스트 시스템에서는 아이텐티파이드 오브젝트가 없어서 어떻게 해야할지 모르겠습니다. 2.카테고리 클래스에서 Equals함수와 GetHashCode함수를 오버라이드하는 이유를 잘 모르겠습니다. 참조도 0개고 부모의 구현을 그대로 호출하는데 어떤 의미인지 궁금합니다. 아 다이얼로그 시스템 강좌 계획은 없으신지도 궁금합니다.
안녕하세요. 루키스님! M2 코드를 분석하면서, 약간 다른 게임을 (브롤스타즈같은 모바일 탑뷰 슈팅게임) 만들고 있습니다. 선 이동으로 구현하고 있는데, 서버 판정 이후 해결되지 않는 부분이 있어 질문 드립니다. 현재까지 구현한건 키보드 기반 간단한 이동 동기화 입니다. 이동 방법은 키보드나 조이스틱 기반의 선 이동으로 구현하려 합니다. 지금 이동 코드는 루키스님 질의응답과 해외 커뮤 글을 토대로 아래 방식으로 구현 했습니다. 0.1초마다 동기화를 시도함 키보드 입력이 있으면 desirePos를 그 방향으로 0.1초동안 갈 수 있는 pos 를 찍음 클라 판단으로 갈 수 있는 곳(벽X, 장애물 X) 이면 destPos를 갱신 서버로 전송 서버에서 정당한 이동 요청인지 판정 맞으면 브로드캐스트 각 클라에서 이동 패킷 수신 후 캐릭터 갱신 여기까지 하면 어느정도 자연스럽게 작동은 합니다. 하지만 이동을 보낸 클라 입장에서 서버로 부터 받은 판정을 적용하는 부분에 어려운 부분이 있습니다. 아무래도 선 이동이 예측 이동 후 보정이라 네트워크 지연으로 예측과 판정이 너무 많이 틀어지는 경우가 있을 것 같습니다. 예를들어, 클라에서 단순 우측으로만 움직인다고 가정하고, x 축으로 10 -> 11 -> 12 -> 13 선 이동을 했다는 가정으로 시작하겠습니다. 네트워크 지연으로 13에 도달했을 때 서버에서 10 이동 동기화가 왔다면, 선 이동 클라는 10으로 튕겨 버립니다. 그 후 방향을 바꿔 왼쪽으로 움직이면 10 -> 9 -> 8 -> 7 로 먼저 움직이겠지만, 이미 서버로 보낸 이동 좌표로 인해 11, 12, 13이 또 오기 때문에 캐릭터는 퉁퉁 튀면서 움직이지 못하는 상태가 될 것 같습니다. 또한, 다른 클라에서 공격을 해도 히트 판정이 다 꼬여 게임이 이상해질 것 같습니다. 이 문제를 해결하기 위해 고민해보니, 클라에서 선 이동 버퍼(기록)을 둔다고 합니다. 이 버퍼는 아래 문제가 생겼을 때 서버 판정을 다시 replay 하고, 서버 판정을 완료하면 다시 저장된 선 이동 버퍼를 replay 해 클라에서 너무 앞서나가지 않도록 하더라구요. 선이동 버퍼의 index와 서버 판정의 index가 n 이상 벌어지면, 서버 판정 index의 pos 로 플레이어 위치를 되돌리고 클라 선 이동 판정을 다시 실행시킴. 서버 판정으로 이동할 수 없는 pos 라면, 해당 pos 로 되돌리고 그 그 이후 선 이동 버퍼를 replay 여기서부터 질문입니다만, 이런 방법이 쓰이는 이유는 게임 전체의 공정성 때문 일까요? 네트워크 문제가 있는 일부 클라는 계속 롤백되는 경험을 하지만, 다른 유저들은 서버에서 허가한 상태만 보니까요. 보통 선 이동 버퍼와 서버 판정은 어느정도로 갭을 두나요? 0.1초마다 동기화 한다고 가정 하고 이동 패킷은 ++1 인 정수형 인덱스로 구분한다고 했을 때, 저는 한 4 정도로 생각했습니다. 선 이동과 서버 판정이 약 0.4초이상 벌어지면 롤백하고 다시 동기화 한다 입니다. 히트 판정의 경우 클라들, 서버가 같은 ticktime을 공유하고 있고 서버에서 내려준 히트 시작 시간을 보내주면, 클라에서 timejob queue에 넣어두었다가 해당 시간이 되면 애니메이션을 시작하면 되지 않을까? 라는 생각 입니다. 고민을 많이 해보았는데, 이 이상 생각이 안되어 질문 드립니다. 바쁘시겠지만 답변 주시면 감사히 학습에 사용하겠습니다.
The 10x AI-Native Developer: 회사에서 AI로 압도적 성과를 내는 법
현재 수강 진도를 함께 알려주세요! "1주차 3강까지 완료" 또는 "2주차 실습 중"처럼 어디까지 들으셨는지 적어주시면 맞춤형 답변을 드릴 수 있어요 구체적인 상황과 함께 질문해주세요! "AI가 안 된다"보다는 "Claude에서 이런 프롬프트를 입력했는데 이런 에러가 나와요"처럼 상세하게 적어주시면 더 정확한 답변을 드릴 수 있어요 스크린샷이나 코드를 첨부해주세요. 에러 화면, 현재 진행 상황을 보여주시면 문제 해결이 10배 빨라집니다! 마크다운 코드 블록(```)을 활용하면 더 깔끔하게 정리할 수 있어요 커뮤니티 검색을 먼저 해보세요. 같은 문제로 고민하신 분들이 이미 해결책을 찾았을 수도 있어요. 검색 후 못 찾으시면 언제든 새로 질문해주세요! 서로 도우며 함께 성장해요. 나도 모르는 건 "저도 궁금해요!"라고 댓글 달아주시고, 아는 건 적극적으로 공유해주세요. 가르치면서 더 잘하게 됩니다 바이브코딩 관련 질문은 환영, 기술 세부사항은 GPT 활용! 프롬프트 작성법, AI 도구 사용법은 여기서, 복잡한 코딩 문법은 ChatGPT에게 물어보시는 게 더 빨라요 진도나 과제 관련 문의는 1:1 문의를 이용해주세요. 개인적인 학습 계획, 환불, 수강 기간 연장 등은 따로 문의해주시면 더 자세히 상담드릴게요 실패 사례도 공유해주세요! "이렇게 했더니 망했어요" 같은 경험담도 다른 수강생들에게 큰 도움이 됩니다. 실패도 소중한 학습 자료예요 1-7강에서 hook을 배우고 있는데 window 환경에서 cursor를 이용해서 선생님 수업 따라가는 중에 전달자료대로 세팅을 해도 claude가 setting.json을 일고 실행한 뒤에 실행 되는 게 아니고 그냥 hook 자체가 적용이 안되는데 이 문제에 대한 해결 방법을 알려주시면 감사드리겠습니다
Order 서비스에서 Command가 실행되면 ORDERS_EVENT에 이벤트가 저장되고 Query가 실행되면 ORDER_EVENT에서 이벤트를 읽어 데이터의 최종상태를 읽는다는것으로 이해했는데요..! 그렇다면 ORDERS 테이블은 실질적으로 사용되지 않는다고 이해하면될까요..?
6.3강의 3분29초~ 쯤의 서스펜스 실습을 위한 async키워드를 제거하는 과정에서 입니다. 이전부터 강의를 좀 따라오다가 버전이 많이 업그레이드 되어 5챕터? 쯤이였을까요 params를 이용해 데이터패칭을 해오던때였던거 같습니다만 타입오류가 나서 챗지피티, Q&A등 을 보며 Promise타입을 붙여주고 수정하여 첫번째 사진과 같이 사용하고 있었습니다. 6.3강의부터 비동기작업을 수행하지않도록 async 키워드를 제거하기 위해 분리작업도중 일어난 고민입니다. 두번째 사진처럼 수정을 하였습니다만 여기서 Page컴퍼넌트의 async 키워드를 를 뗄수있는가? 에 대해 고민을 좀했는데 챗지피티에게선 async 키워드가 있어도 서스펜스 실습엔 문제가 없다고해서 그냥 두번째 사진과 같이 작성한후에 서스펜스 실습을 따라가면 될지가 의문스러워 질문남깁니다. 추가로 버전업이 많이되어 영상과 다른점을 수정하면서 하고있는데 제가 올바른 방향으로 실습하고 있는지도 조금 궁금합니다!
Pageable 인터페이스와 @PageableDefault 를 컨트롤러부터 사용하면 편하게 작업할 수 있을 것이라고 생각하고 있습니다. 그런데 spring-data에서 제공하는 것들이라 컨트롤러나 애플리케이션(서비스)에서 사용하면 안 될 것 같아서 새롭게 객체를 정의해서 사용해야 하는 것인가라는 생각이 드는데요. 한편으로는 유틸느낌으로 사용해도 되지 않을까라는 생각이 들기도 합니다. 실제로 @PageableDefault 이것은 org.springframework.data.web 패키지에 들어있어서 web계층을 대상으로 만들어진 것 같구요 어떤식으로 풀어나가야 할까요? 추가적으로 Http interface를 사용하기 위해 @HttpExchange을 사용할 경우 required패키지 인터페이스에 바로 붙여서 사용해도 무방한걸까요?
절대강좌! 유니티6 - 네트워크 게임 개발 마스터클래스 (Part3) : Netcode로 개발하는 2D RPG
이번 강의에서 RPC를 통해 클라이언트의 클라이언트의 캐릭터들이 죽는것을 보았는데 만일 클라이언트의 캐릭터를 리스폰 해야 한다면 Network Manager 컴포넌트에 설정된 Default Player Prefab을 spawn 하는 방법이 있는건가요? 아니면 32강의 고블린 생성 방식처럼 Instantiate()로 워리어나 아처 캐릭터를 생성시킨 뒤 NetworkObject 컴포넌트의 Spawn()를 사용하는건가요?
절대강좌! 유니티6 - 네트워크 게임 개발 마스터클래스 (Part3) : Netcode로 개발하는 2D RPG
캐릭터의 네트워크 기능 추가 : NetworkPlayer (29 강의) 영상을 보면서 이해가 되지 않는 부분이 생겼습니다. 1. 애니메이션 서버 권한? 클라이언트 애니메이션 요청 구조..? 영상 13분 50초에서 Network Animation 컴포넌트는 서버 권한을 가지고 있기 때문에 A라는 클라이언트에서 '나(owner)'의 캐릭터 애니메이션 실행 요청을 서버에 전달하고 서버에서 '너'의 캐릭터 애니메이션을 실행시켜 주겠다고 하면 그때 다른 클라이언트 B,C.. 등 에서도 A 클라이언트의 애니메이션이 실행되어 보이는 구조라고 이해하면 될까요? 만약 맞다면 서버권한을 그대로 사용한다면 서버에서 처리해주는 별도의 코드가 있어야 다른 클라이언트들에게 A라는 클라이언트의 애니메이션이 공유되는것일까요? 2. Network Transform : Authority..? 애니메이션과 달리 Transform은 Owner로 설정하게 되면 클라이언트에서 실행한것이 서버로 전송이 된다고 했습니다. 그렇다면 애니메이션은 실행을 해달라고 요청을 하는것이고 Transform의 경우 Authority를 Owner로 설정했기 때문에 A 클라이언트 자체에서 실행되서 좌표의 결과값을 서버에 보내는 것인가요?? 그래서 서버에서 다른 클라이언트(B,C.. 등)들에게 A 클라이언트의 좌표값을 공유하는 형식인가요? 3. 클라이언트 실행과 클라이언트의 실행 요청은 다른 개념인거죠?
백엔드 취준생이 고 강의랑 관련 된 내용은 아니지만 강사님 강의를 2개 정도 구매했습니다. 지금 자바로 프로젝트 2개를 한 상태입니다. 로드 맵 이 있어서 듣게 됐습니다. 보통 Error 관련 코드를 만들 때 @ExceptionHandler 로 컨트롤러에서 발생한 에러를 잡고 @ControllerAdvice 가 모든 에러를 잡아서 관리 해 주는 걸로 다른 강의에서 배웠는데 보통 현업에서는 이렇게 하나요? 제가 프로젝트 두 개 모두 이런식으로 enum 과 class 를 따로 만들어서 했는데 현업에서 어떻게 하는 지 궁금해서 질문드립니다. @Getter public class BusinessException extends RuntimeException { private final HttpStatus status; private final ErrorCode errorCode; public BusinessException(ErrorCode errorCode) { super(errorCode.getMessage()); this.status = errorCode.getErrorCode(); this.errorCode = errorCode; } public BusinessException(HttpStatus status, ErrorCode errorCode, String message, Throwable cause) { super(message, cause); this.status = status; this.errorCode = errorCode; } public BusinessException(HttpStatus status, String message) { super(message); this.status = status; this.errorCode = null; } } @Getter @AllArgsConstructor public enum ErrorCode { TOKEN_NOT_FOUND(HttpStatus.BAD_REQUEST, "토큰이 없습니다."), JWT_EXPIRED(HttpStatus.BAD_REQUEST, "jwt 토큰이 만료되었습니다. "), INVALID_JWT(HttpStatus.BAD_REQUEST, "jwt 토큰을 찾을 수 없습니다."), ACCEPTED_EXISTS(HttpStatus.CONFLICT, "팔로우를 찾을수없습니다."), FOLLOW_NOT_FOUND(HttpStatus.CONFLICT, "팔로우를 찾을수없습니다."), INVALID_FOLLOW_STATUS(HttpStatus.CONFLICT, "팔로우상태가 아닙니다."), AGREEMENT_INPUT(HttpStatus.CONFLICT, "약관 동의가 필요합니다."), INVALID_EMAIL_INPUT(HttpStatus.BAD_REQUEST, "해당 이메일은 소셜 로그인 계정입니다. 소셜 로그인을 이용하세요."), DUPLICATE_RESOURCE(HttpStatus.FORBIDD
안녕하세요. 개발자님. 주소록 3단계에 너무 막히고 시간이 끌려서 어찌해야할까 하고 조언을 얻으려고 질문 드립니다. 정답을 보니 내용을 너무 어렵게 생각했다 라는 생각이 드는 것이 먼저이고 이러한 실습을 많이 해보지 못한 개발자이고, 경험을 많이 쌓아봐야 숙달이 되는 것은 인지는 하고 있지만... 그래도 새로운 것을 시도해보라고 하면 처음이 무슨 소리인지 모르고 적용을 어떻게 할 지 몰라서 막막합니다. (하루 이틀이 지나야 번뜩 떠오릅니다) 그래서 이러한 문제를 어떤 것을 참고 삼아서 공부를 해야 할 지 조언을 얻고 싶습니다. 많이 해보는 것만이 답인지 반복 숙달이 답인지 개개인마다 다른지 ...