월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[리뉴얼] React로 NodeBird SNS 만들기
./store/configureStore.js파일에서 'redux' 최신 버전 질문입니다.
현재 redux가 4.2.0(최신)을 설치한 상태라서 createStore를 사용하려고 하면 createStore대신 @redux/toolkit의 configureStore함수를 사용하라고 권고하는 메시지를 읽었어요. 그래서 reduxjs/toolkit(1.8.1)에서 configureStore을 가져와서 createStore대신에 configureStore를 사용했는데(@redux/toolkit 공식문서에 나와있는대로 reducer, middleware, devTools, enhancers를 매개변수로 넣어주었습니다.), redux를 사용할때(회원가입 버튼을 누를 때) 이렇게 에러가 떠서 질문드립니다.(물론 createStore를 사용하면 잘 작동하기는 하는데 configureStore를 사용하면 잘 안되서 어떻게 하면 에러를 해결할 수 있을까해서 질문드립니다.) 첫번째 사진은 configureStore코드이고, 두번째 사진은 에러 메시지 입니다.
- 미해결[리뉴얼] React로 NodeBird SNS 만들기
include 질문이요
const fullUserWithoutPassword = await User.findOne({ where: { id: user.id }, attributes: { // attribute: ['id','nickname','email'] => id,nickname,email만 쓰겠다. exclude: ["password"], }, include: [ { model: Post, attributes: ["id"], }, { model: User, as: "Followings", attributes: ["id"], }, { model: User, as: "Followers", attributes: ["id"], }, ], }); include의 모델 User는 아래와 같이 user와user의 관계에 의해 mysql에 테이블 follow가 만들어 지는데요. db.User.belongsToMany(db.User, { through: "Follow", as: "Followers", foreignKey: "FollowingId", }); db.User.belongsToMany(db.User, { through: "Follow", as: "Followings", foreignKey: "FollowerId", }); 이때 { model: User, as: "Followings", attributes: ["id"], }, { model: User, as: "Followers", attributes: ["id"], }, 1번째 include 모델 User는 테이블follow의 FollowerId 값으로 해당 user를 찾고 2번째는 FollowingId로 user를 찾아서 객체로 반환 해 주는 건가요? 이쪽부분이 잘 이해가 안되네요..
- 미해결[리뉴얼] React로 NodeBird SNS 만들기
NODE_ENV 확인하는 방법?
저번에도 비슷한 질문드렸는데 아무래도 노드 16버전 때문인지 강의랑 똑같이 할때 permission denied 뜹니다. sudo가 명령어 상에 없는 것 같다고 답 주셔서 package.json 에 start에다가 그냥 sudo를 직접 넣어 주니까 실행은 됩니다. sudo su로 들어가서 npm start, pm2 monit 전부 강의 화면처럼 나오구요 근데 궁금한게 cross-env로 환경변수를 설정해 주면 process.env 안에 NODE_ENV가 들어가야 되는게 아닌지요? 확인해 보니까 없는 것 같은데 잘못 된건 가요? 확인은 echo $NODE_ENV 해보니 안뜨구 repl 에서 process.env 쳐봐도 안에 NODE_ENV는 안보이네요?
- 미해결[리뉴얼] React로 NodeBird SNS 만들기
my sql db 연결시 에러
안녕하세요 혼자 해결해보고자 노력했으나 초보의 한계임을 깨닫고 질문드려봅니다ㅠㅠ 시퀄라이즈 sync+nodemon 강의를 수강하면서 순서대로 db 생성 명령어 입력 후 node app을 쳤는데 아래와 같이 db 연결 성공이라는 문구는 뜨는데 mysql에 테이블 생성은 안되어있습니다. 코드 상 오류는 없어보이는데 문제가 뭘까요? 도움 부탁드립니다
- 미해결[리뉴얼] React로 NodeBird SNS 만들기
key 질문입니다
안녕하세요 제로초님 제가 발급받은 키 중간에 // 과 같은 문자가 섞여있었는데요 .env 파일에 넣으니까 // 다음 키 부분이 주석처리가 되더라구요 그럴때는 백틱을 사용해서 감싸줘도 될까요? 해당 키는 그냥 삭제하고 재발급 받긴 했습니다.
- 미해결[리뉴얼] React로 NodeBird SNS 만들기
람다 리사이징 언제 끝나는지 아는방법
현재 채팅앱 구현중인데, 서버를 통해 presignedUrl를 발급받은후 클라이언트단에서 s3에 이미지를 업로드 하고있습니다. PUT을 통하여 S3에 업로드하면 람다함수가 트리거되어 실행되는데, 이 람다함수가 끝나는 시간을 클라이언트가 알수있는 방법은 없을까요?
- 미해결[리뉴얼] React로 NodeBird SNS 만들기
getStaticProps, getServerSideProps 관련해서 질문드립니다.
안녕하세요 zerocho님. 항상 친절하게 답변주셔서 감사합니다. 몇가지 질문이 있습니다. 1. getServerSideProps에서는 브라우저에서 쿠키를 들고 next.js 서버로 오기 때문에 cookie를 가지고 올 수 있다고 이해했는데 getStaticProps는 빌드 시에 실행되기 때문에 cookie를 들고있지 못한걸로 이해했는데 맞나요? 만약 그렇다면 getStaticProps에서 사용하는 API는 인증이 필요하지 않은 API만 사용해야하나요? 2. getServerSideProps는 SSR이라 이를 이용하게되면 화면이 전체 깜빡임이 일어날거라고 생각했는데 실제로는 일어나지 않더라구요. 혹시 이유를 알고 계신지 궁금합니다.
- 미해결[리뉴얼] React로 NodeBird SNS 만들기
aws 비용 관련된 질문입니다..!
안녕하세요 제로초님 이번엔 코드 질문이 아니라 aws 에 대한 질문입니다. 제가 azure 를 잠깐 배웠을때, 인스턴스, 구독같은 서비스를 중지하거나 제거하지 않으면 요금이 부과되었던걸로 기억하는데요 해당 강좌에서 aws는 인스턴스와 탄력적 IP 를 연결하면 돈이 부과되지 않고 인스턴스를 중지하거나 삭제하고 탄력적IP를 삭제안하면 그때 돈이 나간다고 이해를 했는데요 그럼 그냥 인스턴스를 내내 켜놓고 있어도 요금이 0인건가요? 애져에서 배웠던대로 인스턴스 중지나 삭제하려다가 궁금해져서 질문남깁니다... 오늘은 일단 아무것도 건들지 말고 잠들어야겠네요...
- 미해결[리뉴얼] React로 NodeBird SNS 만들기
pm2 에러 질문입니다.
안녕하세요 제로초님!! 제가 현재 프론트 build 까지는 성공했고 sudo npx pm2 start npm -- start 를 하면 성공적으로 시작됐다고 뜨는데 막상 홈페이지에 들어가면 페이지를 찾을 수 없다고 하더라구요. monit 도 마찬가지로 로그에 아무것도 찍히지 않습니다. 다른 분들도 같은 현상을 겪는 분들이 많으신거 같은데 저는 sudo npx pm2 list 를 다시 하면 상태가 errored 라고 뜨더라구요 그래서 sudo npx pm2 logs 명령어로 로그를 쭉 봤는데요 잘 빌드가 되다가 이렇게 MODULE_NOT_FOUND 로 에러가 뜨더라구욥. 구글링 해보니까 rm -rf ~/.pm2 를 해보라 해서 작성 후 다시 start 해봐도 똑같은 에러가 발생합니다... 이 에러를 해결하려면 pm2 를 다시 재설치하는 수밖에 없을까요?? 추가로 front ec2 에서 보안포트 80도 추가된 상태입니다.
- 미해결[리뉴얼] React로 NodeBird SNS 만들기
api 호출할 때 call 질문입니다.
saga에서 api호출 할 때 알려주신 방식과 function api(data) { return axios.get(http...); } function* addPost(action) { try { const result = yield call(api , action.data) } ************************** 다른 클래스에 api 호출하는 곳만 담아줘서 호출하는 방식이 있는데요이렇게 되면 call 안쓰고 실행하게 됩니다. 이 두개의 차이점이 있나요? import ItemService from '../../service/item/Item.service' function* addItem(action) { try { const result = yield PostService.addItemApi(action.data) yield put({ type: ADD_ITEM_SUCCESS, data: result.data }) } catch (err) { yield put({ type: ADD_ITEM_FAILURE, error : err.response.data }) } }
- 해결됨[리뉴얼] React로 NodeBird SNS 만들기
permission denied 0.0.0.0:80 오류
vim app.js 해서 포트를 80번으로 바꾸면 저런 에러가 뜨네요 3065로 하면 에러 안납니다. 구글에 검색 해보니까 리눅스에서 포트번호가 낮으면 뜨는 에러라는데 sudo su로 root 권한으로 npm start했는데 강의 처럼 안되는 이유가 뭘까요
- 미해결[리뉴얼] React로 NodeBird SNS 만들기
npm start 시 먹통?
제로초님 아래와 같이 sudo npm start 하면 저러고 진행되지가 않습니다. ㅠㅠ 노드, mysql설치, .env 만들기, 시퀄라이즈는 config.js로 변환해서 db 만든후 다시 ts로 바꿔줬습니다. ip는 도매인 구입후 front,back 탄력적 ip 만들고 레코드에 등록도 해놓았습니다. 2번 다시 인스턴스 만들고 해보았는데 저기서 멈춰버립니다. 로컬에서 dev할떄는 정상작동되는걸 확인했습니다!
- 미해결[리뉴얼] React로 NodeBird SNS 만들기
include질문이요
const post = await Post.create({ content: req.body.content, UserId: req.user.id, // deserializeUser 실행되면서 req.user에 값을 넣어준다. }); const fullPost = await Post.findOne({ where: { id: post.id, }, include: [ { model: Image, }, { model: Comment, include: [ { model: User, // 댓글 작성자 attributes: ["id", "nickname"], }, ], }, { model: User, // 게시글 작성자 attributes: ["id", "nickname"], }, include한 모델들이 어떻게 post에 관한 정보들을 가져 올 수 있는지 궁금합니다. 예를들어 제 생각에는 post에 관한 모델 User를 가지고 올려면 User에 User.findOne({where:{PostId: post.id}})처럼 post에 관한 정보가 있어야 된다고 생각하는데 그런 속성 없이 가져 올 수 있는게 이해가 안갑니다.
- 미해결[리뉴얼] React로 NodeBird SNS 만들기
https 적용 자동 갱신을 안 했는데 갱신이 되어 있어서..
crontab으로 https 적용 자동 갱신을 안 했는데, 자동 갱신이 되어 있어서 그 이유가 궁금해서 질문을 남겨봅니다. https 적용은 동영상으로 설명해 준 방식 말고, (아마 잘 안 됐나 봐요) 제로초님 블로그 글 보고 적용했던 것 같아요. (아래 링크) https://www.zerocho.com/category/NodeJS/post/5ef450a5701d8a001f84baeb let's encrypt에서 이젠 자동 갱신이 되는 것으로 바뀐 것일까요?
- 해결됨[리뉴얼] React로 NodeBird SNS 만들기
커스텀훅과 훅을 같이 쓸수있나요?
안녕하세요 제로초님! '더미데이터와 포스트폼 만들기' 부분을 보고 있습니다. 글작성(짹짹)을 클릭하면 textarea 내용물을 클리어해주고 싶은데, 만약 여기서 const [text, onChangeText] = useInput(""); 이렇게 커스텀 훅을 사용하였다면 setText를 사용해서 따로 상태를 변경할 수는 없는건가요? 감사합니다 !
- 미해결[리뉴얼] React로 NodeBird SNS 만들기
pm2 start 이후에 사이트 연결이 계속 안됩니다.
sudo npx pm2 start yarn -- start 명령어 치고나서 sudo npx pm2 monit을 해보니 찍혀야 할 로그가 찍히지도 않고, 계속 사이트는 연결이 되지 않습니다. ( 아래그림 참고 ) 혹시나 해서 sudo npx pm2 logs로 해서 로그 찍어보니 문제가 딱히 없어보입니다. 혹시나 443포트랑 80포트가 개방이 되지 않아서 그런걸까 싶어서 $ sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT $ sudo iptables -I OUTPUT -p tcp --sport 80 -j ACCEPT $ sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT $ sudo iptables -I OUTPUT -p tcp --sport 443 -j ACCEPT 위와 같은 명령어도 실행했습니다. 그 결과 현재 Listen하고 있는 포트를 조회해보니 이렇게 나오더라고요. tcp 하나가 established상태인데 이거는 완료 후 서버까지 연결된 상태인 거로 알고 잇는데, 대체 왜 사이트에 연결이 되지 않는걸까요? ㅠㅠㅠㅠㅠㅠ
- 미해결[리뉴얼] React로 NodeBird SNS 만들기
find함수에서 proxy질문이요
안녕하세요 const post = draft.mainPosts.find(v => console.log(v)) 를 했을 때 console에 proxy라는 객체들이 뜨고 draft.mainPosts 배열안에 객체들은 안보여주더군요 proxy가 데이터를 감춰주는 역할을 하는건가요?
- 미해결[리뉴얼] React로 NodeBird SNS 만들기
redux와 react-query 설정
다른 질문 들도 보다가 궁금한 점이 생겨 여쭤봅니다. 프로젝트에서 내에서 상태관리를 redux로 하고 server에서 데이터 패칭하는 부분을 (공부해 보니 server state라고 부르더군요) react-query(또는 swr)로 사용하려는 경우 설정을 어떻게 해야하나 궁금해서 검색해봤는데 마땅한 자료가 없어서 질문드려요 CRA기준으로 index.js에 import React from "react"; import ReactDOM from "react-dom"; import App from "./App"; import reducer from "./reducer"; import { Provider } from "react-redux"; import { configureStore } from "@reduxjs/toolkit"; import { Global } from "@emotion/react"; import { GlobalStyle } from "./index.style"; import { QueryClientProvider, QueryClient } from "react-query"; const store = configureStore({ reducer }); const queryClient = new QueryClient(); ReactDOM.render( <Provider store={store}> <QueryClientProvider client={queryClient}> <App /> <Global styles={GlobalStyle} /> </QueryClientProvider> </Provider>, document.getElementById("root") ); 이런식으로 사용해서 reducer 함수 정의하고 각 컴포넌트에서 queryClient를 import해서 사용하는 건가요? 제로초님 강의 들으면서 react-query를 이제 막 공부하고 있는데 react-query가 내부적으로 contextAPI 사용한다고 알고있는데 redux랑 contextAPI를 같이 쓴다는게 정확히 감이 안잡히네요 제가 잘못알고 있는 부분이나 공부해야할 키워드를 알려주시면 감사하겠습니다.
- 미해결[리뉴얼] React로 NodeBird SNS 만들기
fullPost의 model에 대해 질문이요
const fullPost = await Post.findOne({ where: { id: post.id}, include: [{ model: Image, }, { model:Comment, }, { model:User, }] include에서 model User를 넣어주셨는데 로그인하면 user에 대한 정보가 브라우저에 전달되고 그 user를 가져다 쓰면 되지 않나요?? 안적어도 되는건지 궁금합니다.
- 미해결[리뉴얼] React로 NodeBird SNS 만들기
useQuery refetch
제로초님 제가 react-query useQuery Hook을 사용하여 데이터를 받아왔습니다. 이 데이터 값들을 버튼 onClick 함수를 만들어서 버튼을 클릭할 때마다, useQuery api 요청을 콜을 해 주고 싶습니다. 그래서 찾아보니 useQuery refetch 를 알게되었고, refetch 함수를 onClick 함수에 넣어주었는데, 동작을 하지 않네요 ㅠㅠ. useQuery api를 버튼을 클릭할 떄 마다 api call 을 해주고 싶은데 어떻게 해줘야 할까요...