일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- react
- TypeScript
- DART
- clonecoding
- 자바스크립트
- graphQL
- express
- heroku
- node.js
- CSS
- 리액트
- pug
- Flutter
- Component
- NextJs
- form
- ES6
- Session
- nodejs
- GRID
- backend
- MongoDB
- javscript
- ECMAScript
- Mongoose
- HTML
- frontend
- CLONE
- JavaScript
- API
- Today
- Total
Enjoy Programming
Product && develop Environment 본문
이제 heroku & mongo atlas & aws를 이용한 배포까지 할 수 있게 되엇다. 물론 이과정을 몇번 더해야 익숙해질듯 하지만
중간중간 고민이 되었던~ production 할때와 development할때 코드 를 매번 어떻게 해야하나에 대해 풀어봐야겠다.
일단 production모드인 heroku에서 작업을 할때는 multer s3를 통해 업로드를 하고
컴퓨터에서 로컬로 테스팅 할때는 컴퓨터 파일 시스템으로 업로드 하도록 한다.
우선 이미지가 업로드될 폴더와 비디오가 업로드될 폴더를 따로 지정해주고~
aws에도 폴더가 생성된게 볼 수 있다~ 로컬에서도 뭐 이렇게 가져오는데
문제는 이게 아니고 로컬에서 작업할때는 내 파일시스템에 파일이 저장되도록 하고싶다는 것이다.
어찌 보면 간단한 문제였다.. 생각을 못해서 그렇지.
바로Node_env가 production인지 아닌지만 확인하고 production이라면 heroku에 배포중인 상태이므로
multer-s3를 사용해 aws를 이용하여 업로드를 하면되는 문제였고~
테스팅시에는 isHeroku가 false이니
저장소를 undefined로해주면 최초에 설정한 dest에 저장이 된다는것!
그리고 두가지를 더 수정해주면 되는데~
한가지는 컨트롤러에서 db를 업데이트 해줄때~ file의 경로를 isHeroku인 상태라면 file.location으로 지정해주면 되고
false 라면 file.path로 해주면 되는 !!! video controller도 마찬가지이다! 이해는 다되었고 머리속에서 각인하고 정리를 제대로 해야겠다.
한가지더 템플릿상에서 경로에 오류가 생기므로 isHeroku를 local로 쓸수 있게
local미들웨어에 isHeroku를 로컬 변수로 지정해주면 템플릿에서도 쓸수 있다~!
그리고 템플릿에서 이렇게 isHeroku로 조건을 달아주고 하면~ local에서 테스트시에도~ heroku로 배포시에도 제대로 불러오는 것을 확인 할 수 있었다.
좋다. 이게 제일 문제였다.
계속 배포로 테스트를 할 수 없으니...
1. github의 oauth앱을 두개를 만들어 하나는 배포용, 하나는 테스팅용으로 id와 key세팅을 해주고
2. NODE_ENV가 production인지 아닌지에 따라 업로드의 위치를 수정해주면 된다~
3. 지금 깃헙으로 배포를 했는데 이건 그냥 heroku git으로 배포하는 걸로 바꿔야겠다. 필자는 git push를 자주 하는편이라
매번 업데이트 되길 원하지 않는다. 물론 automatic deploy를 disconnect하면 되는 문제이지만~!
프로그래밍은 처음부터 너무 쉽게 하면 과정을 까먹게 된다;; 그냥 복잡하게 쓰는것을 익숙해지고 편해지자,...
4. heroku log --tail로 로그 기록도 확인하는 것을 유의
슬슬 3개월의 대장정이 끝나간다 . youtube 클론을 몇개의 라우터 추가하고 템플릿들도 좀 꾸며보고 자바스크립트도 추가해서 포트폴리오 하나 만들고. 리액트로도 하나 더 만들어서 일자리를 구하자.
무엇보다 3개월간 많다면 많고 적다면 적은 공부였지만 열심히 했다.. 아직 모르는거 투성이고 너무 얕은 지식일 수 있지만 열심히 했다.
이제 내 홈페이지 정도는 만들 수 있을 거 같다.
그리고 아직도 여전히 웹프로그래밍은 재미있다. 어려울수록 재미있다. 어렵고 문제투성이가 될 수록 해결하는 재미가 있다.
해결할때 짜증도 안난다.. 잘 맞다.. ㅋㅋ 이 나이에 취직 잘되길.
'JavaScript > Node.JS' 카테고리의 다른 글
Socket IO (0) | 2021.08.08 |
---|---|
좋아요 구현하기 (0) | 2021.07.12 |
Github and aws s3 - 2 (0) | 2021.06.29 |
Github and aws s3 - 1 (0) | 2021.06.29 |
environment variables (0) | 2021.06.29 |