무료
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
안녕하세요 제로초님
프론트엔드 기술을 본격적으로 배우려고 하는 학부생입니다. 다름이 아니라 이번에 강의를 수강하면서 초반에는 기초문법 후반부에는 웹게임 만들기 실습이 있는 것으로 알고 있습니다. 웹게임 만드는 강의에서 문제를 받고 제가 먼저 코딩을 해본 후 강의에서 배운 내용으로 수정을 한 코드를 제 깃허브에 올려도 문제가 없을까요? 공부 기록 형식으로 코드를 올리고 싶은데 만약 저작권 등의 문제가 있다면 올리지 않도록 하겠습니다. 감사합니다!!
- 미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
안녕하세요 제로초님 공부법에 대해 질문드리고 싶습니다
안녕하세요 제로초님 학교에서 법학과 전공 소프트웨어 부전공을 이수하고 국비지원수업을 듣고 있는 개발자 지망생입니다. 시중에 여러 문법 강좌를 들어봤는데 코드를 스스로 작성해내는 실력이 늘지 않아 공부 효율이 떨어져 있는 상태입니다. 그래서 과거에 법학 시험을 보면서 이해하고 해당 내용을 암기한다음 문제에 적용해 해결방안을 도출했던 것 처럼 개발도 이해암기 -> 문제 적용을 통한 해결 방안 도출이 반복되다보면 프로그래밍 사고력이 향상될 수 있는지 궁금합니다. 개발은 절대 암기하면 안되고 이해해야 한다는 말이 있어서 해당 방법이 효율적인 방법인지, 아니면 다른 방법을 고안해야 하는지, 보완해야할 부분이 있다면 어떤 방향으로 학습해야 할지 여쭤보고 싶습니다.
- 미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
\n 줄바꿈된건가요?
콘솔에 '안녕하세요\n줄바꿈했어요!'하면 그대로 브라우저 콘솔에 그냥 "안녕하세요\n줄바꿈했어요!"라고 줄바꿈이 안되고 한줄로 나오는데 바뀐게 맞나요? 강사님 화면처럼 밑으로 안내려가요
- 미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
함수 질문드립니다.
안녕하세요. 강의를 보다가 궁금한 점이 있는데 화살표 함수에 리턴과 괄호가 생략되었다고 하셨는데 ()=>{내용} 이렇게 괄호가 있는 것은 undefined를 리턴하나요? 하니면 똑같이 리턴이 생략되어지나요?
- 미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
12장 주변 칸 한번에 열기 부분에 질문드립니다.
안녕하세요 제로초님, 12장 지뢰게임 중 주변칸 한번에 열기를 구현하는 부분의 코드에 대해 몇가지 질문드립니다. openAround와 open으로 함수를 나누지 않고 우선 한 군데에 모두 작성해보았는데요 질문1. 사용자가 선택한 태그를 찾는 target을 그냥 event.target으로 하지 않은 이유는 인자로 event를 받아오지 않기때문인가요~? 그냥 event.target으로 해도 작동이 되긴하는데 다른 방법으로 사용해야하는 유의할 사항이 있는 지 궁금합니다. 질문2. 상단 if문 중 이미 열린 칸 클릭을 막는 것 외에 if(!target){return} 이 필요한 이유는 setTimeout 안의 코드로 실행되는 지정된 태그가 게임판 외부의 undefiend이 선택될 수 때문이 맞을까요? 질문3. 1개의 함수내에 칸이 열리는 코드를 작성하다보니 setTimeout을 if문으로 감싸 if문 조건에 만족하지 않으면 setTimeout 자체가 실행되지 않는 것으로 하였습니다. 이 부분에서 분리할 수 있다면 최대한 함수를 분리하는게 나은지(openAround와 open로)와 setTimeout이 조건에 따라 실행된다면 setTimeout을 호출하더라도 조건에 맞지 않아 실행되지 않는 방법과 조건에 맞지 않는다면 애초에 호출조차 되지 않는 방법 중 감싸는 순서가 작동 효율성(?)에 영향을 미치는 지 궁금합니다.
- 미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
객체의 속성도 변수라고 할 수 있을까요?
안녕하세요 const bc ='Abc'; const obj = { bc : 'hello', '2ca': 'hello', 'c a': 'hello', 'c-a': 'hello' }; 일 때 obj[bc] 와 obj['bc'] 가 다르고 객체의 속성은 문자열이라고 가르쳐주신 내용은 이해했는데 궁금한 점이 생겼습니다 객체의 속성도 변수라고 할 수 있을지 질문드리고 싶습니다 C++에서는 클래스의 멤버변수를 프로퍼티라고 부르고 코딩의 시작, TCP SchoolJAVASCRIPT는 객체의 속성을 프로퍼티라고 불러서 JavaScript 객체 기본 - Web 개발 학습하기 | MDN (mozilla.org) 같은 용어가 나오니 혼동이 되는 것 같습니다 자바스크립트에서는 프로퍼티를 문자열 취급해주지만 변수라고도 볼 수 있는지 질문드립니다
- 미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
this 사용 관련 질문드립니다.
안녕하세요 제로초님, 10장 텍스트 RPG 게임 중 몬스터를 사냥해 레벨업을 하는 부분에서 궁금한 점이 있습니다. 강의에서처럼 Hero클래스에 getXp 메서드를 넣는 방법 공부 후 if문을 중첩하여 바로 작성하는 것도 시도해보았는데요 위 코드처럼 else if문 안에 if문에서는 hero와 monster 각각 this를 붙여야만 코드가 제대로 실행이 됩니다. 콘솔로 확인해보아도 가장 바깥 if문의 this도 Game클래스이고, 내부 if문의 this도 Game 클래스로 동일한데 윗부분은 const { hero, monster } = this; 로 this 없이 사용이 가능하고, 아래 코드부터는 왜 this를 붙여주어야 실행이 되는 지 궁금합니다.
- 미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
\n newline이 안됩니다 ㅠㅠ
안녕하세요! 첫날이라 우습지만 기본적인 질문하나올려요~ \n 입력시 안되고 var i='hello\nworld'console.log(i) 라고 입력해야 줄바꿈이 되는데 ㅠ ㅠ 따로 설정이 되어있는건가요? [제로초 강좌 질문 필독 사항입니다]질문에는 여러분에게 도움이 되는 질문과 도움이 되지 않는 질문이 있습니다.도움이 되는 질문을 하는 방법을 알려드립니다.https://www.youtube.com/watch?v=PUKOWrOuC0c0. 숫자 0부터 시작한 이유는 1보다 더 중요한 것이기 때문입니다. 에러가 났을 때 해결을 하는 게 중요한 게 아닙니다. 왜 여러분은 해결을 못 하고 저는 해결을 하는지, 어디서 힌트를 얻은 것이고 어떻게 해결한 건지 그걸 알아가셔야 합니다. 그렇지 못한 질문은 무의미한 질문입니다.1. 에러 메시지를 올리기 전에 반드시 스스로 번역을 해야 합니다. 번역기 요즘 잘 되어 있습니다. 에러 메시지가 에러 해결 단서의 90%를 차지합니다. 한글로 번역만 해도 대부분 풀립니다. 그냥 에러메시지를 올리고(심지어 안 올리는 분도 있습니다. 저는 독심술사가 아닙니다) 해결해달라고 하시면 아무런 도움이 안 됩니다.2. 에러 메시지를 잘라서 올리지 않아야 합니다. 입문자일수록 에러메시지에서 어떤 부분이 가장 중요한 부분인지 모르실 겁니다. 그러니 통째로 올리셔야 합니다.3. 코드도 같이 올려주세요. 다만 코드 전체를 다 올리거나, 깃헙 주소만 띡 던지지는 마세요. 여러분이 "가장" 의심스럽다고 생각하는 코드를 올려주세요.4. 이 강좌를 바탕으로 여러분이 응용을 해보다가 막히는 부분, 여러 개의 선택지 중에서 조언이 필요한 부분, 제 경험이 궁금한 부분에 대한 질문은 대환영입니다. 다만 여러분의 회사 일은 질문하지 마세요.5. 강좌 하나 끝날 때마다 남의 질문들을 읽어보세요. 여러분이 곧 만나게 될 에러들입니다.6. 위에 적은 내용을 명심하지 않으시면 백날 강좌를 봐도(제 강좌가 아니더라도) 실력이 늘지 않고 그냥 코딩쇼 관람 및 한컴타자연습을 한 셈이 될 겁니다.
- 미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
로또 추첨기에서 궁금한 점이 있어요
안녕하세요 제로초님, 로또 추첨기 강의를 들은 뒤에 다시 혼자서 구현을 해보는데 궁금한 점이 있습니다. 우선 저는 45개의 숫자가 담긴 배열에서 랜덤으로 1개를 뽑는 과정을 7번 반복하는 코드를 작성했어요. 아직 반복문하면 for문부터 생각하는 수준이라서 while이 잘 떠오르지 않더라구요.. 그런데 splice 배열메서드를 사용하면서 index 정보를 받아와서 사용하지 않으면 Math.random으로 뽑아낸 num에 담긴 숫자가 spliceNum에 담기지 않습니다. 선생님께서 설명해주신 코드에는 splice ( a , b ) 에서 a에 랜덤을 뽑은 숫자(책의 random)를 바로 넣으셨는데 로또추첨기자체가 정확한 정보보다는 '랜덤'이면 되기때문에 그대로 적용하신건지 특정상황에서는 써야 하는 특징이 따로 있는 지 궁금합니다..!
- 미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
clearInterval(intervalId) 질문이요!!
const clickButton = () => { // 클릭 하자마자 실행 clearInterval(intervalId); console.log(intervalId); setTimeout(() => { // 클릭 후 1초 후에 실행 clearInterval(intervalId); console.log(intervalId); intervalId = setInterval(changeComputerHand, 50); }, 1000); }; 이 부분에서 연속으로 버튼 클릭이 아니라 1초 이상의 간격으로 버튼을 눌렀을 떄는 두번쨰 clearInterval이 작동이안된다고 생각하면 될까요?? 이미 인터벌을 clear했는데 아무것도 없는 interval을 클리어가 가능한가요??
- 미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
2-2 문자열기본 질문
[제로초 강좌 질문 필독 사항입니다]질문에는 여러분에게 도움이 되는 질문과 도움이 되지 않는 질문이 있습니다.도움이 되는 질문을 하는 방법을 알려드립니다.https://www.youtube.com/watch?v=PUKOWrOuC0c0. 숫자 0부터 시작한 이유는 1보다 더 중요한 것이기 때문입니다. 에러가 났을 때 해결을 하는 게 중요한 게 아닙니다. 왜 여러분은 해결을 못 하고 저는 해결을 하는지, 어디서 힌트를 얻은 것이고 어떻게 해결한 건지 그걸 알아가셔야 합니다. 그렇지 못한 질문은 무의미한 질문입니다.1. 에러 메시지를 올리기 전에 반드시 스스로 번역을 해야 합니다. 번역기 요즘 잘 되어 있습니다. 에러 메시지가 에러 해결 단서의 90%를 차지합니다. 한글로 번역만 해도 대부분 풀립니다. 그냥 에러메시지를 올리고(심지어 안 올리는 분도 있습니다. 저는 독심술사가 아닙니다) 해결해달라고 하시면 아무런 도움이 안 됩니다.2. 에러 메시지를 잘라서 올리지 않아야 합니다. 입문자일수록 에러메시지에서 어떤 부분이 가장 중요한 부분인지 모르실 겁니다. 그러니 통째로 올리셔야 합니다.3. 코드도 같이 올려주세요. 다만 코드 전체를 다 올리거나, 깃헙 주소만 띡 던지지는 마세요. 여러분이 "가장" 의심스럽다고 생각하는 코드를 올려주세요.4. 이 강좌를 바탕으로 여러분이 응용을 해보다가 막히는 부분, 여러 개의 선택지 중에서 조언이 필요한 부분, 제 경험이 궁금한 부분에 대한 질문은 대환영입니다. 다만 여러분의 회사 일은 질문하지 마세요.5. 강좌 하나 끝날 때마다 남의 질문들을 읽어보세요. 여러분이 곧 만나게 될 에러들입니다.6. 위에 적은 내용을 명심하지 않으시면 백날 강좌를 봐도(제 강좌가 아니더라도) 실력이 늘지 않고 그냥 코딩쇼 관람 및 한컴타자연습을 한 셈이 될 겁니다. 안녕하세요 2-2 문자열 기본 강의 들었는데요 다른건 다 고대로 잘됐는데 \n 했는데 줄바꿈이 안되는데 이유가 뭔지 모르겠어요
- 미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
클로저 질문입니다
자바스크립트 클로저 함수 공부를 더 해보다가, 클로저개념이 외부함수내에서 내부함수를 쓸때 외부함수가 생을 마감했더라도 외부함수가 지닌 변수를 내부함수에서 사용할수 있다는 개념임을 인지했습니다. 그래서 다음 문제를, 저는 이렇게 풀었는데 오답으로 나와서 곰곰히 생각해보게되었습니다. 이렇게 되었을때, 문제가 지향하는 바가 return 하는 당시 gfunc라는 함수를 재호출 시켜서 함수를 출력시키라는 것일까요? console.log(gfunc())라는 함수를 최종적으로 4번 출력시키는 것이 내부함수의 역할이라면, gfunc = solution()이니까 함수가 영원히 끝나지 않게 되는 것이 아닌가요? 왜냐하면 solution내에 gfunc가있고 gfunc는 solution을 또 호출하니까요.. 긴글 읽어주셔서 감사합니다 클로져(Closure)를 연습해보자 다음과 같은 모습으로 당신이 만든 solution 함수를 실행하고자 합니다 1 2 3 4 5 6 7 8 9 10 // 코드실행 버튼을 누르면 solution 함수를 아래와 같이 실행하게됩니다 // solution 함수의 리턴값의 타입은 함수가 되어야합니다 let gfunc = solution(3,6); // solution 함수로부터 리턴받은 함수를 실행시 다음과 같은 값이 찍히도록 만들어주세요 console.log(gfunc()) // 3 console.log(gfunc()) // 4 console.log(gfunc()) // 5 console.log(gfunc()) // 6 console.log(gfunc()) // undefined function solution(start, end) { return (function () { for (let i = start; i < end + 1; ++i) { console.log(i); } })(); } let gfunc = solution(3, 6);
- 미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
게산기 공부 중 질문있습니다
버튼에 id를 각자 주셨는데 같은 클래스명을 사용하고 클릭한 버튼의 textContent만 받으면 가능하지 않을까? 하고 생각했는데 7만 인식하고 다른 버튼은 인식을 아예 못하는데 이유가 뭔지 모르겠습니다.ㅠㅠ event.target으로 콘솔로그를 찍어봐도 7밖에 인식이 안돼서 이유를 잘 모르겠습니다.... <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>calculator</title> <style> * { box-sizing: border-box; } #operator { width: 50px; height: 50px; margin: 5px; text-align: center; } #result { width: 180px; height: 50px; margin: 5px; text-align: right; } button { width: 50px; height: 50px; margin: 5px; } </style> </head> <body> <input readonly id="operator" /> <input readonly type="number" id="result" /> <div class="row"> <button class="digit">7</button> <button class="digit">8</button> <button class="digit">9</button> <button id="plus">+</button> </div> <div class="row"> <button class="digit" id="num-4">4</button> <button class="digit" id="num-5">5</button> <button class="digit" id="num-6">6</button> <button id="minus">-</button> </div> <div class="row"> <button class="digit" id="num-1">1</button> <button class="digit" id="num-2">2</button> <button class="digit" id="num-3">3</button> <button id="divide">/</button> </div> <div class="row"> <button id="clear">C</button> <button class="digit" id="num-0">0</button> <button id="equal">=</button> <button id="multiply">x</button> </div> </body> <script> let numOne = ""; let operator = ""; let numTwo = ""; const $operator = document.querySelector("#operator"); const $result = document.querySelector("#result"); const onClickNumber = (event) => { if (!operator) { numOne += event.target.textContent; $result.value += event.target.textContent; return; } if (!numTwo) { $result.value = ""; } numTwo += event.target.textContent; $result.value += event.target.textContent; }; document.querySelector(".digit").addEventListener("click", onClickNumber); </script> </html>
- 미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
고차함수 부분 질문있습니다!!
항상 좋은 강의 해주셔서 감사합니다.교재 217p에서 func() 함수와 innerFunc3() 여기서요! 다른 부분은 다 이해가 가는데 const innerFunc3 = func()에서 func에서는 매개변수가 필요한데 매개변수가 전달이 안된거고,func()는 () => { console.log(msg) }라고 이해했습니다.예제를 실행해보면 innerFunc3() 은 undefinde가 잘 나오는데제가 추가적인 예시를 한번 만들어봤습니다. const a = () => { console.log(msg)}이렇게 하고 a()는 에러가 나더라고요..교재 예제에서는 func()이렇게 했을 때 매개변수가 전달이 되지 않았는데도 에러가 발생하지 않은 이유가 궁금합니다
- 미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
onClickNumber 선언이 궁금합니다
항상 감사합니다.const OnclickNumebr = function ~~ 이렇게 하시고 리스너 함수로 설정하셨는데저는 애초에 function onClickNumebr()이라고 선언 후 .addEventListener('click',()=>{onClickNumebr(1)}) 이런 식으로 작성을 했습니다.찾아보니깐 표현식 선언식이라고 하는데 어떤 상황에서 어떤게 맞는건지 좀 헷갈리더라구요...제로초님은 왜 이 상황에서 표현식을 쓰신건지, 앞으로 어떤 상황에 맞게 써야하는건지 궁금합니다!!
- 미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
2진법 변환 재귀적 접근 방법에 관해 질문 있습니다.
안녕하세요~ 제로초님, 요즘 재귀함수가 너무 어려워서 ㅠ.ㅠ 다양한 문제로 연습해보고 있는데요. 10진수를 2진수를 변환하는 문제를 이런 식으로 재귀적으로 풀어봤어요~ 코드는 다 정상적으로 작동하는데... 사실 그래서 너무 혼란스러워요. 함수가 스스로 불려질 때마다, result가 빈 문자열로 초기화 되는데, 어떻게 최종적으로 result 값이 정상적으로 나오는 지 모르겠어요. 이 문제를 해결해보려고, 콘솔 로그도 여러 곳에 심어봤는데, result는 다 빈 문자열로 떠서, 너무 이해가 안 되네요ㅠ 어떻게 코드가 ( = result 가 ) 아무 문제 없이 잘 작동하는 건가요?? ㅠ.ㅠ function binaryNum(num){ let result = ''; // base case if( num <= 1 ){ return result + num; } if( num%2 === 0 ){ num = parseInt( num/2 ); return binaryNum(num) + '0'; } if( num%2 === 1 ){ num = parseInt( num/2 ); return binaryNum(num) + '1'; } } binaryNum(10); // => 출력값 : 1010
- 미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
이 부분만 이해 가지 않습니다.
let i = 0; while(i < 10){ i++; if(i % 2 ===0 ){ continue; } console.log(i); } 1 3 5 7 9 //결과값이 왜이렇게 나온지 잘되지 않습니다. 다시 한번더 설명부탁드립니다.
- 미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
질문
[제로초 강좌 질문 필독 사항입니다]질문에는 여러분에게 도움이 되는 질문과 도움이 되지 않는 질문이 있습니다.도움이 되는 질문을 하는 방법을 알려드립니다.https://www.youtube.com/watch?v=PUKOWrOuC0c0. 숫자 0부터 시작한 이유는 1보다 더 중요한 것이기 때문입니다. 에러가 났을 때 해결을 하는 게 중요한 게 아닙니다. 왜 여러분은 해결을 못 하고 저는 해결을 하는지, 어디서 힌트를 얻은 것이고 어떻게 해결한 건지 그걸 알아가셔야 합니다. 그렇지 못한 질문은 무의미한 질문입니다.1. 에러 메시지를 올리기 전에 반드시 스스로 번역을 해야 합니다. 번역기 요즘 잘 되어 있습니다. 에러 메시지가 에러 해결 단서의 90%를 차지합니다. 한글로 번역만 해도 대부분 풀립니다. 그냥 에러메시지를 올리고(심지어 안 올리는 분도 있습니다. 저는 독심술사가 아닙니다) 해결해달라고 하시면 아무런 도움이 안 됩니다.2. 에러 메시지를 잘라서 올리지 않아야 합니다. 입문자일수록 에러메시지에서 어떤 부분이 가장 중요한 부분인지 모르실 겁니다. 그러니 통째로 올리셔야 합니다.3. 코드도 같이 올려주세요. 다만 코드 전체를 다 올리거나, 깃헙 주소만 띡 던지지는 마세요. 여러분이 "가장" 의심스럽다고 생각하는 코드를 올려주세요.4. 이 강좌를 바탕으로 여러분이 응용을 해보다가 막히는 부분, 여러 개의 선택지 중에서 조언이 필요한 부분, 제 경험이 궁금한 부분에 대한 질문은 대환영입니다. 다만 여러분의 회사 일은 질문하지 마세요.5. 강좌 하나 끝날 때마다 남의 질문들을 읽어보세요. 여러분이 곧 만나게 될 에러들입니다.6. 위에 적은 내용을 명심하지 않으시면 백날 강좌를 봐도(제 강좌가 아니더라도) 실력이 늘지 않고 그냥 코딩쇼 관람 및 한컴타자연습을 한 셈이 될 겁니다.
- 미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
참가 인원 재입력 과정 추가
안녕하세요, 선생님. 제가 이번 끝말잇기 게임 만들기 강조를 마무리하면서 1) 게임 시작 시 입력받은 게임 참가 인원을 확인(confirm) 하고 2) 이용자가 '취소' 버튼 클릭 시, 3) 재입력 하도록(prompt) 코드를 만들어봤는데요. 이 때 먼저 const yesorno = confirm('입력하신 게 맞나요?') 선언하고, if (yesorno==true) ~ 를 이용했습니다. 그런데 실제 프로그램을 돌려보니 두번 확인하다가 멈췄는데요. 계속 취소를 누를 경우, 재입력 할 수 있는 prompt창이 계속 떠야한다고 생각하는데, 그렇지 않아 어디서 놓친 부분이 있는지 궁금합니다. 코드 > if (yesorno == true) { const onClickButton = () => { if (!word || word[word.length - 1] === newWord[0]) { //제시어가 비어있다 word = newWord; $word.textContent = word; // document.getElementById("word").innerText = word; const order = Number($order.textContent); if (order + 1 > number) { $order.textContent = 1; } else { $order.textContent = order + 1; } } else { //제시어가 있음 alert('올바르지 않은 단어입니다. 게임종료') $order.textContent = 1; $word.textContent = ''; } $input.value = ''; $input.focus(); }; } else { const number = parseInt(prompt("몇 명이 참가하나요?"), 10); const yesorno = confirm('입력하신 게 맞나요?'); }
- 해결됨[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
textContent 에러
선생님과 똑같은 방식으로 코드를 작성했는데, $order.textContent에 에러가 발생했습니다. 에러 ) Cannot read properties of null (reading 'textContent') at HTMLButtonElement.onClickButton 자세히 살펴보니, const order = parseInt($order.textContent);에 문제가 있는 것 같습니다. 몇 번째 참가자인지 숫자가 바뀌지 않는데, 에러 이유를 정말 모르겠어서 질문 드립니다.