데굴데굴

TIL: 2022-12-07 본문

Lesson/TIL

TIL: 2022-12-07

aemaaeng 2022. 12. 7. 20:55

⚙️ 오늘 배운 주제

CI/CD, 배포 자동화

🐹 오늘의 기분

오늘은 CI/CD와 자동화를 배웠다. 어제 aws s3 실습하면서 사이트에 들어가 일일이 버킷에 파일을 넣어주어야 하는게 귀찮게 느껴졌는데 자동화로 aws cli를 이용해서 처리할 수 있다는 걸 처음 알았다. github Actions도 맨날 돌아가는 것만 봤지 직접 이 내용을 쓸 수 있는 줄 몰랐는데 해보니까 재밌었다. 중간에 깃 커밋이 꼬여서 커밋 올렸던 걸 다 삭제해줘야 했는데 이건 왜 그런건지 더 찾아봐야겠다. 과제보다는 git 자체에게 제대로 혼난 실습이었다.. 왜 git을 그렇게 강조하는지 새삼 깨달았음. 맨날 하는 작업만 해서 몰랐음.. ㅎ 말로만 듣던 것들을 차근차근 배워나가는건 참 재밌다. 이 재미가 계속됐으면 좋겠당

🗝 키워드

SaaS, DevOps, CI, CD, CI/CD 파이프라인, YAML

🗣 스스로에게 설명

개발 프로세스

  • 요구분석 및 시스템 명세 작성
  • 설계
  • 구현
  • 테스트
  • 배포 및 유지보수: 시스템이 인수되고 배포된 후 일어나는 모든 활동, 소프트웨어 생명주기에서 가장 긴 기간 차지
    • 수정형 유지보수: 오류 수정 작업 진행
    • 적응형 유지보수: 환경적 변화에 적응하기 위한 재조정 작업
    • 완전형 유지보수: 성능을 향상하기 위한 개선 작업
    • 예방형 유지보수: 앞으로 발생할지 모를 변경 사항을 수용하기 위한 대비 작업

전통적인 개발 방식은 워터폴(Waterfall) 방식
안정성 개선을 위해 다양한 테스트 방식을 도입함

  • 시스템 테스트
  • 알파 테스트
  • 베타 테스트

모던 개발 프로세스는 애자일(Agile) 방식
스프린트라고 부르는 짧은 주기의 개발 사이클을 계속 반복함
이 프로세스를 적절히 사용하면 하루에도 여러 번의 배포가 가능해짐.
SaaS를 개발하는데 적합

SaaS

Software as a Service
클라우드 서비스의 한 방식
브라우저에 접속하기만 해도 새 버전을 즉시 사용할 수 있음
전부 공급자 쪽에서 관리하기 때문에 사용자는 관여할 부분이 없다
ex) Gmail

DevOps

Development + Operations
소프트웨어를 자주, 빨리 그리고 안전하게 배포하는 것을 목표로 함.
애자일 프로세스 기반

일종의 개발 문화
서비스가 중단된다면 누구든지 문제점을 진단하고 시스템을 복구하여 운영할 수 있는 절차를 알고 있어야 함.
코드 통합, 테스트, 배포 과정의 자동화 -> 지속적 통합 및 배포 (CI/CD)

YAML/YML

Yet Another Markup Language
사람이 읽을 수 있는 데이터 직렬화 언어
JSON 파일에 비해 스펙이나 프로퍼티 값이 한 눈에 들어온다.
주석 작성 가능

key-value 형식, 계층 구조
설정 파일 (configure 파일)에 사용하기 좋음

 

CI/CD와 github Actions 실습 내용은 블로깅 과제를 첨부해둔다.

 

<Deploy> 배포 과정 자동화하기 (with Github actions)

코드를 수정할 때마다 새롭게 빌드하고 배포하는 과정은 생각보다 번거로운 일이다. 자동화 작업을 통해 이 과정을 기계가 알아서 해주도록 만들 수 있다. CI Continuous Integration 지속적 통합 Code -

haruisshort.tistory.com

🔎 공부가 더 필요한 부분

git 기초 개념 다시 살펴보기
aws sync 옵션

'Lesson > TIL' 카테고리의 다른 글

TIL: 2022-12-12  (0) 2022.12.12
TIL: 2022-12-08  (0) 2022.12.08
TIL: 2022-12-06  (0) 2022.12.06
TIL: 2022-12-05  (0) 2022.12.05
TIL: 2022-12-02  (0) 2022.12.02
Comments