Code States/TIL

[0421] 지속적 통합 - 릴리스 준비

ki1111m2 2023. 4. 21. 11:35

학습 목표

  • 지속적 통합의 필요성을 설명할 수 있다.
    • 지속적 통합 개념이 나오게 된 배경을 이해할 수 있다.
    • 지속적 통합의 장점을 설명할 수 있다.
    • 지속적 통합의 원칙을 이해할 수 있다.
  • 빌드/테스트의 개념을 이해할 수 있다.
    • 테스트 주도 개발(TDD)에 대한 정의와 필요성을 설명할 수 있다.
    • 테스트 주도 개발(TDD) 사이클을 설명할 수 있다.
    • 테스트의 종류 (단위 테스트, 통합 테스트, E2E 테스트)를 설명할 수 있다.
  • 릴리스의 개념을 이해할 수 있다.
  • CI 도구(여기서는 GitHub Action)를 이용하여 지속적 통합이 이루어지는 과정을 직접 구현할 수 있다
  • 다양한 CI 도구의 차이점을 이해할 수 있다.
  • 코드와 환경 변수를 분리해야 하는 이유를 설명할 수 있다.

환경 변수


  • 운영체제 혹은 소프트웨어가 각기 다른 컴퓨터 또는 사용자마다 별도로 가질 수 있는 고유한 정보를 담는 데 사용하는 변수
  • 왜 필요한가?
    • 배포되는 기능마다 설정이 달라질 수 있음
      • 새로운 배포마다 새로운 기능들을 배포하게 됨으로써 설정 값이 바뀌게 됨
      • 코드의 버전을 관리하는 것처럼 설정 값의 버전을 관리할 필요가 있음
    • 설정은 왜 환경 변수를 통하여 분리하여야 하는가?
      • 환경 변수는 코드 변경 없이 배포 때마다 쉽게 변경할 수 있음
      • 설정 파일과 달리 잘못해서 코드 저장소에 올라갈 가능성이 적음
      • 다른 설정 메커니즘과 달리 언어나 OS에 의존하지 않음
  • 설정 예
    • 리눅스: export 명령어
    • 코드를 통해 환경 변수설정: node.js → process.env
    • 서비스 내에서 환경 변수 설정: GitHub Action