묻고 답해요
150만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
순위 정보를
불러오고 있어요
-
미해결리액트로 나만의 블로그 만들기(MERN Stack)
npm run dev-watch 오류
--ignore 공백 ./client' ", 에서공백을 해놨는데도 왜 에러가 뜨는지 그 이유를 잘 모르겠습니다
-
해결됨백엔드 개발자에 의한, 백엔드 개발자들을 위한 프론트엔드 강의 - 기본편
강의 내용을 어느 정도로 파악하고 있는 것이 좋을까요?
안녕하세요.백엔드 개발자를 목표로 공부하면서, 최소한의 프론트엔드 지식도 익히고 싶어 강의를 수강 중인 학생입니다:)이번 Ajax 강의를 듣고 처음에는 잘 이해되지 않아 여러 번 반복해서 학습했습니다. 그 결과 왜 직렬화와 역직렬화를 하는지, 그리고 Ajax가 전체적으로 어떤 원리로 동작하는지에 대한 감은 조금 잡을 수 있었습니다.하지만 코드를 보면 해석은 가능하지만, 직접 작성해보라고 하면 아직 어려운 상태입니다. 강의의 예제 정도는 직접 구현할 수 있을 정도로 습득하는 것이 가장 좋겠지만, 익히는 데 시간이 꽤 걸릴 것 같아 동작 방식만 이해하고 넘어가도 괜찮을지 고민이 됩니다.
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
Logging 질문
LOGGING ={ 'version':1, 'disable_existing_loggers':False, 'handlers':{ 'file':{ 'level':'DEBUG', 'class':'logging.FileHandler', 'filename':os.path.join(BASE_DIR, 'logs/django.log'), 'formatter':'json', }, 'console':{ 'class':'logging.StreamHandler', 'formatter':'json', }, }, 'formatters':{ 'json':{ 'class': 'pythonjsonlogger.jsonlogger.JsonFormatter', 'format': '%(asctime)s %(levelname)s %(name)s %(message)s', }, }, 'root':{ 'handlers':['file','console'], 'level':'DEBUG', }, 'loggers':{ 'django':{ 'handlers':['file','console'], 'level': 'DEBUG', 'propagate':False, }, }, runserver 하는 순간 {"asctime": "2025-02-14 20:41:50,823", "levelname": "DEBUG", "name": "django.utils.autoreload", "message": "File C:\\Users\\moon\\miniforge3\\envs\\workout\\Lib\\site-packages\\PIL\\__init__.py first seen with mtime 1739352505.781736"} 이런 변경한 적 없는 것들이 자동리로드 되면서 콘솔에 계속 올라옵니다. 이유가 궁금합니다.
-
미해결[웹 개발 풀스택 코스] 부트스트랩 기초
db.json 문제 해결후 조회버튼을 누르면 테이블이 형성이 안됨
브라우저에서 조회버튼을 누르면 아무 반응이 없어요 어떻게 해야 하나요
-
미해결[웹 개발 풀스택 코스] 부트스트랩 기초
cd json-server와 json-server --watch db.json 오류
C:\Project\Bootstrap>cd json-serverThe system cannot find the path specified.C:\Project\Bootstrap>json-server --watch db.json--watch/-w can be omitted, JSON Server 1+ watches for file changes by defaultFile db.json not found이렇게 두가지 명령어에 오류가 뜹니다 어떻게 해야 하나요?
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
0.0.0.0:8000 접속이 안됩니다
도커컴포즈 명령으로 실행시 localhost:8000은 접속이 되는데 .. 0.0.0.0:8000 도커서버로는 연결이 안됩니다 왜 그런가요?
-
미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
emmet 에디터 설치 하려고 하는데 안 나오네요
이건 어떻게 해야할까요..? ㅠㅠ
-
해결됨백엔드 개발자에 의한, 백엔드 개발자들을 위한 프론트엔드 강의 - 기본편
CSR, SSR에 대해
안녕하세요, Foo님!좋은 강의 감사드립니다. 타임리프와 같이 SSR의 경우 AJAX 통신도 어려울 뿐더러 브라우저와 모바일 환경에서 필요한 API(엄밀히 말하면 Controller)를 각각 환경에 맞게끔 개발해야하는 단점이 있다. 반면에 CSR으로 FE를 설계하면 JSON만으로 통신하게 되어 하나의 API만 작성하면된다. 라고 이해하면 될까요?스마트폰에서도 반응형 웹의 경우 기존 브라우저에서의 html과 동일하게 이뤄지니 같은 API로 처리할 수 있는게아닌가요? (모바일 앱과 모바일에서 보는 브라우저의 차이가 있는건가요?)
-
미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
결과 이미지랑 글이 안떠요 왜일까요
// main변수= 문서 내 #main을 찾아서 가지고 와라 const main= document.querySelector("#main"); const qna= document.querySelector("#qna"); // statusbar 위한 엔드포인트 정의 const endPoint =12; // 결과값 const result=document.querySelector("#result"); // 사용자 입력값에 대한 배열 // const select = []; // 사용자 입력값에 대한 배열 new.직접 12개의 배열에 value 0넣기 const select = [0,0,0,0,0,0,0,0,0,0,0,0,0]; // 질문에 따른 답변 계산 // function calresult(){ // var pointArray = [ // 이 부분 data는 data.js로 옮겨서 동물 당 번호로 바꿔줌. // ] // for(let i = 0; i<endPoint; i++){ // // qnalist로 들어가서 a로 들어가고 거기서 select한 값 // var target =qnaList[i].a[select[i]]; // for(let j=0; j< target.type.length; j++){ // for(let k=0; k<pointArray.length; k++){ // if(target.type[j]=== pointArray[k].name){ // pointArray[k].value += 1; // } // } // } // } function calresult(){ // select라는 배열에 index를 반환할건데 최대값을 console.log(select); var result =select.indexOf(Math.max(...select)); return result; } // // value기준으로 정렬 sort // var resultArray = pointArray.sort(function(a,b){ // if(a.value > b.value){ // return -1; // } // if(a.value < b.value){ // return 1; // } // return 0; // }); // console.log(resultArray) // // key값을 도출, 동물의 이름 // let resultword = resultArray[0].key; // return resultworld; function setresult(){ let point = calresult(); const resultName = document.querySelector('.resultname'); resultName.innerHTML = infoList[point].name; var resultImg = document.createElement('img'); const imgDiv = document.querySelector('#resultImg'); var imgURL = 'img/image-'+ point + '.png'; resultImg.src=imgURL; resultImg.alt=point; resultImg.classList.add('img-fluid'); imgDiv.appendChild(resultImg); const resultDesc = document.querySelector('.resultDesc'); resultDesc.innerHTML=infoList[point].desc; } function goresult(){ qna.style.WebkitAnimation = "fadeOut 1s"; qna.style.Animation = "fadeOut 1s"; setTimeout(() => { result.style.WebkitAnimation = "fadeIn 1s"; result.style.Animation = "fadeIn 1s"; setTimeout(() => { qna.style.display = "none"; result.style.display = "block" }, 450)}) setresult(); calresult(); } function addAnswer(answerText, qIdx,idx){ var a = document.querySelector('.answerbox'); var answer = document.createElement('button'); // answer는 클래스나 id값이 없어서 querySelector이용 불가하므로 클래스 만들어주기 answer.classList.add('answerlist'); // qbox, answerlist에 애니메이션 넣기 위해 클래스 만들어주기 answer.classList.add('fadeIn'); // 버튼 간 간격 answer.classList.add('my-3'); answer.classList.add('py-3'); answer.classList.add('mx-auto'); // 답변 클릭할 수 있게 버튼 만들기 그것을 html에서 코드 짜지 않고 // innerhtml을 통해서 넣기 a.appendChild(answer); answer.innerHTML = answerText; // html의 onclick 역할의 addEventListener answer.addEventListener("click", function(){ // 버튼 하나만 클릭해도 모든 버튼이 사라지도록 함 var children = document.querySelectorAll('.answerlist'); for(let i=0; i< children.length; i++){ children[i].disabled =true; children[i].style.WebkitAnimation = "fadeOut 1s"; children[i].style.Animation = "fadeOut 1s"; } setTimeout(() => { // 소,닭 등 각 부여된 select 리스트의 순서를 찾아 value값 1씩 늘려주기 var target =qnaList[qIdx].a[idx].type; for(let i=0; i< target.length; i++){ select[target[i]] +=1; } //// 사용자 입력이 몇 번째인지 인덱스로 넣어주고 idx로 받아주기 -> 몇 번째 질문에서 몇 번째 답변 눌렀는지 select[qIdx] = idx; for(let i=0; i< children.length; i++){ children[i].style.display = 'none'; } goNext(++qIdx); // 버튼이 사라지고 950초쯤 이후 버튼 없어지게 }, 950) }, false); } function goNext(qIdx){ // 결과값 호출하는 함수 if(qIdx === endPoint){ goresult(); return; } // html파일에서 qna 안 qbox가져와라 var q= document.querySelector('.qbox'); q.innerHTML = qnaList[qIdx].q; // 원래는 q.innerHTML =qnalist[0].q; 였는데 0~11번째 질문을 // 하나씩 입력하면 귀찮으니까 let Idx라는 변수 만들어서, for 함수 사용 for(let i in qnaList[qIdx].a){ // answerlist를 하나씩 입력하지 않고 파라미터로 addAnswer(qnaList[qIdx].a[i].answer,qIdx,i); } // status에 따라서 바로 나타내려고 var status = document.querySelector('.statusbar'); status.style.width=(100/endPoint)*(qIdx+1) + '%'; } // 장면 넘어가는 animation function begin(){ main.style.WebkitAnimation = "fadeOut 1s"; main.style.Animation = "fadeOut 1s"; setTimeout(() => { qna.style.WebkitAnimation = "fadeIn 1s"; qna.style.Animation = "fadeIn 1s"; setTimeout(() => { main.style.display = "none"; qna.style.display = "block" }, 450); // 위에서 세운 고넥스트 함수 호출 let qIdx = 0; goNext(qIdx); }, 450); }
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
블로그 게시
안녕하세요 학습한 내용을 블로그나 깃허브에 정리해서 올려보려고 하는데 혹시 괜찮을까요?? 물론 강의 소스코드나 자료는 게시하지 않겠습니다
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
{{form.as_p}} 사용방법 질문드립니다.
form.py에 클래스로 작성해놓고, html 파일로{{form.as_p}} 입력하면 자동으로 그 form이 나옵니다. form.py에 클래스가 이것만 있는것도 아닌데, 어떻게 구분해서 나오는지 못 찾았습니다. 설명 부탁드립니다. 감사합니다.
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
reverse vs reverse_lazy 사용 이유와 차이점을 이해하지 못 했습니다.
reverse 와 reverse_lazy가 호출 즉시 평가한다. 지연평가한다. 여기서 평가가 의미하는게 뭔지 잘 모르겠습니다. 그리고 form_valid는 어디서 호출이 되는건가요. 전반적으로 이해가 잘 안되어 질문에 두서가 없습니다. 죄송합니다.
-
해결됨부트스트랩을 활용한 반응형 웹제작[기본 개념편] 부트캠프
스텝7 분량은어느정도될까요?
갠적으로 앞으로 오픈할 강좌로드맵에 스텝7이 관심이가는데 (강의시간)분량이 어느정도될까요?
-
해결됨부트스트랩을 활용한 반응형 웹제작 [실전편] 부트캠프
애니메이션 시간차
animation.css에서 강의대로 animate__fadeInLeftBig을 가져왔는데 첫 슬라이드는 자연스럽게 나옵니다. 두번째 슬라이드에서는 중간에 살짝 덜컹거리듯이 하며 나오는 문제와 next 버튼을 클릭했을 때 다음 화면을 넘어가게 되면 애니메이션 텍스트의 나타나는 시간과 이미지가 슬라이드되서 보여지는 시간 차이가 납니다.혹시 animatin.css 에서 선언된 애니메이션 옵션이 변경 가능한지 궁금합니다.
-
해결됨Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
url pattern관련 문의
안녕하세요. urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 이런식으로 url패턴을 만들어주면 이렇게 (^media/(?P<path>.*)$)패턴이 생기는거 같고 그 다음 views.py에서 해당 url을 처리할 로직을 만들어야하는걸로 아는데.. 이 경우는 어째서 예외인가요?
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
urls.py에 라우팅 하는 부분에서요.
config/urls.py가 있고, 앱을 만든다면 apps/urls.py가 꼭 필요한가요? config/urls.py 안에 다 넣을 수 있지 않을까요?
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
handler, static 질문이 있습니다.
안녕하세요,mysite>urls.py에handler404 = 'mysite.views.error_404_view' # #404에러 발생시 처리 handler500 = 'mysite.views.error_500_view'이렇게 작성하고,views.py 에서 def 로 함수 정의해서 쓰는데요.handler404, handler500 views.py에 context로 연결하는 예제 하나만 보여주시면 안될까요.원래 질문은 handler404, handler500를 어디에 쓰는지 모르겠다 였는데, 강의 후반부에 context로 연결해서 쓴다고 말씀해주셔서 질문을 바꿨습니다. 다른 질문은 static 부분에서 main.html 에서 <img src = "{% static 'mysite/django.png' %}" alt="Django image" />이렇게 작성해서 사용하는데, static을 settings.py에 정의해서 사용하신다고 알려주셨는데, 어떤 부분과 대응 되는지 잘 모르겠습니다. STATIC_URL ='/static/' 이부분 뒤로 붙어서 static/mysite/django.png 이런식으로 읽어오게 되는게 맞을까요?질문 받아주셔서 감사합니다.
-
해결됨실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
build: context 부분이 이해가 되지 않습니다.
context: . 대신에 다른걸 쓸 수 있다고 말씀해주시긴하는데, 제가 이해가 잘 안됩니다. services: app: build: context: .이부분만 다시 설명해주실수있으실까요?
-
미해결부트스트랩 5(Bootstrap 5) - 기초부터 웹 프로젝트 만들기
부트스트랩 + *.css 함께 사용하는 이유와 분리 기준이 궁금합니다.
안녕하세요. 현재 강의 중 프로젝트 1 단계를 진행중에 궁금점이 생겨 질문 드립니다.index.html 파일 디자인에 부트스트랩 만으로 작업 하지 않고 순수 css 를 함께 이용하시는데요.분류 원칙이 따로 있으신가요? 예를 들면 section 요소에 배경이미지는 *. css 파일에 position : relative, position : absolute 처리도 *.css 에서 처리를 하시네요.
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍
직렬화 질문
from snippets.models import Snippet from snippets.serializers import SnippetSerializer from rest_framework.renderers import JSONRenderer from rest_framework.parsers import JSONParser snippet = Snippet(code='foo = "bar"\n') snippet.save() snippet = Snippet(code='print("hello, world")\n') snippet.save() 튜토리얼 보고 따라하고 있었는데 shell에 이 부분을 저장하는 방법을 잘 모르겠습니다 혹시 한번만 상세하게 알려주실 수 있을까요??
주간 인기글
순위 정보를
불러오고 있어요