🚩 개발 프로세스
- 문제분석 > 설계(figma등) > 구현(화면구현) >
- 워터폴 모델
장점 : 단순, 프로젝트 실행 수월
단점 : 앞단계 안끝나면 다음단계로 넘어갈 수 없음
- 애자일 모델
특징 : 스프린트라 불리는 짧은 주기의 개발사이클을 반복함
장점 : 빠르면서 유연한 개발과정
단점 : 고객이 변경사항을 검토해야함
🚩 DevOps
- IT조직문화
- Dev : 개발팀, 배포랑 업데이트, 리소스제공
- Ops : 인프라관리, 모니터링 및 제어
🚩 CI/CD
- CI : 지속적인 통합, 개발자를 위한 자동화 프로세스 푸시, 머지, 풀을 자주해서 버그를 일찍 찾고 지속적인 배포가 가능
- CD : 지속적인 배포, 깃헙 페이지 배포처럼 코드병합과 빌드제공사이 모든단계
- CI/CD 파이프라인 : 배포과정을 자동화하는 방법
🚩 Github Action
- push만 해도 build랑 s3 버킷에 알아서 업로드됨
# 기존 나만의 아고라 스테이츠 서버 레퍼런스 클론
git clone git@github.com:codestates-seb/fe-sprint-my-agora-states-server-reference.git
# 디렉터리 이동
cd fe-sprint-my-agora-states-server-reference
# 새로운 리포지토리를 원격 리포지토리로 등록
git remote add myRepo git@github.com:{여러분의 아이디}/{새로운 리포지토리 이름}.git
# 기존 레퍼런스 코드를 새로운 리포지토리로 push
git push myRepo reference
- git remote add 새로운리모트주소별명 껍데기레포지토리 주소 (origin을 훼손하지 않기 위해 remote add로 레퍼지토리를 만들어서 거는것)
- git remote -v로 리모트주소들이 나옴
- settings > Actions로 이동하여 활성화되었는지 확인함
name: client
on:
push:
branches:
- reference
jobs:
build:
runs-on: ubuntu-20.04
steps:
- name: Checkout source code.
uses: actions/checkout@v2
- name: Install dependencies
run: npm install
working-directory: ./my-agora-states-client
- name: Build
run: npm run build
working-directory: ./my-agora-states-client
- name: SHOW AWS CLI VERSION
run: |
aws --version
- name: Sync Bucket
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_EC2_METADATA_DISABLED: true
run: |
aws s3 sync \
--region ap-northeast-2 \
build s3://fe-26-bammuriosu-s3 \
--delete
working-directory: ./my-agora-states-client
- yaml은 자동화 프로세스 생성하는데 자주 사용됨
- branch 깃허브 브랜치 설정해주고
- 버전지정해주고
- push했을때 npm install, npm run build, sync bucket까지
- secret은 깃허브 페이지 시크릿 설정에서 이름(AWS_ACCESS_KEY_ID) 값(비밀값) 입력해주면 저 코드 그대로 사용가능
- aws s3 sync에 build는 aws버킷 페이지 안에서 쓰는 이름, aws 닉네임 아님