Wecode - Project 1 (부트캠프)/Project 1 과정

Project1: 5일차 아침: 통신 전, 마지막날 코드 수정 (self 코드 리뷰)

JBS 12 2023. 9. 15. 21:27

코드를 완벽히 하기 위해. 

셀프로 코드리뷰를 해보았다. 

 

 

그리고 실수로 누르는 바람에 

덕분에 또 알게 된 사실 

timeline별로 수정 사항을 비교분석 가능

 

 

1. portNumber를 정의하기 전에 require("dotenv").config()를 호출해야 

환경 변수를 로드한 후에 포트 번호를 설정해야 

chatgpt openAI의 도움을 받은 것

1-2. portNumber와 같은 환경 변수를 .env 파일에 저장하고 Node.js에서 사용

1 )require('dotenv').config()를 사용하여 .env 파일을 로드

2) .env 파일에 PORT 환경 변수를 추가

PORT=3000

 PORT 변수에 3000이라는 값을 할당한 것

3) Node.js 애플리케이션의 코드(app.js)에서 .env 파일을 로드하고 PORT 환경 변수를 읽는다.

 

// dotenv 패키지를 로드하여 .env 파일을 읽습니다.
require('dotenv').config();

// PORT 환경 변수를 읽습니다.
const portNumber = process.env.PORT || 3000;

// 서버를 시작할 때 포트 번호로 사용합니다.
app.listen(portNumber, () => { console.log(`Server is listening on port ${portNumber}`); });

자꾸 나오는 process 에 대해 물어봄. 어디에서 나온 건지.


2. 

server.listen 함수를 호출하기 전에 start() 함수를 실행해야 하기에

server.listen앞에 await를 붙여주고, 

--> await server.listen()를 사용하여 서버가 시작될 때까지 기다리도록 수정

 

그 함수안에 

콜백함수를 빼고, 괄호 닫아줬다. 

 

3. jwt token의 signature 와 portnumber는 

깃허브 공용공간에 올라가기에 

깃허브에 안 올라가는 .env에 값을 넣고

app.js와 .env.sample에는 변수처리 

"openAI"에서 벤치마킹.

JSON Web Tokens (JWTs)를 생성할 때 사용하는 signatureKey 또는 secret 키를 안전하게 보관하려면
.env 파일에 저장하는 것이 좋다.
이렇게 하면 개인 정보나 민감한 정보를 소스 코드에 하드 코딩하지 않고 환경 변수로 관리할 수 있습니다.
보안상의 이유로 중요한 키를 저장할 때는 .env 파일을 사용하고,그 파일은 버전 관리 시스템 (예: Git)에서 제외시켜야 합니다.
--> .gitignore 
여기에 .env 파일에 저장할 수 있는 예제 환경 변수 목록

JWT_SECRET=mysecretkey
DATABASE_URL=your-database-connection-url
API_KEY=your-api-key

JWT_SECRET: JWT를 서명하기 위한 비밀 키입니다. 이 키는 토큰을 생성할 때 사용되며, 토큰의 유효성을 검증할 때도 필요합니다. 이 값을 .env 파일에 저장하고 서버에서 환경 변수로 읽어 사용할 수 있습니다.

DATABASE_URL: 데이터베이스 연결 문자열입니다. 데이터베이스와 연결할 때 사용됩니다.

API_KEY: 외부 API와 통신할 때 사용하는 API 키입니다.

.env 파일에 있는 환경 변수를 Node.js 애플리케이션에서 읽어오려면 dotenv 패키지를 사용 (
1) npm install dotenv 설치
2) require('dotenv').config();
const jwtSecret = process.env.JWT_SECRET;
const databaseUrl = process.env.DATABASE_URL;
const apiKey = process.env.API_KEY;
// 이제 jwtSecret, databaseUrl 및 apiKey를 사용하여 JWT를 생성하거나 다른 환경 변수를 사용할 수 있다 

그러므로 .env 파일을 보면 실제값이라 가렸고 

 

.env.sample은 이렇게 

 

 

app.js 완성본 

 

userService 완성본


초기세팅을 pull 받기 위해

새로운 branch 생성을 하려고 하니, commit을 우선 하라고 해서 일단 지금 있는 branch 상태에서

코드 리뷰를 모두 다 한 뒤, 맞는 코드를 올린 뒤 

 

자 이제 내가 해야 하는 거

A. 

1. post service branch  생성 후 (다 copy) 

 

2. user service branch checkout 해서 post 삭제 후 나오기 

https://pm-developer-justdoit.tistory.com/88

 

Project1- 1. 초기세팅 PR 후 commit (2)

branch 가 push 하기 전까진, remote 깃허브에 안 나오고, 그렇다면, branch가 로컬에만 있고, 로컬에 있는 branch를 확인하기 위한 방법: ls -al 왜냐, 폴더, 파일은 안 나오지 않게 때문에 db에 필수 , 선택

pm-developer-justdoit.tistory.com

 

B. merge 한  초기화세팅 

pull 한 뒤, 수정 후 다시 Push 

 

말은 간단한데 골치아프다

자세한 프로세스를 몰라서.. ㅎㅎ 

 

차근차근


아, 그런데 내가 migration file 수정을 안 해서, 

다시 수정하고, 

다시 commit push까지 했다. 

 

 

이제 다시 A. 

이번에는 main으로 가서 잘 출발했다. 

 

만약 user service branch 안에서 또 branch 생성했으면 꼬이는 것이다. 

 

그리고 main에서 post service branch 생성 후 

또 다시 가줘야하지 post 안으로 

 

 

가 아니였다....

main 은 내용 없고 저 user service branch 안에서 복사 (생성 해야했다) 

 

 

 


branch 삭제 과정 


실수로 main에서 만든 branch, main에서 삭제 

user branch로 가서 (checkout), post branch 생성

post branch로 가서(checkout) ,git add, commit, push


짜잔. 


이제 user branch 에서 post 삭제하자

 

 

여기 보이는 10k 가 내가 이렇게 많은 변화를 했다는 거고, 

1개가 추가 된 게 아니면 다시 commit 하지 않아도 된다. 

 


 

 

원래 정식으로는, 

Main 

  1. User 안에 원래는 이렇게 해야 하는데, 내가 user branch 에서 user 작업 후에 commit을 한 후에, post 작업ㅇ르 하면 그나마 체리픽으로 commit 기준으로 user branch 안에 들어간 user, post 서비스를 나눌 수 있다. 그런데  

지금 내 상 

User dk

User 안에 post 내용이 있는데, 새로 post branch를 파는데 
main에서 post branch 파고나서 git add.  하면 아무것도 없죠 —> main에는 아무 내용 없으니. user 내용 모르니까