분류 전체보기
-
환경설정Project using node.js/Cloning Catch-Mind 2020. 12. 12. 10:40
.gitignore .gitignore을 생성하고 gitignore nodejs의 코드를 복사 붙여넣기 clownhacker.tistory.com/29?category=937585 gitignore 코드를 작성하고 github에 소스 코드를 올릴 때 원하지 않는 코드들이 있을 수가 있습니다. 그 중 대표적인 것이 node_modules 폴더입니다. npm 패키지를 설치할 때마다 node_modules에 파일들이 추가가 됩 clownhacker.tistory.com npm 모듈 설치 npm 세팅 : clownhacker.tistory.com/27?category=937585 npm 설치 및 세팅 node.js 자체에도 내장된 모듈들이 있지만 이것만으로는 프로젝트를 진행하기가 어렵습니다. SW 세계에는 정말..
-
Deploy on herokuProject using node.js/Cloning Youtube 2020. 9. 9. 10:19
마지막 단계다. web application도 완성했고 build과정도 끝났다. 이제는 cloud server에 deploy 시켜서 모든 사람이 쓸 수 있게 하면 된다. 나는 간편하고 쉬운 heroku를 사용할 것이다. package.json "start"에서 PRODUCTION=true를 추가해준다. 이렇게 되면 heroku로 deploy이 하는 과정에서 .env파일에 추가히지 않았더라도 process.env.PRODUCTION이 true가 된다. db.js Deploy on heroku를 할 때 만 PRODUCTION=true가 된다. 그 때만 MONGO_ATLAS_URL을 사용하고 개발 과정에서는 local MongoUrl을 사용한다. SocialLogin server를 cloud server에 d..
-
Building the appProject using node.js/Cloning Youtube 2020. 9. 9. 08:48
이제 app을 build 하기 위해서 모든 파일을 src 폴더에 옮겼다. 어떤 파일을 src에 들어가고 어떤 파일은 src 외부에 있는지 확인하기 위해서는 나의 github commit source code를 확인하라. package.json 개발 과정에서 사용하는 명령어인 dev:server & dev:assets와 build 과정에서 사용하는 명령어인 build:assets와 build:server를 나눴다. build를 하는 명령어는 npm start다. npm start를 하게 되면 그전에 prestart가 실행된다. prestart가 실행이 되면 build 명령어가 실행된다. build 명령어가 실행이 되면 build:server, build:assets와 copyAll이 실행 된다. build..
-
MongoDB AtlasProject using node.js/Cloning Youtube 2020. 9. 8. 11:54
소개 DB는 서버와 같이 그리고 local에 존재하면 안 된다. 보안상의 이유로 최대한 둘이 분리 시켜야 한다. 나는 사용자 정보를 MongoDB Atlas에 저장할 것이다. MongoDB Atlas MongoDB에서 지원하는 remote repositories다. 0.5GB가 무료다. 로그인을 하면 다음과 같은 화면이 된다. 나는 예전에 만들어 놓은 project가 있기 때문에 다음과 같은 화면이 된다. 왼쪽 상단의 홈 버튼을 누른다. New Project로 project를 생성한다. project 이름을 짓고 Next 나는 혼자서 만들었기 때문에 멤버를 추가하지 않고 Create Project Build a Cluster를 클릭. aws-s3의 bucket 같은 것이다. Organization과 Pr..
-
Delete the avatars on s3Project using node.js/Cloning Youtube 2020. 9. 8. 10:31
이제 파일이 local이 아니라 aws-s3에 저장이 된다. 하지만 내가 profile avatar를 바꿔도 aws-s3에서 삭제되지 않는다. 이렇게 되면 불필요한 avatar가 s3에 쌓이게 되어 용량을 차지하고 보안적인 측면에서도 좋지 않다. 그래서 user가 자신의 profile avatar를 편집하면 s3에서도 삭제하게끔 할 것이다. middlewares.js 외부 module에서 사용할 수 있도록 s3를 export 해준다. userController.js에서 s3를 사용할 것이다. userController.js 빨간색 박스가 기존에 있었던 postEditProfile에 추가된 코드다. 이 코드는 aws-s3에 있는 avatar를 삭제하는 기능을 한다. s3.deleteObject()에는 삭제..
-
Delete the video on s3Project using node.js/Cloning Youtube 2020. 9. 8. 10:19
이제 파일이 local이 아니라 aws-s3에 저장이 된다. 하지만 내가 video를 삭제해도 aws-s3에서는 삭제되지 않고 local DB에서만 삭제가 된다. 이렇게 되면 불필요한 video가 s3에 쌓이게 되어 용량을 차지하고 보안적인 측면에서도 좋지 않다. 그래서 user가 video를 삭제하면 s3에서도 삭제하게끔 할 것이다. middlewares.js 외부 module에서 사용할 수 있도록 s3를 export 해준다. videoController.js에서 s3를 사용할 것이다. videoController.js 빨간색 박스가 기존에 있었던 deleteVideo에 추가된 코드다. 이 코드는 aws-s3에 있는 video를 삭제하는 기능을 한다. s3.deleteObject()에는 삭제할 vide..
-
Multer - s3Project using node.js/Cloning Youtube 2020. 9. 7. 10:33
AWS 세팅은 끝났다. 이제는 multer를 multerS3로 바꿔서 user가 파일을 업로드 할 때 aws로 업로드될 수 있도록 수정하면 된다. 설치 #npm install aws-sdk multer-s3 middlewares.js new aws.S3()에 IAM을 통해서 얻은 AWS key 값들을 넣고 s3 를 생성한다. multerS3는 s3가 필요하다. userController.js profile을 edit할 때 avatar를 전송받는다. 이 때, multer는 file.path로 받았다. 하지만 multer-s3는 file.location으로 받는다. 그러므로 다른 controller에서도 file.path를 모두 file.location으로 바꿔야 한다. videoDetail.pug vide..
-
AWS - S3 & IAMProject using node.js/Cloning Youtube 2020. 9. 7. 09:39
소개 S3는 AWS의 파일을 업로드할 수 있는 시스템이다. 구글 클라우드 같은 것이라고 생각하면 된다. 우리는 여태까지 video와 avatar를 local에 저장하고 그에 대한 url을 mongoDB에 저장했다. 이제는 이러한 파일들을 local이 아닌 외부 storage인 AWS-S3에 저장할 것이다. 먼저 AWS 홈페이지를 방문해서 가입을 하자. AWS-S3 상단에 있는 navigation에서 서비스->S3를 클릭한다. 나는 예전에 미리 생성해 둔 bucket이 2개가 있다. 우리가 할 것은 +버킷 만들기다. 새로운 bucket을 생성하자. 여기서 bucket이란 파일을 업로드할 공간을 뜻한다. 우리는 새로 생성한 bucket에 video와 avatar를 저장할 것이다. 버킷 이름(이름은 하고 싶은..