묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
개발자 모드 활성화 시 반응형 처리
문득 강의 수강 중에 강사님께서 개발자모드를 활성화하면 전체적인 화면이 반응형으로 되어있는데 쭉 수강하다가 제꺼에서는 지정이 안되있어 어느 챕터를 놓쳤는지 감이 안옵니다ㅜㅜ 혹여나 다른 분들도 비슷한 사례가 있을까싶어 여쭈어봅니다.
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
isLoading 기능 추가했는데, 존재하지 않는 일기 입니다.
isLoading 기능을 추가했는데 수정하기, 다이어리 페이지에서 새로고침하면 존재하지 않는 일기입니다. 라고 나오네요.https://github.com/pdh9311/onebite-react 작성했던 코드 입니다.import { Route, Routes } from "react-router-dom"; import "./App.css"; import { createContext, useEffect, useReducer, useRef, useState } from "react"; import Diary from "./pages/Diary"; import Edit from "./pages/Edit"; import Home from "./pages/Home"; import New from "./pages/New"; import Notfound from "./pages/Notfound"; function reducer(state, action) { let nextState; switch (action.type) { case "INIT": return action.data; case "CREATE": nextState = [action.data, ...state]; break; case "UPDATE": nextState = state.map((item) => String(item.id) === String(action.data.id) ? action.data : item ); break; case "DELETE": nextState = state.filter( (item) => String(item.id) !== String(action.data.id) ); break; default: nextState = state; } localStorage.setItem("diary", JSON.stringify(nextState)); return nextState; } export const DiaryStateContext = createContext(); export const DiaryDispathContext = createContext(); function App() { const [isLoading, setIsLoading] = useState(true); const [data, dispatch] = useReducer(reducer, []); const idRef = useRef(0); useEffect(() => { const storedData = localStorage.getItem("diary"); if (!storedData) { setIsLoading(false); return; } const parsedData = JSON.parse(storedData); if (!Array.isArray(parsedData)) { setIsLoading(false); return; } let maxId = 0; parsedData.forEach((item) => { if (Number(item.id) > maxId) { maxId = Number(item.id); } }); idRef.current = maxId + 1; console.log(parsedData); dispatch({ type: "INIT", data: parsedData, }); setIsLoading(false); }, []); const onCreate = (createdDate, emotionId, content) => { dispatch({ type: "CREATE", data: { id: idRef.current++, createdDate, emotionId, content, }, }); }; const onUpdate = (id, createdDate, emotionId, content) => { dispatch({ type: "UPDATE", data: { id, createdDate, emotionId, content, }, }); }; const onDelete = (id) => { dispatch({ type: "DELETE", data: { id, }, }); }; if (isLoading) { <div>데이터 로딩중입니다....</div>; } return ( <> <DiaryStateContext.Provider value={data}> <DiaryDispathContext.Provider value={{ onCreate, onUpdate, onDelete }}> <Routes> <Route path="/" element={<Home />} /> <Route path="/new" element={<New />} /> <Route path="/diary/:id" element={<Diary />} /> <Route path="/edit/:id" element={<Edit />} /> <Route path="*" element={<Notfound />} /> </Routes> </DiaryDispathContext.Provider> </DiaryStateContext.Provider> </> ); } export default App; import { useContext, useEffect, useState } from "react"; import { useNavigate } from "react-router-dom"; import { DiaryStateContext } from "../App"; //커스텀 훅 const useDiary = (id) => { const data = useContext(DiaryStateContext); const [currDiaryItem, setCurrDiaryItem] = useState(); const nav = useNavigate(); useEffect(() => { console.log("useDiary"); const currentDiaryItem = data.find( (item) => String(item.id) === String(id) ); if (!currentDiaryItem) { window.alert("존재하지 않는 일기입니다."); nav("/", { replace: true }); } setCurrDiaryItem(currentDiaryItem); }, [id]); return currDiaryItem; }; export default useDiary;
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
[재질문][그랩님 답변 부탁드립니다]101강
그랩님, 강의 잘 듣고 있습니다.다름이 아니라 궁금한 사항(=에러 해결방법)이 필요해서 글을 남기게 되었습니다.101강에서 Axios 에러(400)가 안드로이드 스튜디오 에뮬레이터에서 발생하고이어 아래의 추가 사진2에서 보시다시피 502 Bad Gateway가 발생하여 어떻게 해결 할 수 있는지에 대해 알고 싶어서 질문 드립니다.일단 101강 처음부터 ~ 4분 52초까지 그랩님께서 작성하신 소스코드를 똑같이 작성 후결과를 보려하는데,농구공 그림(세부사항:판매자:그랩,가격,상품명등등) 이 나오지 않아서 이것을 어떻게 하면 그랩님과 같은결과를 볼 수 있을지에 대해 여쭈어봅니다.사진 1 첨부 : 판매되는 상품들 밑에 100강만 들었을 시에 농구공 화면이 잘 나왔으나 101강 4분 52초까지의 내용의 소스코드를 입력 후 결과값 보면 400 에러도 발생하고 농구공도 안나오게 됩니다.어떻게 해야 하나요? 사진 2 첨부 : ngrok http 8080후 진행 하면, 아래와 같이 502 Bad Gateway라고 뜨는데, 이 에러 의미와무엇이 잘못된건지 그리고 어떻게 해결 해야 하는지 답변 주시면 좋겠습니다.이어서 중간에 아래 사진과 같은 절차를 겪었었는데요, 필요할 것 같아 참고로 스샷을 첨부합니다.axios 설치 후 grab-market-mobile에서 npm start하니 다른 프로세스에의해 포트 8081이 사용되고 있는데 8082 포트를 대신 쓸거냐는 질문에서 y or n 하라는데 y하게 되었는데요, 이 다음에 어떻게 해야그랩님 강의와 똑같이 잘 작동할 수 있을까요? 더불어서 또 다른 에러가 발생하는데요, 또 다른 에러는 cmd에서 ngrok http 8080 입력 후 포워딩 주소를 크롬브라우저에 복사 후 붙여넣으면,이전 밑에 질문에서는 정상 작동되었으나지금은 아래와 같이 바뀐 에러가 발생하였습니다.해결법을 모르기에 아래에 사진을 첨부합니다. 꼭 답변 부탁 드립니다.그랩님의 답변 부탁 드립니다.
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
저 강의 들으면서 작성한 코드를 github에 올려도 되나요?
안녕하세요.좋은 강의 들으며 많은 것을 배우고 있어서 감사히 생각하고 있습니다.그런데 강의 들으면서 작성한 코드 (예를 들면 감정 일기장 코드)를 제 github repository에public으로 올려도 되나요?답변해주시면 감사합니다.
-
해결됨비전공자를 위한 진짜 입문 올인원 개발 부트캠프
[그랩님 답변 부탁드립니다]101강 Axios 에러와 502 Bad Gateway 질문
그랩님, 강의 잘 듣고 있습니다.다름이 아니라 궁금한 사항(=에러 해결방법)이 필요해서 글을 남기게 되었습니다.101강에서 Axios 에러(400)가 안드로이드 스튜디오 에뮬레이터에서 발생하고이어 아래의 추가 사진2에서 보시다시피 502 Bad Gateway가 발생하여 어떻게 해결 할 수 있는지에 대해 알고 싶어서 질문 드립니다.일단 101강 처음부터 ~ 4분 52초까지 그랩님께서 작성하신 소스코드를 똑같이 작성 후결과를 보려하는데,농구공 그림(세부사항:판매자:그랩,가격,상품명등등) 이 나오지 않아서 이것을 어떻게 하면 그랩님과 같은 결과를 볼 수 있을지에 대해 여쭈어봅니다.사진 1 첨부 : 판매되는 상품들 밑에 100강만 들었을 시에 농구공 화면이 잘 나왔으나 101강 4분 52초까지의 내용의 소스코드를 입력 후 결과값 보면 400 에러도 발생하고 농구공도 안나오게 됩니다.어떻게 해야 하나요?사진 2 첨부 : ngrok http 8080후 진행 하면, 아래와 같이 502 Bad Gateway라고 뜨는데, 이 에러 의미와무엇이 잘못된건지 그리고 어떻게 해결 해야 하는지 답변 주시면 좋겠습니다.그랩님의 답변을 기다립니다.
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
감정일기장 최종완성본 링크는 어디에있나요??
감정일기장 최종완성본 링크는 어디에있나요??
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
2.2) 단락 평가 활용 사례에서 질문
2.2) 단락 평가 활용 사례에서 9:59 Truthy, Falsey 사용 관련 질문입니다. person && person.name수업 예시에서 person이 아예 undefined이면 person이 false니까 person.name을 아예 호출도 하지 않고, 따라서 오류가 발생하지 않는다고 이해했습니다. 그런데 person에 object만 선언하거나, object는 있지만 name 프로퍼티는 없는 경우 person은 true가 되지 않나요?그렇다면 뒤에 있는 person.name을 호출하고 오류가 발생해야 할 것 같은데코드를 돌려보니 오류가 발생하지 않고 undefined라고 표시됩니다.왜 이런지 알 수 있을까요?
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
컴포넌트 선언시 const vs function
컴포넌트 선언시에 const 선언이 function 선언에 비해서 얻는 이점이 있나요?실무에서는 어떤 방식을 더 많이 쓰나요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 유튜브 사이트 만들기
npm i하면 바로, 라이브러리 오류없이 받아지고, 구동되는 소스는 없나요?
git소스 다운로드 받았는데, npm i면 에러나서, 실습이 어렵네요.혼자 디버깅하면 될 듯도 한데, 실습전에 진이 빠지네요.npm i하면 바로, 라이브러리 오류없이 받아지고, 구동되는 소스는 없나요?
-
해결됨비전공자를 위한 진짜 입문 올인원 개발 부트캠프
Ngrok 설치 후 forwarding Url 에러
그랩님 강의 잘 듣고 있습니다.다름이 아니라, 강의를 들으면서 Ngrok를 설치 후forwarding Url로 크롬브라우저에서 치고 들어가면,아래와 같은 에러가 떠서 어떻게 해결 해야 하는지 답변을 듣고 싶어 글을 작성하게 되었습니다.에러 화면은 아래와 같습니다 그리고 올려 달라고 하신 사진 역시 첨부합니다. 상황은 아래와 같습니다.[사진2] [마지막 사진] 어떻게하면 그랩님의 강의 결과 화면과 똑같이 나올 수 있을까요? 답변 부탁드립니다.
-
해결됨비전공자를 위한 진짜 입문 올인원 개발 부트캠프
[그랩님께,Ngrok 악성코드 인식 해결방법]질문 드립니다.
그랩님, 강의 잘 듣고 있습니다.Ngrok에러가 앞전에 이어 지금도 있어서처음부터 다시 시작해보려고윈도우 크롬 다운로드 파일에서 다운로드한 Ngrok파일을 삭제 후다시 https://ngrok.com/download/windows?tab=download 에 들어가서 다운로드 후 압축을 풀려고 하는데, 이것을 컴퓨터 알약 프로그램이 아래 첨부한 사진처럼 악성 코드로 분류해서 치료할 것인지프로그램이 물어봐서 제가 치료하기 누르는 순간 결국 삭제되어서 Ngrok 진행을 하지 못하고 있습니다.왜 예전에는 다운로드 할 시에는 악성코드 문제 이슈가 전혀 없었는데요, 지금은 아래와 같은 첨부 사진 처럼뜨기에 혹시나 보안에 취약해지면 컴퓨터가 잘못 될 수도 있을 것 같아서 이것을 제대로 알고 시도해 봐야 될 것 같아 질문을 다시 드리게 되었습니다.아래는 ngrok 가서 다운 받은 [다운로드 폴더] 스샷 입니다.아래는 ngrok 다운 받은 파일 실행 후 스샷 입니다.마지막 사진은 ngrok 다운로드 받고 압축 해재하려면 아래와 같이 뜨는 스샷입니다.질문 요약 : ngrok 다운 받으면 알약에서 악성코드로 인지해서 악성코드 치료하면 ngrok.exe가 지워집니다. 어떻게 해야하나요? 그냥 치료 안하고 설치해도 되는 건가요? 이렇게 그냥 치료 안하고 진행해도 해킹 문제나 보안 문제가 발생하지 않을까 걱정이 들어서 전문가이신 그랩님께 여쭈어 봅니다.빠른 답변 부탁 드립니다.
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
강의 예제 관련해서 질문이 있습니다.
2.14) 비동기 작업 처리하기 3. Async&Awat 강의 예제 질문 async function getData() { return new Promise((resolve, reject) => { setTimeout(() => { resolve({ id: "Lu75", username: "Lu", }); }, 1500); }); } async function printData() { const data = await getData(); console.log(data, "...?"); return data; // 아마도 저 await 동작을 기다리기 전에 반환 처리가 먼저 되는 것일까? } console.log(printData()); // Promise 객체가 콘솔에 찍힙니다.질문 요약: printData()를 호출한 값을 console.log()로 출력할 때, 왜 Prmise 객체가 찍히는 걸까요? 예제 코드에서 printData() 함수에서 data 라는 변수에 getData() 함수의 실행 결과? Promise 객체에서 resolve 값이 담기는 거로 이해하고 있어서 data 변수를 return을 해서 console.log()로 출력을 해봤는데 제가 예상한 값이 나오지 않았습니다. 강의에서 나온 내용으로 제가 이해하기로는 await 키워드는 비동기의 작업을 기다려준다고 하여 data 변수에 당연히 getData()에서 Promise 객체가 resolve한 결과 값이 담기고 그 후에 return을 하는 줄 알았거든요! printData()를 호출한 값이 data의 값이 아닌 Promise 객체가 출력되어 이해가 되지 않아 질문을 합니다.getData() 함수에서 Promise의 executor 함수 부분에서 setTimeout()을 사용하여 1500ms를 기다리기 전에 printData()가 실행이 종료되어 그런걸까요..? 실행 순서가 잘 이해가 되지 않아 질문 남깁니다...!
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
리액트는 전부 CSR인가요?
안녕하세요. vue.js를 사용하다 리액트를 배우고 있습니다.현재 회사에서 진행중인 프로젝트에서 일부는 뷰, 일부는 뷰+nuxt.js를 사용합니다. 뷰만 사용하는 페이지는 SSR이고, nuxt.js는 CSR라고 합니다.(상사의 설명) 질문 // 리액트는 무조건 CSR로 되는건가요? next.js를 사용하면 크게 어떤점이 다른가요?(이 프로젝트 후 한입next 수강예정입니다..간단하게 먼저 질문드립니다.) 프로젝트와 뷰js를 완벽하게 이해하지 못해서 질문이 명확하지 못해 죄송합니다.
-
미해결프론트엔드 개발환경의 이해와 실습 (webpack, babel, eslint..)
지금 시점에서 해당 강의를 듣는 것에 대하여
다른 QnA 글들이나 정한님 답변 글도 다 읽어봤습니다.현재 강의를 들을때에 개발 환경을 구축하는 것에 대해서 어려움을 많이 토로하는것 같은데요그래서 해당 강의를 강의만 들으면서 현재 시점의 빌드 도구(ex vite, rollup.js , parcel, etc...)들과 달라진 점이 무엇인지 AI와 학습하는 정도로만 한다면 배움을 적게 가져갈까요 ? 추후에 해당 강의 업데이트라던지 혹은 다른 강의를 올리실 예정이 있는지도 궁금합니다. 감사합니다 정한님
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
one과 two의 값지정
🚨 필독) 질문하시기 전에 꼭 읽어주세요 (10초 소요)제목을 구체적으로 작성해 주세요✅ 좋은 예 : 감정일기장 Home 구현중 xx 이슈가 발생합니다.⛔️ 나쁜 예 : 이거 왜 안되나요?, 오류나요 도와주세요 등비슷한 궁금함을 갖고 계신 분들께 도움이 될 수 있어요! 코드의 이슈는 전체 프로젝트를 "링크 형태"로 올려주셔야 원인을 파악할 수 있습니다.깃허브, 구글드라이브 등의 수단을 통해 링크 형태로 전달해주세요직접 실행해보며 원인을 파악해야 하기 때문에 텍스트 형태로 붙여넣는건 삼가해주세요 🥲 답변이 도움이 되셨다면 답글 or 해결완료 버튼을 클릭해주세요비슷한 궁금함을 갖고 계신 분들께 도움이 될 수 있어요!제 답변이 여러분께 도움이 되었는지 저도 알고 싶어요 🥲 강의 내용에 궁금한 점이 있다면 몇 챕터의 몇 분 몇 초인지 알려주시면 더 좋아요더 빠른 답변이 가능합니다!2.4 강의 중rest매개변수 부분에서 // 2. Rest 매개변수 // -> Rest는 나머지, 나머지 매개변수 function funcB(one,two,...rest) { console.log(rest); } funcB(...arr1); 여기서 혹시 one과 two에 값을 지정할 수 있는 방법도 있을까요?? one = 10, two =20 해서 console.log()로 찍어봤을 때 10, 20 ,...이 되게 하는 방법이 있는 지 궁금합니다.
-
미해결지금 당장 NodeJS 백엔드 개발 [사주 만세력]
안녕하세요 혹시 24절기 데이터가 한국천국문화연구원 정보와 같지 않은가요?
제가 강의를 산 이유가 24절기 db데이터가 필요해서인데 db넣어보고 데이터보니까 24절기 데이터가 한국천문연구원에서 가져온 사이트하고 다르더라구요 그러면 대운 시작나이가 잘못뽑힐것같은데 잘뽑히시던가요??..https://uncle.tools/manse/solar-terms/1992
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
fontawesome 사용 문의
사용하려면 kit를 생성해야하는 것 같은데 무조건 구독을 해야하는건가요?
-
해결됨React, Node.js, MongoDB로 만드는 나만의 회사 웹사이트: 완벽 가이드
관리자 자동 로그아웃 문의드립니다.
관리자 계정이 시간이 지나면 자동으로 로그아웃이 안되어서 매번 isLoggedIn false로 바꿔주고 있는데강의에서 24시간 설정했는데24시간 이후 자동로그인이 안되는 것 같아서 문의드립니다.감사합니다.
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
Ngrok 설치 후 forwarding Url로 연결 불가
그랩님 강의 잘 듣고 있습니다.다름이 아니라, 강의를 들으면서 Ngrok를 설치 후forwarding Url로 크롬브라우저에서 치고 들어가면,아래와 같은 에러가 떠서 어떻게 해결 해야 하는지 답변을 듣고 싶어 글을 작성하게 되었습니다.에러 화면은 아래와 같습니다. 추가적으로 위 사진하나로 해결 방법이 파악이 불가능하다면,추가로 다른 어떤 것을 첨부해야 에러를 해결 할 수 있는 점이라면, 저에게 어떤 스샷이 필요한지 말씀해주시면, 다시 스샷 올려서 질문을 이어나가겠습니다.답변 꼭 주시면 감사하겠습니다.
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
Home 구현 중 getMonthlyData에서 질문이 있습니다.
구현해야할 Home 페이지는 title의 월과 년도가 같은 일기들을 보여주면 된다고 생각해서 beginTime과 endTime의 구현 없이, 단순히 월과 년도가 같으면 해당 아이템을 가져오는 방식으로 작성했습니다.이렇게 했을 때 비교적 코드가 간단해 보인다고 생각했고 Home 구현만 한 현재까지는 문제없이 작동되는데,혹시 다른 문제를 일으킬 여지가 있는걸까요? 답변 미리 감사드립니다. const getMonthlyData = (data, pivotDate) => { return data.filter( (item) => item.createDate.getMonth() === pivotDate.getMonth() && item.createDate.getFullYear() === pivotDate.getFullYear() ); };