API 배포 후 개발 서버에서 도커 로그 파일 확인 결과 304 undefined 이슈 발생
도커 로그 파일 확인 코드
docker logs -f [컨테이너 ID]
원인
chrome에서 동적 메소드 실행 시 캐시가 저장되기 때문에 발생한 이슈
해결
main.ts 코드 수정
// main.ts
const app = await NestFactory.create<NestExpressApplication>(AppModule);
// 동적 요청에 대한 응답을 보낼 때 etag 생성을 하지 않도록 설정 (모든 캐시 저장 X)
app.set('etag', false);
## base image for Node 10-alpine(light weight)
FROM node:10-alpine
WORKDIR /app
## 프로젝트의 모든 파일을 WORKDIR(/app)로 복사한다
COPY . .
## Nest.js project를 build 한다
RUN yarn install
RUN yarn build
## application 실행
EXPOSE 80
CMD ["yarn", "start:dev"]
💡 start ⇒ typescript로 작성되어있는 서버 실행 💡start:dev ⇒ nodemon을 활용해서 소스코드가 변경될 시 서버를 자동으로 재실행 💡start:prod ⇒ build 명령어를 통해 컴파일되어 생성된 js 파일을 실행
git branch 전략 중 하나로 Vincent Driessen의 브랜칭 모델을 위한 고수준 저장소 작업을 제공하는 git의 확장입니다. Vincent Driessen의 브랜칭 모델에는 5개의 branch(master, develop, feature, release, hotfix)가 사용됩니다.
GIT-FLOW를 선택한 이유
레거시 프로젝트 같은 경우는 Forking Workflow 방식을 사용을 했었는데, 각 개발자들마다 원격 저장소를 만들고 pull request를 보내야 합니다. 기준이 명확하고 관리를 잘한다면 좋은 방식이지만, 몇 년 동안 여러 개발자들이 거쳐가면서 정리되지 않은 엄청난 양의 branch들이 생겼습니다. branch들은 생성한 본인이 관리를 해야 하기 때문에 관리가 어려웠습니다. 그래서 신규 프로젝트들은 모두 git-flow를 적용시켜서 협업을 시작했습니다.
GIT-FLOW의 강점
- 사용이 간편해 쉽게 접근 가능하다. - branch 관리를 더 깔끔하게 할 수 있다. - 버전에 따라 관리가 쉽다. - 배포 및 수정이 간편해 빠르게 배포가 가능하다.