-
Notifications
You must be signed in to change notification settings - Fork 4
NCloud CI CD 구축
프론트엔드는 React를 사용하고 있고 백엔드는 Nest.js를 사용하고 있습니다.
React에서 정적 파일을 빌드하면 해당 정적 파일을 NCloud Object Storage에 업로드하고 NCloud Object Storage 정적 웹 사이트 호스팅을 통해 배포를 했습니다. http://octodocs.s3-website.kr.object.ncloudstorage.com/
Nest의 경우 NCloud Server에 배포를 하였고 데이터베이스인 postgres도 NCloud Server에 배포하였습니다.
github actions를 사용했습니다.
- main 브랜치에 push가 발생하면 리액트를 빌드합니다.
- dist 디렉토리 내부에 빌드된 정적 파일들이 생성되고 이 dist 디렉토리 내부 모든 파일들을 함께 NCloud Object Storage에 업로드 합니다.
NCloud Object Storage CLI는 aws-cli와 호환이 됩니다.
다만 github action으로 aws-cli를 사용하여 NCloud Object Storage에 접근할 때 다음과 같은 부분을 주의해야 합니다.
- endpoint-url이 필요합니다.
- region 설정을 해야 합니다.
# aws cli를 통해 ncloud object storage 업로드
- name: Configure AWS credentials
env:
NCLOUD_ACCESS_KEY_ID: ${{ secrets.NCLOUD_ACCESS_KEY_ID }}
NCLOUD_SECRET_ACCESS_KEY: ${{ secrets.NCLOUD_SECRET_ACCESS_KEY }}
run: |
aws configure set aws_access_key_id $NCLOUD_ACCESS_KEY_ID
aws configure set aws_secret_access_key $NCLOUD_SECRET_ACCESS_KEY
aws configure set region ap-northeast-2
aws --endpoint-url=https://kr.object.ncloudstorage.com s3 cp ./frontend/dist s3://octodocs/ --recursive --debug
- main 브랜치에 push가 발생하면 배포 쉘 스크립트 파일을 NCloud Server로 전송한 뒤 실행합니다.
- github에서 최신 변경 사항을 pull 해옵니다.
- nest를 실행합니다.
- 프론트 코드만 push 되더라도 백엔드 서버도 다시 배포됩니다.
⚓️ 사용자 피드백과 버그 기록
👷🏻 기술적 도전
📖 위키와 학습정리
✏️ 에디터
Novel이란?
Novel 스타일링 문제
에디터 저장 및 고려 사항들
📠 실시간 협업, 통신
Yorkie와 Novel editor 연동
YJS, Websocket, React-Flow
YJS, Socket.io
WebSocket과 Socket.io에 대해 간단히 알아보기
YJS 가이드 근데 이제 Socket.io를 곁들인
🏗️ 인프라와 CI/CD
NCloud CI CD 구축
BE 개발 스택과 기술적 고민
private key로 원격 서버 접근
nCloud 서버, VPC 만들고 설정
monorepo로 변경
⌛ 캐시, 최적화
rabbit mq 사용법
🔑 인증, 인가, 보안
passport로 oAuth 로그인 회원가입 구현
FE 로그인 기능 구현
JWT로 인증 인가 구현
JWT 쿠키로 사용하기
refresh token 보완하기
🧸 팀원 소개
⛺️ 그라운드 룰
🍞 커밋 컨벤션
🧈 이슈, PR 컨벤션
🥞 브랜치 전략
🌤️ 데일리 스크럼
📑 회의록
1️⃣ 1주차
킥오프(10/25)
2일차(10/29)
3일차(10/30)
4일차(10/31)
2️⃣ 2주차
8일차(11/04)
9일차(11/05)
11일차(11/07)
13일차(11/09)
3️⃣ 3주차
3주차 주간계획(11/11)
16일차(11/12)
18일차(11/14)
4️⃣ 4주차
4주차 주간계획(11/18)
23일차(11/19)
24일차(11/20)
25일차(11/21)
5️⃣ 5주차
5주차 주간계획(11/25)
29일차(11/25)
32일차(11/28)
34일차(11/30)
6️⃣ 6주차
6주차 주간계획(12/2)
37일차(12/3)