데브옵스 & 코드퀄리티

올빼미·2024년 12월 23일

DevOps

= 개발(Development)운영(Operations)의 합성어

  • 두 팀간의 협업을 강화하여 소프트웨어 개발 및 배포 주기를 단축하고 품질 향상을 목적
    = 협업

데브옵스 핵심요소

  • 문화 : 개발, 운영 두팀의 경계를 허물고 협업을 하여
    서비스 품질을 높이는 문화가 요구
    • 조직의 Silo(사일로) 화 되는 것을 막아야 함
      + 사일로화 : 팀 안에서만 소통하고 팀 내 이익만
      추구하는 상황
  • 자동화 : 개발자가 소스 코드를 작성 하는 과정부터 사용자에게 서비스를 배포 하는 과정까지의 전 과정을 모두 자동화된 프로세스로 관리
  • 측정
  • 공유

필요성

  • 속도와 효율성
  • 품질 보증
  • 협업 증진
  • 비용 절감

협업도구

  • Redmine & Jira : 개발 프로젝트 관리에 널리 사용되는 도구
  • Slack : 디스코드와 비슷

VCS = Version Controll System

  • 버전관리=소스관리=소스코드관리 : 동일한 정보에 대한 여러 버전을 관리하는 것
    -> 버전을 통해서 시간적으로 변경 사항과 그 변경 사항을 작성한 작업자를 추적할 수 있다.

Git

Git - 소스코드의이력을 관리하는 분산 버전 관리 시스템
Github- Git 저장소를 관리하는 웹 호스팅 서비스
git 용어

  • push : 로컬 리파지토리에 작업 완료 된 코밋 이력을 원격 저장소에 보냄
  • pull : Remote Git Repository ->> Local Git Repository 로 소스 가져오는 명령어 + merge
  • fetch : Remote Git Repository ->> Local Git Repository 로 소스 가져오는 명령어

Git Flow vs Github Flow

  • Git Flow : 전통적 방식=브랜치 여러개로 많이
  • Github Flow : 브랜치를 하나의 base 브랜치 (master) + master 에 기능을
    추가하기 위한 브랜치 (feature) 두개만으로 운영하여 훨씬 간단하지만 빠르게 수정 배포할 수
    있는 전략

git 명령어

Gradle

: 2012년에 출시된 Groovy를 기반으로 한 오픈소스 빌드 도구로 거의 모든 타입의 소프트웨어를 빌드할 수 잇는 빌드 자동화 시스템

  • Build : 소스 코드를 컴파일, 테스트, 정적분석 등을 실행하여 실행 가능한 파일 형태로 만들어주는 과정
  • 장점 : 프로젝트를 설정 주입 방식으로 정의

CI/CD

: 지속적 통합 (Continuous Integration) 및 지속적 제공/배포 (Continuous Delivery/Deployment) 를 의미

  • 소프트웨어 개발 라이프사이클을 간소화하고 가속화 하는 것을 목표
  • 조직이 버그 및 코드 오류를 예방하는 동시에 지속적인 소프트웨어 개발 및 업데이트 주기를 유지하는 데 도움
  • CI/CD tool : Jenkins, Spinnaker, GoCD, Concourse, Screwdriver

Docker

: 리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트

  • 주요기능 : 저장소, 빌드, WebHook, Dokcker hub CLI

Git 실습

  1. repository 생성하기 (remote repository)
  2. initial commit 확인
  3. 터미널에서 git clone 깃주소입력
  4. git graph 설치
  5. branch 생성
    git branch develop
  6. develop branch로 이동
    git switch develop
  7. 코드 변경후에 commit&push 하기
profile
시들시들한 올빼미

0개의 댓글