내일배움캠프 스파르타 코딩클럽
시작하기에 앞서 배포에 대해 잠시 얘기하고 넘어갈까 한다.
배포를 하려고 ubuntu 에 git clone 하고
.env 에도 기존 코드를 다시 되살려주고 했는데
잘 동작하던 코드들이 왜안될까?
첫번째 문제
오랜만에 접근하였더니 보안그룹에 들어가 인바운드 규칙 포트를 편집해줘야 한다는걸 까먹었다.
두번째 문제
우리는 로컬에서 myspl에 prisma schema 를 push 하기 위해
npx prisma db push 라는 명령어를 사용했다는 것을 알것이다.'
그렇게 하면 자동적으로 yarn prisma generate 가 실행되는데
허나 ubuntu 에서는 그작업을 하지 않았다.
그리하여 yarn prisma generate 로 prisma 를 수동적으로 입력해주니
아래와 같이 설치되며 모든 코드들도 정상 작동을 하였다.
이렇게 해결을 하고 이성일 튜터님 의 더욱 상세한 멘토링은 아래와 같았다.
EC2 배포 시 Prisma가 DATABASE_URL을 못 찾는다는 에러가 나온다면 아래 명령을 실행해 주세요.
yarn prisma generate 또는 npx prisma generate
- Prisma는 Schema를 정의하면 맞춤으로 사용할 수 있는 코드를 생성해 줍니다. (ex: prisma.users.create, prisma.users.findFirst)
- 이 코드를 생성해 주는 명령이 바로 위의 명령어인데, 로컬에서 개발할 때에는 prisma db push 라는 명령을 실행 할 때 자동으로 generate가 실행되어서 아무 문제 없이 실행이 됐을겁니다.
- 해당 코드가 node_modules 안에 생성 되기에, Git으로 관리되지 않습니다. 그래서 배포할 때 clone을 받으면 해당 코드가 포함되어 있지 않아, 위의 명령을 통해서 직접 생성해줘야 합니다.
자 이제 과제를 시작해 보도록 하겠다.
< README.md >
# history
1. npm install -g yarn
2. yarn init -y
3. yarn add -D nodemon
4. yarn add -D prettier
5. npm install -g node-pre-gyp // bcrypt 설치 전 필요
6. yarn add express prisma @prisma/client cookie-parser jsonwebtoken joi dotenv bcrypt winston
7. git init
8. git remote add origin git@github.com:hwangmindo/MDSTART-SHOP-RESUME.git
9. git branch -M main
10. git add -A
11. git commit -m"
12. git push -u origin main
# 목표
3. MySQL, Prisma 데이터베이스
4. JWT, MIddleware 인증 인가 (검증)
jwt.sign({ userId: user.userId, }, "customized_secret_key")
jwt.verify(token, 'customized_secret_key')
5. bcrypt password 보안성 (hash, compare)
6. Bearer 토큰 형식 활용
res.cookie("authorization", `Bearer ${token}`)
7. aws ec2 배포
# Develop
개발 1
1. 디렉터리 가이드 라인 생성
개발 2
1. DB연결 npx prisma init (prisma를 활용해 myspl db에 연결)
2. schema.prisma 작성후 npx prisma db push
개발 3
1. 회원가입 api < users.router.js >
2. 로그인 api < users.router.js >
개발 4
1. 사용자 인증 < auth.middleware.js >
2. 내 정보 조회 api < users.router.js >
개발 5
1. 이력서 생성 api < resumes.router.js >
2. 이력서 목록 조회 api < resumes.router.js >
3. 이력서 상세 조회 api < resumes.router.js >
4. 이력서 수정 api < resumes.router.js >
5. 이력서 삭제 api < resumes.router.js >
# 관계
1. 1:N Users / resumes
< API 명세서 >
< ERD DIAGRAM >
시작은 이쯤 해두고 다음 TIL은 코드를 시작해 보겠다.
'TIL' 카테고리의 다른 글
Nodejs 숙련 이력서 개인과제 완료(3) (1) | 2024.06.03 |
---|---|
Nodejs 숙련 이력서 개인과제 완료(2) (0) | 2024.05.31 |
Nodejs 강의 숙련 게시판 프로젝트(8) 게시글 생성,조회 / 댓글 생성,조회 (0) | 2024.05.28 |
Nodejs 강의 숙련 게시판 프로젝트(7) winston, 에러핸들링 미들웨어 (0) | 2024.05.27 |
Nodejs 강의 숙련 게시판 프로젝트(6) 엑세스, 리프레시 토큰발급 / 엑세스 검증 및 재발급 (0) | 2024.05.24 |