소개
게시글
질문&답변
새로 고침 시 로그인이 유지되지 않는 버그가 발생합니다!(쿠키 존재O)
제로초님의 백엔드 NODE_ENV가 production이 아닐 수 있다는 말씀에서 힌트를 얻어 버그를 해결하였습니다!백엔드 package.json의 start 스크립트에 cross-env NODE_ENV=production코드를 적지 않아 새로 고침 시 로그인이 풀리는 문제가 발생했던 것입니다!긴 질문 글임에도 끝까지 도와주셔서 감사합니다 제로초님! 행복한 설날 보내세요!// 수정 전 백엔드 start 스크립트 "start": "pm2 start app.js" // 수정 후 백엔드 start 스크립트 "start": "cross-env NODE_ENV=production pm2 start app.js"
- 1
- 3
- 2.1K
질문&답변
백엔드 MySQL에서 Drop Database 후 DB 생성 시 table이 생성되지 않습니다!
이미지 모델과 사용자 모델의 collate을 utf8mb4_general_ci로 변경하고,sudo git pull 후 우분투 백엔드 경로에서 npx sequelize db:create 명령어 입력 후,백엔드 start 스크립트인 node app을 실행하여 테이블 생성에 성공하였습니다!(CREATE DATABASE react-nodebird;는 하지 않았습니다.)백엔드 start 스크립트를 pm2 start app.js로 되돌린 후테이블이 생성에 성공했으므로 react-nodebird DB의 Table이 리셋되지 않도록back/app.js의 force를 false로 바꿨습니다.문제를 해결할 수 있게 도와주셔서 감사합니다 제로초님!npx sequelize db:create 명령어를 강의와 같이 루트 서버에서 진행하지 않고우분투 백엔드 서버에서 진행하라고 말씀하신 이유가 있을까요?문제는 해결했지만 똑같은 실수를 저지르지 않도록 확실하게 기억하고 싶어서요!! (사진)(사진)(사진)
- 0
- 4
- 707
질문&답변
백엔드 MySQL에서 Drop Database 후 DB 생성 시 table이 생성되지 않습니다!
질문 글이 길어진 것 같아 짧게 다시 정리하자면 아래와 같습니다!본문에 말씀드린 것과 같이 image 모델의 코드를 수정하였습니다.수정 후 sudo git pull 과정을 거쳤습니다.(back폴더 image.js 모델에서 이미지 경로 소스 문자열이 짧아서 늘렸습니다.)모델에 변경 사항이 있다면 MySQL 서버에서 DB를 지우고다시 생성해야 해야만 변경 사항이 적용된다고 생각하였습니다!그래서 백엔드 root에서 MySQL에 접속하여 Drop DB 후에 Create DB를 진행한 것입니다.DB를 지운 후 다시 생성하는 방법은 제로초님의 NodeBird 강의 중섹션6 프론트 서버 배포하기 14:00 부분과 똑같이 진행하였습니다.(혹시 몰라서 FLUSH PRIVILEGES; 명령어도 추가로 해주었습니다.)저는 DB만 지웠다가 생성하였으며, Table은 지우지 않았습니다.(강의에서는 DB를 지워도 Table이 지워지진 않았지만저의 경우 DB를 지우면서 Table도 같이 지워진 것은 아닐까 추측해봅니다.)react-nodebird DB를 재생성한 다음,use react-nodebird로 해당 DB를 선택한 후show tables 명령어로 table을 확인하였으나 생성되지 않았습니다.그래서 table 생성에 대한 질문 글을 올렸고,이에 제로초님 께서는 아래와 같이 table을 생성하는 방법을 제시해주셨습니다.1. back/app.js 에서 sequelize의 force: true 소스 코드를 추가하기2. 백엔드 서버 재시작 후 바로 sudo npx pm2 monit 하기그러나 1번, 2번 방법을 실행했음에도 여전히react-nodebird 테이블은 생성되지 않았습니다.MySQL에 접속하여 react-nodebird DB의 show tables을 확인했을 때는table이 비어있었습니다. (Empty set (0.00 sec))위와 같은 방법으로도 table이 생성되지 않는다면어떤 방법을 사용해야 하는지 질문 드린 것입니다!
- 0
- 4
- 707
질문&답변
백엔드 MySQL에서 Drop Database 후 DB 생성 시 table이 생성되지 않습니다!
제로초님의 답변지금 app.js 소스 코드에 force: true 되어있는 게 맞나요?sequelize.sync({ force: true }) 되어있어야 테이블을 생성합니다.생성 후에는 force: false로 바꿔주어야 테이블이 리셋되지 않습니다.답변 감사합니다!노드버드 섹션6 강의까지는 sequelize.sync({ force: true }) 코드가 없었으나제로초님의 방안을 통해 force를 true로 설정하고, 추가로 alter도 true로 설정하였습니다.sudo git pull 작업은 꼭 진행하였습니다.이럼에도 table이 안 생겨서 다시 sudo npx pm2 kill 후sudo npm start → sudo npx pm2 reload all 하고,react-nodebird DB를 Drop 한 후 Create 해보아도 table이 안 생깁니다...비슷한 문제가 생기신 다른 수강생 분은 back/config/config.js의 database 부분을'react-nodebird' 로 바꾸니 해결이 되셨습니다.그러나 저의 경우 원래부터 database: 'react-nodebird' 로 되어있었습니다.강의 진행에서 한 번도 나지 않던 문제라 당황스럽습니다...혹시 table을 생성하는 다른 방법을 사용하는 것이 좋을까요?긴 글 읽어주셔서 감사합니다...참고한 제로초님의 노드버드 ch7 깃허브 링크여기는 sequelize.sync({ force: true }) 코드가 없습니다.https://github.com/ZeroCho/react-nodebird/blob/master/ch7/back/app.js참고한 force: true 관련 글위 글을 참고하여 force true을 설정하였습니다.table 생성을 성공한다면 false로 바꿀 예정입니다.https://noonestaysthesame.tistory.com/entry/Nodejs-Sequelize// 서버 실행 시 데이터베이스 시퀄라이즈 연결(수정 전) db.sequelize.sync() .then(() => { console.log('db 연결 성공'); }) .catch(console.error); // 서버 실행 시 데이터베이스 시퀄라이즈 연결(수정 후) /* force: true는 테이블이 존재하지 않을 경우 테이블을 생성, 존재할 경우 테이블을 삭제하기 */ db.sequelize.sync({ force: true }) .then(() => { console.log('db 연결 성공'); }) .catch(console.error);++++(사진)서버 배포 후 MySQL 워크벤치에 접속 되지 않습니다. 원래 그런 건가요?MySQL 윈도우 서비스를 실행한 상태든 중지한 상태든root localhost:3306 커넥션 클릭 시 Schemas 부분에 No connection established 이 뜹니다.혹시 본문 문제와 연관이 있을까 추가로 작성해봅니다!
- 0
- 4
- 707
질문&답변
Amazon S3에서 파일 업로드 시 "Unzipped size must be smaller than 262144000 bytes" 에러가 발생합니다!
답글 남겨주셔서 감사합니다!ls -al로 용량을 확인하니 aws-upload.zip, awscliv2.zip두 zip의 용량이 비정상적으로 큰 걸 확인하였습니다!두 ZIP 용량이 너무 커서 Amazon S3에서 파일 업로드 시"Unzipped size must be smaller than 262144000 bytes" 문제가 발생하는 것 같습니다!본문 문제를 해결하기 위해 아래 2번 방법을 사용하였으나 해결되지 않았습니다!명령어도 본 강의와 똑같이 진행하였으며, 설치한 라이브러리도 많지 않습니다..혹시 두 zip의 용량을 줄이는 방법을 아신다면 공유 부탁 드립니다!현재 람다 폴더 내 파일 상태(사진)1. Amazon S3에서 파일 업로드 시 "Unzipped size must be smaller than 262144000 bytes"문제가 처음 발생한 상태에서 ls -al로 용량 확인 (아직 아래 2번 방법을 사용하지 않았습니다.)(사진)2. Amazon S3 버킷 react-nodebird-darang에 있던 기존 aws-upload.zip를 삭제하고백엔드 우분투 람다 경로에서 두 zip 파일을 확실히 지운 후 다시 압축을 진행하였습니다.sudo rm -rf aws-upload.zipsudo rm -rf awscliv2.zip(사진)aws s3 cp "aws-upload.zip" s3://react-nodebird-darang위 명령어로 다시 s3로 zip 파일을 보냈고, aws-upload.zip 이s3에 제대로 업로드 되었음을 확인하였습니다.혹시 몰라서 image-resize 함수도 삭제했다가 다시 만들었습니다!
- 0
- 2
- 625
질문&답변
가비아 도메인 연결 후 프론트 주소 페이지가 응답하지 않습니다! "MyDocument.getInitialProps()" should resolve to an object. But found "undefined" instead.
주말임에도 답변해주셔서 감사합니다.로컬 프론트에서 npm run build를 할 때 빌드 자체에서 문제가 발생하지는 않았습니다..next 안에 server나 static같은 모듈들도 빠짐없이 깃커밋 하라는 말씀은git commit push를 통해 .next 모듈 전체를 깃푸시로 올리라는 말씀이실까요?.next 모듈 문제가 확실하다면 파일을 조금씩 나눠서 깃허브에 올리는 방법을 쓸 수 있습니다.다만 이는 실현하기 어렵습니다.. .gitignore 파일에서 .next를 제외할 순 있으나sudo git pull 후 빌드를 할 때마다 모듈 안에 든 값이 변경되기 때문에우분투 프론트 쪽에서 추가 문제가 발생할 가능성이 높습니다!로컬 프론트의 .next 모듈은 정상적으로 존재합니다.AWS 메모리가 모자라서 우분투 프론트에서 sudo git pull을 해도.next 모듈 전부를 우분투가 정상적으로 받아들이지 못한 것이라면프론트 주소 페이지가 응답하지 않는 문제를 해결하기 위해제로초님 말씀처럼 AWS 유료 서버를 구입하여우분투 프론트 서버에서 빌드하는 것이 최선인지 궁금합니다.다른 메모리 문제 질문 글에서는 로컬 프론트에서 빌드를 해도괜찮다는 답변 글을 많이 보아서 다시 질문 드립니다!
- 0
- 2
- 625
질문&답변
크롬에서 프론트 서버 구동 시 프론트 IP 주소 페이지 응답이 안됩니다!
Git LFS를 처음 다루어 미숙함에 질문을 계속 드려 죄송합니다..로컬 프론트에서만 Git Lfs 작업을 하고, 우분투 프론트에서는 진행하지 않았습니다! .next를 git lfs로 관리하도록 하는 .gitattributes 를 깃허브에 올렸습니다!이 점을 수정하여 다시 Git LFS 작업 후 우분투 프론트 서버에서 sudo git pull을 하였습니다.그러나 우분투 프론트 경로에서 ls -a .next로 보면 여전히 prerender-manifest.json 모듈이 없습니다!어떻게 하면 우분투 프론트 경로에 .next의 prerender-manifest.json 모듈을 넣을 수 있을까요?git lfs를 설치할 때 아래 사이트를 참고하였습니다.https://miiingo.tistory.com/333우분투 프론트에서 Git LFS 설치sudo apt-get install gitsudo git lfssudo apt-get install curlcurl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bashsudo apt-get install git-lfs로컬 프론트에 Git LFS.next 폴더는 build를 할 때 생기기에 .next가 있는 로컬 프론트 서버에서 진행하였습니다.1. git lfs install Git Lfs // Git Lfs를 해당 레포지토리에서 사용하겠다고 선언하였습니다.2. git lfs track ".next" // GIT-LFS로 .next를 LFS로 관리하도록 지정하였습니다.3. 트랙을 완료하여 로컬 front 서버에 아래의 .gitattributes 파일이 생성되었습니다..gitattributes# .next를 Git LFS로 관리되는 파일 정보에 저장하기 .next filter=lfs diff=lfs merge=lfs -text4. .gitattributes 파일을 깃허브에 commit push 하였습니다.긴 답글 읽어주시고 답변해주셔서 감사합니다!
- 0
- 3
- 627
질문&답변
크롬에서 프론트 서버 구동 시 프론트 IP 주소 페이지 응답이 안됩니다!
자세한 답변 감사합니다 제로초님! 말씀하신 것처럼우분투 프론트, 우분투 백엔드 모두 sudo를 붙여 다시 진행하였습니다!pm2가 되살아나는 걸 방지하기 위해 우분투 프론트, 우분투 백엔드 모두 sudo npx pm2 kill 을 하였습니다. 우분투 프론트 서버에 sudo npx pm2 start npm -- start 후sudo npx pm2 list 했을 때 status가 online으로 잘 뜹니다.(사진)문제는 sudo npx pm2 monit 를 했을 때 MODULE_NOT_FOUND 에러가 발생합니다.(사진)ctri+c로 sudo npx pm2 monit 을 멈춘 다음 sudo npx pm2 logs --err --lines 100 로에러 메시지를 정확히 확인해보니 prerender-manifest.json 모듈이 없어서 에러가 발생한 겁니다.문제를 해결하기 위해 Cannot find prerender manifest.json 키워드로 검색하던 중.next폴더 안에 의 prerender manifest json 모듈이 없는 것이 원인이라 생각하여로컬 프론트에서 node_modules, .next, package-lock.json 을 지우고다시 npm i와 npm run build 를 하여 삭제한 세 파일이 다시 재생성 되었음을 확인하고 아래 작업을 진행하였습니다.다시 우분투 프론트 서버에서 sudo로 아래 명령어를 다시 순서대로 입력하였습니다.+ 우분투 프론트, 우분투 백엔드 모두 sudo를 사용해 user가 root인 상태로 진행하였습니다.+ 우분투 백엔드 IP 서버가 정상적으로 실행되고 있음을 확인 후 진행하였습니다.우분투 프론트 서버sudo git pullsudo npm inpm run build (빌드만 로컬 프론트에서 진행, 정상적으로 실행됨을 확인하였습니다.)sudo npx pm2 start npm -- startsudo npx pm2 reload allsudo npx pm2 listsudo npx pm2 monit그러나 next를 prerender-manifest.json 모듈이 없다는 문제는 해결되지 않았습니다.계속 질문 글이 길어져서 죄송합니다 제로초님.어떻게 하면 우분투 프론트 IP 서버를 정상적으로 실행할 수 있을까요?
- 0
- 3
- 627
질문&답변
백엔드 root 서버에서 npx sequelize db:create을 하면 command not found: sequelize이 뜹니다.
비밀번호를 모두 통일하여 문제를 해결하였습니다!(사진)
- 0
- 2
- 345
질문&답변
백엔드 npm run dev 시 'nodemon은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.' 에러가 발생합니다!
npm i nodemon -D 로 다시 설치했습니다!제로초님 노드버드 ch5을 보고 버전에 맞게 모듈을 설치하였습니다!(axios 모듈도 추가했습니다.)다시 npm run dev를 했을 때 엑세스 거부 오류(AccessDeniedError)'사용자 'root'@'localhost'(암호 사용: NO)에 대한 액세스가 거부되었습니다.' 에러가 발생합니다!(아래는 터미널에 나타난 에러 전체 사진입니다.)(사진)에러를 번역하였습니다.(사진)+ git push 오류로 작업 파일을 삭제 후 git clone 후 작업할 때 질문의 문제가 시작되었습니다.back 패키지 json에 모듈이 분명히 설치되어 있음에도 모듈이 없다는 오류가 뜨는 경우는 처음 봅니다!답변 감사합니다 제로초님!!
- 0
- 2
- 349