묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
캐릭터가 갑자기 안 움직입니다ㅜ
#include "InputMappingContext.h" #include "EnhancedInputComponent.h" #include "EnhancedInputSubsystems.h" void ACharacterPlayer::BeginPlay() { Super::BeginPlay(); APlayerController* PlayerController = CastChecked<APlayerController>(GetController()); if (PlayerController) { if (UEnhancedInputLocalPlayerSubsystem* Subsystem = ULocalPlayer::GetSubsystem<UEnhancedInputLocalPlayerSubsystem>(PlayerController->GetLocalPlayer())) { Subsystem->AddMappingContext(DefaultMappingContext, 0); } } } // Called to bind functionality to input void ACharacterPlayer::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) { Super::SetupPlayerInputComponent(PlayerInputComponent); UEnhancedInputComponent* EnhancedInputComponent = CastChecked<UEnhancedInputComponent>(PlayerInputComponent); EnhancedInputComponent->BindAction(JumpAction, ETriggerEvent::Triggered, this, &ACharacter::Jump); EnhancedInputComponent->BindAction(JumpAction, ETriggerEvent::Completed, this, &ACharacter::StopJumping); EnhancedInputComponent->BindAction(MoveAction, ETriggerEvent::Triggered, this, &ALCharacterPlayer::Move); EnhancedInputComponent->BindAction(LookAction, ETriggerEvent::Triggered, this, &ACharacterPlayer::Look); EnhancedInputComponent->BindAction(AttackAction, ETriggerEvent::Triggered, this, &ACharacterPlayer::Attack); } void ACharacterPlayer::Move(const FInputActionValue& Value) { FVector2D MovementVector = Value.Get<FVector2D>(); const FRotator Rotation = Controller->GetControlRotation(); const FRotator YawRotation(0, Rotation.Yaw, 0); const FVector ForwardDirection = FRotationMatrix(YawRotation).GetUnitAxis(EAxis::X); const FVector RightDirection = FRotationMatrix(YawRotation).GetUnitAxis(EAxis::Y); AddMovementInput(ForwardDirection, MovementVector.X); AddMovementInput(RightDirection, MovementVector.Y); } void ACharacterPlayer::Look(const FInputActionValue& Value) { FVector2D LookVector = Value.Get<FVector2D>(); AddControllerYawInput(LookVector.X); AddControllerPitchInput(LookVector.Y); }코드는 위와 같이 작성을 했습니다. 화요일까지 움직였는데 갑자기 안 움직입니다. 플러그인도 있고, IMC에도 다 설정을 했는데 갑자기 안 움직입니다... 구글에서 찾아봐도 해결이 안됩니다ㅜㅜ...ThirdPersonCharacter 를 추가해서 이 캐릭터를 사용하니 움직입니다. 그래서 ThirdPersonCharacter 의 부모 클래스를 제가 만든 클래스로 설정을 하니 다시 안 움직입니다. 코드 문제인 거 같은데 뭐가 문제인걸까요..
-
미해결
인프런 영상관련 문의
안녕하세요.며칠 전부터 인프런 강의가 소리만 나오고 컨텐츠가 재생이 되지 않는데, 저만 그런걸까요?한 강의만 그런 것이 아니라 모든 강의가 그렇습니다.Mac 사용 중이고, 휴대폰에서 어플로 재생했을 땐 문제가 없습니다.Firefox, Chrome 둘 다 재생이 안되네요..
-
해결됨React, Node.js, MongoDB로 만드는 나만의 회사 웹사이트: 완벽 가이드
npm install --save @tinymce/tinymce-react 오류 입니다.
리액트 버젼이 19.0 이상이라서 안된다고하는데 리액트를 다운그레이드해야하나요??...리액트를 다운그래이드 안하고 사용하는 방법은 없을까요?
-
미해결
[실습 6-4, 5] 정상적인 접근이 아닙니다
action.php<? @session_start(); header("Content-Type: text/html; charset=UTF-8"); include ( './common.php' ); # CSRF Token 검증 로직 $csrf_token_session = $_SESSION["csrf_token"]; $csrf_token_param = $_REQUEST["csrf_token"]; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $csrf_token_session = $_SESSION["csrf_token"]; $csrf_token_param = $_REQUEST["csrf_token"]; // CSRF 토큰 검증 if (empty($csrf_token_session) && empty($csrf_token_param) || $csrf_token_param != $csrf_token_session) { echo "<script>alert('정상적인 접근이 아닙니다.');history.back(-1);</script>"; exit(); } } $mode = $_REQUEST["mode"]; $db_conn = mysql_conn(); if($mode == "write") { $title = xss_html_entity($db_conn->real_escape_string($_POST["title"])); $id = $db_conn->real_escape_string($_SESSION["id"]); $writer = xss_html_entity($db_conn->real_escape_string($_SESSION["name"])); $password = $db_conn->real_escape_string($_POST["password"]); $content = $db_conn->real_escape_string($_POST["content"]); $secret = $_POST["secret"]; $uploadFile = ""; if(empty($title) || empty($password) || empty($content)) { echo "<script>alert('빈칸이 존재합니다.');history.back(-1);</script>"; exit(); } if(!empty($_FILES["userfile"]["name"])) { $uploadFile = $_FILES["userfile"]["name"]; $uploadPath = "{$upload_path}/{$uploadFile}"; if(!(@move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadPath))) { echo("<script>alert('파일 업로드를 실패 하셨습니다.');history.back(-1);</script>"); exit; } } if($secret == "on") { $secret = "y"; } else { $secret = "n"; } $uploadfile = $db_conn->real_escape_string($uploadFile); $content = str_replace("\\r\\n", "<br>", $content); $query = "insert into {$tb_name}(title, id, writer, password, content, file, secret, regdate) values('{$title}', '{$id}', '{$writer}', '{$password}', '{$content}', '{$uploadFile}', '{$secret}', now())"; $db_conn->query($query); } else if($mode == "modify") { $idx = $_POST["idx"]; $title = xss_html_entity($db_conn->real_escape_string($_POST["title"])); $password = $db_conn->real_escape_string($_POST["password"]); $content = xss_html($db_conn->real_escape_string($_POST["content"])); $secret = $_POST["secret"]; $uploadFile = xss_html_entity($_POST["oldfile"]); if(!is_numeric($idx)){ echo "<script>alert('숫자 값만 가능합니당.');history.back(-1);</script>"; exit(); } if(empty($idx) || empty($title) || empty($password) || empty($content)) { echo "<script>alert('빈칸이 존재합니다.');history.back(-1);</script>"; exit(); } # Password Check Logic #$query = "select * from {$tb_name} where idx={$idx} and password='{$password}'"; $query = "select * from {$tb_name} where idx={$idx} and id='{$_SESSION["id"]}'"; $result = $db_conn->query($query); $num = $result->num_rows; if($num == 0) { #echo "<script>alert('패스워드가 일치하지 않습니다.');history.back(-1);</script>"; echo "<script>alert('잘못된 요청입니다.');history.back(-1);</script>"; exit(); } if(!empty($_FILES["userfile"]["name"])) { $uploadFile = $_FILES["userfile"]["name"]; $uploadPath = "{$upload_path}/{$uploadFile}"; if(!(@move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadPath))) { echo("<script>alert('파일 업로드를 실패 하셨습니다.');history.back(-1);</script>"); exit; } } if($secret == "on") { $secret = "y"; } else { $secret = "n"; } $content = str_replace("\\r\\n", "<br>", $content); $uploadFile = $db_conn->real_escape_string($uploadFile); $query = "update {$tb_name} set title='{$title}', content='{$content}', file='{$uploadFile}', secret='{$secret}', regdate=now() where idx={$idx}"; $db_conn->query($query); } else if($mode == "delete") { $idx = $_GET["idx"]; $password = $db_conn->real_escape_string($_POST["password"]); if(!is_numeric($idx)){ echo "<script>alert('숫자 값만 가능합니당.');history.back(-1);</script>"; exit(); } # Password Check Logic #$query = "select * from {$tb_name} where idx={$idx} and password='{$password}'"; $query = "select * from {$tb_name} where idx={$idx} and id='{$_SESSION["id"]}'"; $result = $db_conn->query($query); $num = $result->num_rows; if($num == 0) { #echo "<script>alert('패스워드가 일치하지 않습니다.');history.back(-1);</script>"; echo "<script>alert('잘못된 요청입니다.');history.back(-1);</script>"; exit(); } $query = "delete from {$tb_name} where idx={$idx}"; $db_conn->query($query); } echo "<script>location.href='index.php';</script>"; $db_conn->close(); ?>write.php <div class="pricing-header px-3 py-3 pt-md-5 pb-md-4 mx-auto text-center"> <h1 class="display-4">Write Page</h1> <hr> </div> <div class="container"> <form action="action.php" method="POST" enctype="multipart/form-data"> <div class="form-group"> <label>Title</label> <input type="text" class="form-control" name="title" placeholder="Title Input"> </div> <div class="form-group"> <label for="exampleInputPassword1">Password</label> <input type="password" class="form-control" name="password" placeholder="Password Input"> </div> <div class="form-group"> <label for="exampleInputPassword1">Contents</label> <textarea class="form-control" name="content" rows="5" placeholder="Contents Input"></textarea> </div> <div class="form-group"> <label for="exampleInputPassword1">File</label> <input type="file" class="form-control" name="userfile"> </div> <div class="custom-control custom-checkbox"> <input type="checkbox" class="custom-control-input" id="customCheck1" name="secret"> <label class="custom-control-label" for="customCheck1">Secret Post</label> </div> <div class="text-right"> <input type="hidden" name="csrf_token" value="<?=$csrf_token?>"> <input type="hidden" name="mode" value="write"> <button type="submit" class="btn btn-outline-secondary">Write</button> <button type="button" class="btn btn-outline-danger" onclick="history.back(-1);">Back</button> </div> </form> </div> 해커 계정으로 게시물 작성하려고 하는데정상적인 접근이 아니라는 팝업이 뜹니다. 강의대로 코드 작성해도 그렇고 위처럼 수정했을 때도 그렇습니다.
-
해결됨하루만에 언리얼 엔진5 입문하기
게임 승리해도 시간 지나면 패배하는 문구가 떠요
게임에 승리해도 대기 해서 시간이 지나면 패배했다는 문구가 프린트 되더라고요. 그래서 시간이 끝나면 cast to BP_캐릭터 이거 써서 Is There A coin을 불러 오고 Branch를 통해 false일 경우에 실행시킬려고 해보고 컴파일 해 봤지만 Objet가 지정되어 있지 않다고 에러가 나더라고요.오브젝트를 지정해서 연결할수 있는 노드가 있을까요?
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
vue.js 중급 리포지토리 권한 관련
인프런 아이디: izim0522인프런 이메일:izim0522@naver.com깃헙 아이디: izim5223@gmail.com깃헙 username: junse11입니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
[긴급] 다익스트라 영상강의 문제
영상 강의 중간에 그림을 작성하는 부분으로 넘어갈 때마다 소리는 정상적으로 나오지만 영상이 뚝뚝 끊기는 현상이 발생합니다. 설명에서 가장 중요한 시각 자료를 작성하시는 부분에서 발생하는 현상이라 빠른 수정 부탁드립니다.구간: 1분19초~ 1분 24초, 2분 30초 ~ 3분
-
해결됨QGIS 입문자 올인원 스타터팩 (이론/실습형)
강의 자료 >SECTION_01 어디에서 다운 받을 수 있을가요?
QGIS 레이어 추가/속성 확인(백터;레스터;데이터테이블) 강의 듣고 있는데 자료 다운이 안된어 따라 갈 수 가 없네요, 참고로 , 다운로드에서는 실습 SECTION _4 다운 되었어요. 😀
-
미해결초보자를 위한 git & github 기본기
한번 봐주실 수 있을까요??
강사님이 하시는대로 따라갔는데 저는 왜 이메일이 안뜨는지 궁금합니다!!
-
미해결
React 팀 프로젝트 (로그인 검증 기능)
Supabase의 DB로 로그인 검증 기능을 만들려고 해요 그런데 로그인 검증을 하기 위해서 예외처리를 테스트 하는데 error 400 (Bad request) 가 발생 합니다. 데이터 값이 있으면 로그인은 됩니다. 하지만 존재 하지 않는 값의 예외처리를 할려 하는데 무조건 error 400 (Bad request) 가 나타나내요 이 문제를 해결해 줄 수 있는분 답변 부탁 드립니다. const handleLogin = async (e) => { e.preventDefault(); if (!email || !password) { alert('이메일과 비밀번호를 입력해주세요.'); return; } // 이메일 형식 확인 (정규식 사용) const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; if (!emailPattern.test(email)) { alert('올바른 이메일 형식을 입력해주세요.'); return; } if (password.length < 6) { alert('비밀번호는 최소 6자 이상이어야 합니다.'); return; } try { const { data, error } = await supabase.auth.signInWithPassword({ email, password, }); if (error) { alert('이메일 또는 비밀번호가 잘못되었습니다.'); return; } if (data?.user) { alert('로그인이 완료되었습니다.'); navigate('/'); } else { alert('회원 정보가 존재하지 않습니다.'); } } catch (err) { console.error('오류 발생:', err); alert('오류가 발생했습니다. 잠시 후 다시 시도해주세요.'); } };
-
해결됨카프카 완벽 가이드 - 커넥트(Connect) 편
table.name.format에 관하여..
안녕하세요 선생님. 강의 잘 보고 있습니다.JDBC Sink Connector의 데이터베이스 스키마 설정 문제가 있네요. 찾아보니 JDBC Sink Connector의 내부적인 문제 같습니다... 구글링을 해보니 table.name.format에서 .구분자를 기준으로 데이터베이스 스키마를 지정해주는 것이 저를 포함하여 문제가 있는 사람들도 있던데... 결론은 그냥 되는 config로 사용하자 입니다. 아래의 내용은 혹여나 저와 같은 문제가 생기신다면 참고해 주세요. 공식 포럼과 이슈를 확인해봐도 명확하게 문제의 원인이 무엇인지에 대한 설명은 없습니다. 해결 방안만 있어요.. JDBC Sink Connector 생성하여 Key값을 가지는 Customers 토픽에서 테이블로 데이터 Sink해당 github 링크의 코드를 확인해보시면 connection.url에서 이미 스키마 om_sink를 바라보고 있는데, table.name.format 설정에서 또다시 om_sink 하위에 table을 만드려는 시도에 Exception이 발생합니다. CREATE TABLE om_sink.`om_sink`.`customers_sink_base`라는 SQL 문을 실행하게 되고 이에 exception이 발생합니다. 에러 발생=> om_sink의 om_sink의 customers_sink_base 테이블 생성을 시도함.CREATE TABLE `om_sink`.`om_sink`.`customers_sink_base` -- 이렇게 실행됨. 따라서 connection.url 또는, table.name.format 둘 중 한 군데에는 om_sink를 빼줘야 할 것 같아요. 수정 후 정상 동작
-
미해결Next + React Query로 SNS 서비스 만들기
마이크로 프론트엔드는 레포가 여러개일까요?
안녕하세요! 강의 잘 듣고 있습니다!강의 도중 마이크로 프론트엔드에 대해 여쭤볼게 있어 질문 드립니다!다름이아니라, 3개의 Next 앱을 같은 도메인 아래 뒤에 주소들로만 구분해서 하나로 묶는 마이크로 프론트엔드는 그렇다면 결국 레포지토리가 3개인가요??
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@ModelAttribute 와 Model model 방식의 차이가 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@GetMapping("/login") public String login(@ModelAttribute("login") LoginDto loginDto) { return "login/login"; } @PostMapping("/login") public String loginForm(@Validated @ModelAttribute("login") LoginDto loginDto, BindingResult bindingResult, HttpServletRequest request) { if (bindingResult.hasErrors()) { return "login/login";}이렇게 작성하였을 때는 유효성 검사에 실패하면 제대로 처리가 되는데,@GetMapping("/login")public String login(Model model) { model.addAttribute("login", new LoginDto()); return "login/login";}이런 식으로 변경하면 Caused by: java.lang.IllegalStateException:Neither BindingResult nor plain target object for bean name 'login' available as request attribute이런 식으로 오류가 나게 됩니다. 동작 방식에서 어떤 차이가 있는 것인지 궁금하여 질문 남깁니다.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
C언어 기출문제의 변형 23:00문제 질문할게요
*ptr++의 경우에는 arr의 값도 증가 시키고 포인터 위치도 변경시키는거고,++*ptr 일경우에는 바라보고 있는 포인터위치는 변하지 않고 arr의 값만 증가 시키고 끝나는건가요? 제가 지금 이해하고 있는건 *ptr 의 앞에 "++"이 붙으면 값만 선증가시키고, "++"이 뒤에 붙이면 값을 후증가시키고 메모리값도 증가시킨다. 인데 이게 맞나요?
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
outlet을 이용한 서브메뉴 강의에서 질문있습니다.
outlet을 이용한 서브메뉴에서 질문있습니다.main <-이 부분이 부모페이지고list add <-서브페이지면list page component<-자손페이지 인가요?강의에서 IndexPage.js에서 <Outlet/> 부분에 ListPage.js 코드가 들어가 있는 형태인거 같은데요.근데 제가 아래처럼 작동해봤을 떄 Todo List Page Component 이 부분이 안나오는데요.코드 어디가 문제인가요? 코드 복붙했는데요.아래는 IndexPage.js 코드입니다.import { Outlet } from "react-router-dom";import BasicLayout from "../../layouts/BasicLayout";const IndexPage = () => {return (<BasicLayout><div className="w-full flex m-2 p-2 "><div className="text-xl m-1 p-2 w-20 font-extrabold text-center underline">LIST</div> <div className="text-xl m-1 p-2 w-20 font-extrabold text-center underline">ADD</div></div><div className="flex flex-wrap w-full"><Outlet/></div></BasicLayout>);}export default IndexPage;아래는 ListPage.js 코드입니다.import React from 'react'export default function ListPage() {return (<div className="p-4 w-full bg-orange-200 "><div className="text-3xl font-extrabold">Todo List Page Component</div></div>)}
-
미해결해외 빅테크 코딩 인터뷰: LeetCode 포기자의 합격 공부법
선수지식 관련 질문.
안녕하세요 강사님 우선 좋은 강의 만들어주셔서 감사합니다.저처럼 해외취업을 하고싶지만 코테 포기자한테 희망이 될 수 있는 강의인것 같습니다.자료구조, 알고리즘, 시간, 공간 복잡도는 알고리즘 문제를 푸는데 필수적이라고 하셨지만 모르는 상태로 시작하고 문제를 풀면서 채워나가면 된다고 하셨는데요. 이때 각 항목별로 어느정도 알고 있어야 하는지 감이 오지 않습니다. 좋아하는 프로그래밍 언어로 자료구조를 구현할 수 있는 상태에서 시작해야하는 건지 후반부 강의에서 보여주신 데모 방식대로 자료구조나 알고리즘도 그때그때 chatgpt한테 물어보면서 풀어가면 되는건지 궁금합니다. 강사님은 이 방법론으로 문제 풀이를 하실 때 어느정도 사전지식들을 따로 공부하고 시작하신건가요? 혹은 사전 지식들도 Gpt한테 물어봐가면서 다시 학습하신건가요?
-
미해결
앱설치는 나오지도 않고 화면도 안나와요
앱설치가 플레이스토어에 있다해서 봤는데 나오지도 않고그냥 강의 보려구 해도 안나옵니다휴대폰 폴드5인데 뭐가 안되는건가요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
이해가 되질 않습니다. 선생님이 작성해주신 코드로 제출했는데 오답처리됩니다. ( 배열 11.임시반장정하기)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. package DJ_LEE.Array; import java.util.Scanner; public class Main10 { public int solutionOfLecture(int[][] arr, int num) { int answer =0; int min = 0; for (int i=1; i<= num; i++) { int cnt = 0; for (int j = 1; j <= num; j++) { for (int k = 1; k <= 5; k++) { if (arr[i][k] == arr[j][k]) { cnt++; break; } } } if(cnt>min){ min=cnt; answer=i; } } return answer; } public static void main(String[] args) { Main10 T = new Main10(); Scanner kb = new Scanner(System.in); int num = kb.nextInt(); int[][] arr = new int[num+1][6]; for( int i=1; i<=num; i++){ for(int j =1; j<=num; j++){ int el = kb.nextInt(); arr[i][j]=el; } } System.out.println(T.solutionOfLecture(arr,num)); } }
-
해결됨Markdown과 HTML/CSS로 만드는 고급 PDF 제작
화면이 두번째 강의 부터 안나와요
화면이 안나와요
-
해결됨김영한의 실전 자바 - 중급 1편
불변 객체가 되기 위한 조건
불변 객체가 되기 위해서는 해당 객체의 상태가 변경될 수 없는 형태여야하는데, 상태(필드, 멤버 변수) 중 변경 가능한 상태와 변경 불가능한 상태가 모두 존재하는 경우는 불변 객체로 보나요?