일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 채팅방
- 개발
- 라우팅
- socket.io
- 동기
- 스파르타코딩클럽
- rendering
- 배포
- 7기
- routing
- imagePreview
- Redux
- route
- useEffect
- Github Actions
- previousState
- CI/CD
- 후기
- FileReader
- S3
- 브라우저 렌더링
- 비동기
- setstate
- qwe
- 접근 제한 라우팅
- 미리보기
- 항해99
- react
- updater
- Preview
- Today
- Total
삐옹
CI / CD는 왜 하는걸까 본문
뒤도 안돌아보고 프로젝트를 진행한지 어언 3주차..
시간에 비해 한건 많이 없는 것 같지만
이쯤되니 생각났다.
언제까지 http:localhost:3000을 보고만 있어야할까.
야레야레..
나 말야.. 이런거 지긋지긋 하.다.고 .
당연한 말이지만 localhost에서만 작동하는 서비스는 서비스로서 전혀 의미가 없다.
솔직히 배포하면 CI / CD 를 또 하라는데 난 그게 뭐고 왜 해야하는지도 잘 모른다.
알아보는 김에 S3로 배포하는 이유도 정확히 알아볼까한다.
정말 가벼운 마음으로
S3, CI/CD, CI/CD를 도와주는 툴들, Github actions
에 관해 정리해본다!
S3
Simple Static Storage. 웹사이트를 배포할 경우 기반이 되는 HTML파일- 거의 예외없이 index.html 파일 - 같은 정적 리소스를 올리면 배포해주는 아마존의 간편 배포 서비스. 누군가 ec2는? 왜 굳이 s3를 쓰는데? 라고 묻는다면 프론트앤드의 정적리소스를 배포 하는 경우엔 s3정도면 충분하기 때문이라고 대답해주면 된다. ec2는 작은컴퓨터라고 생각하면 되는데 s3와 비교하면 당연히 heavy하다. s3는 웹 상에 존재하는 작은 하드공간이라 같은 것이다.
CI
Continuous Integration. 지속적인 통합. 내가 짠 코드를 자동으로 머지하고 테스트해주면서 개발자의 수고를 덜어주는 개발환경이다.
CODE => BUILD => TEST
CD
Continuous Delivery / Deployment. 지속적인 배포. 내가 짠 코드가 배포를 위한 준비 되었는지 확인하고 실제 배포를 시킨다. Continuous delivery와 Continuous deployment는 조금 다르다. 전자는 배포를 위한 준비가 된 후 수동적으로 배포를 시키는 것 이고, 후자는 준비하고 자동으로 배포까지 완료시켜버린다. 회사별로 상황에 따라 다른 선택지를 쓰는데 자신있음 후자를 쓴다고 한다.
Prepare release ==== (stop) ==== > Deploy release
CI/ CD를 도와주는 툴들
Jenkins, Github actions, Buildkite, BigBucket pipelines, Gitlab CI/CD 등 많은 툴들이 있는데 요즘은 Github actions로 쉽게 CI/CD 개발환경을 구축 할 수 있다.
GitHub Actions
GitHub Actions는 GitHub에 내장된 CI/CD로, 레포에 특정 이벤트 - push, PR 등 - 가 발생했을 때 정의된 작업을 수행한다. 올라온 PR의 코드 상태를 체크하거나, 테스트를 수행하고 커버리지를 기록한다던가 하는 일반적인 작업들을 아주 쉽게 설정하여 사용할 수 있다.