본문 바로가기

교육/Advanced 과정

SW개발 Dev Tools 알아보기

kt cloud_ sw개발 Dev Tools 알아보기

 

 서비스를 설치하고 설정하는 과정이 귀찮으셨던 분들, 그리고 VM 기반으로 Redmine, GitLab, Jenkins 상품을 사용하고 싶으셨던 분들에게 추천드리기 위해 kt cloud dev Tool과 DevPack 상품에 대해 알아보겠습니다. 

세 가지 DevTools 도구를 모두 제공하는 kt cloud DevPack 상품은 CI/CD의 기본 구성과 고객측에서 변경 가능한 VM 방식으로 제공하는 Dev Tools 상품입니다. 프로젝트 관리 및 이슈 추적을 위한 Redmine, 소스코드 관리를 위한 Private Git 상품인 GitLab, 그리고 빌드 및 배포를 위한 Jenkins로 구성되어 있습니다. 세 상품이 각각 별개로 구성되어 있기 때문에, 원하시는 서비스만 선택하여 별도로 신청하실 수 있죠. 귀찮은 초기 설정과 사용에 있어 필수적인 플러그인들이 미리 설치되어 있으며, 사용자의 니즈에 따라 자유롭게 변경하시어 사용할 수 있습니다.

목차

CI/CD란?
Dev Tools 종류
kt cloud Dev Tools 상품

 

 

CI/CD란?

CI/CD의 정의

CI/CD란, 소스코드를 지속적으로 통합하고 관리하는 파이프라인인 CI와, 소스코드 자동 빌드 및 배포 과정을 의미하는 CD 파이프라인으로 구성된, 애플리케이션 라이프사이클 전체를 아우르는, DevOps에 꼭 필요한 과정입니다.

CI/CD의 개념이 나오게 된 배경을 알게 되면 좀 더 이해해 도움이 되실 것 같아 배경에 대해 설명드릴게요. 수 많은 애플리케이션과 서비스가 출시되는 요즘 시대에, 소프트웨어 프로젝트는 점점 복잡해지고 거대해져 가는데요. 사용자의 요구에 맞게 더 많고, 편리한 기능들을 제공하기 위한 꾸준한 업데이트와 신규 서비스가 출시되고 있습니다. 수 많은 기능들이 요구됨에 따라, 각각의 기능을 분리하는 MSA, Micro Service Architecture가 유행하기 시작했습니다. 이에 따라 개발 프로젝트의 규모가 커지고, 공동 개발을 수행하는 인력들이 증가하였습니다. 또한 다양해진 오픈소스와 요구사항으로 인해, 고객이 사용하고자 하는 OS와 시스템이 다양해졌습니다. 따라서 하나의 조직에서 여러 개의 소스를 유지/보수하고, 지속적으로 업데이트를 해야 하는 상황이 발생하게 되었습니다. 각기 다른 환경에서, 서로 다른 사람들이 개발한 코드를 합치고, 빌드하고, 테스트하는 과정은 번거롭고 시간을 많이 잡아먹게 됩니다. 따라서 “어떻게 효율적으로 DevOps 환경을 구축할 수 있는가?”라는 질문이 중요한 이슈로 떠오르게 되었습니다.

 

Dev Tools 종류 - 이슈 트래킹 도구

Dev Tools 종류 - 이슈 트래킹 도구

CI/CD Pipeline의 구축을 돕기 위한 많은 솔루션들이 존재합니다. 크게 세 종류로 구분할 수 있는데, 그 중 이슈 트래킹 도구는 말 그대로 이슈를 관리하고 추적하는 도구입니다. 이슈는 일감이라고도 불리며, 버그, 기능 구현 등을 포함한 업무의 단위인데, 담당자, 우선순위, 마감일, 상태 등을 등록하여 업무의 진행 사항을 관리합니다. 신속한 개발이 요구됨에 따라 고객의 요구사항 단위로 기능을 도출하고 스프린트 단위로 기능을 분리하는 ‘애자일 방법론’이 등장하며, 진행 중인 이슈에 대한 관리의 필요성이 대두되었습니다. 이에 따라 신규 개발내역, 업데이트 사항, 유지보수 사항 등 다양한 이슈를 관리하는 툴이 등장하게 되었습니다. 주로 팀 내의 진행 사항을 공유하고, 형상관리 도구와 연동하여 스프린트를 관리하는 용도로 사용합니다. 가장 많이 사용하는 툴로는 Redmine, Jira가 있습니다. Redmine은 무료 오픈소스이며, 수많은 플러그인을 통해 다양하고 유용한 기능들을 제공하기 때문에 현재까지도 많은 기업에서 사용하고 있는 툴입니다. 아틀라시안 사에서 제작한 Jira는, 깔끔한 UI와 함께 한 눈에 확인할 수 있는 대시보드를 제공하며, 마찬가지로 이슈 관리에 최적화된 다양한 기능들을 제공하고 있습니다.

 

Dev Tools 종류 - 형상 관리 도구

Dev Tools 종류 - 형상 관리 도구

두 번째로 Software Configuration Management, 즉 SCM이라고도 불리는 형상 관리 도구는, 소스코드의 변경점을 체계적으로 추적하고 관리해주는 툴입니다. 소스코드 버전 뿐만 아니라 소프트웨어 생명 주기 동안의 요구 사항, 설계 문서, 소스 코드, UI 문서, 테스트 케이스 및 각종 결과물에 대한 버전 관리를 수행할 수 있습니다. 대표적인 소스 저장소로는 svn, git이 있습니다. SVN은 아파치 라이선스를 보유하고 있는 오픈소스로, 버전 관리에 최적화된 간편한 기능을 자랑합니다. Git은 현재 가장 널리 쓰이고 있는 소스 버전 관리 툴로, 다양한 기능을 제공하며 push 기능을 추가하여 소스 충돌의 위험성을 줄였습니다. Git의 등장에 따라 생겨난 웹 버전 관리 시스템으로는 GitHub, GitLab, Bitbucket 등이 있습니다. 가장 규모가 큰 GitHub는 공개적으로 사용 가능한 무료 서비스로, 모든 코드를 공개해야 하기 때문에 오픈소스 공유를 위해 많이 사용합니다.  GitLab은 레포지토리의 공개 범위를 제한할 수 있으며, 소스 버전 관리 외에 프로젝트 관리를 위한 자체 CI 시스템을 추가적으로 사용할 수 있습니다. 마지막으로 BitBucket은 저렴하게 다양한 기능을 제공하며, Jira와의 연동이 용이하다는 장점이 있습니다.

 

Dev Tools 종류 - 통합 빌드 및 테스트 도구

Dev Tools 종류 - 통합 빌드 및 테스트 도구

마지막으로 통합 빌드 및 테스트 도구는, 모든 언어의 조합과 소스 코드 레포지토리에 대한 지속적인 통합과 지속적인 배포 환경을 구축하는 도구입니다. 빌드, 테스트, 배포의 일련의 프로세스를 자동화해줍니다. 컴파일 오류 검출, 자동화 테스트 수행, 코딩 규약 준수 여부 체크, 성능 변화 감시, 결합 테스트 환경에 대한 배포 작업 등 다양한 테스트 및 빌드 기능을 제공합니다. 대표적인 빌드 도구로는 깔끔한 UI를 자랑하며 JetBrain IDE와의 연동이 용이한 Teamcity, 다수의 플러그인 제공으로 확장이 용이하며 많은 기업에서 사용 중인 Jenkins, 빌드 결과물을 쉽게 저장하고 관리할 수 있는 Circle CI 등이 있습니다.

 

kt cloud Dev Tools 상품

kt cloud Dev Tools 상품

kt cloud에서는 CI/CD 환경을 Cloud 기반으로 효율적으로 지원해주는 다양한 Dev Tools 상품 라인업을 보유하고 있습니다.  이에 해당되는 상품으로는, 쿠버네티스 기반의 CI/CD 매니지드 서비스인 DevOps Suite, VM 기반의 CI/CD 환경을 제공해주는 Private Git, Jenkins, Redmine 세 서비스로 이루어진 DevPack 상품, 그리고 명령어와 코드를 통해 KT Cloud 서비스를 제어하는 Cloud 개발 도구인 CLI/SDK 상품이 있습니다. 이 중 이번 강의와 이어지는 강의를 통해 DevPack 상품의 특징 및 사용법을 알려드리고자 합니다.

 

kt cloud DevPack

kt cloud DevPack

세 가지 DevTools 도구를 모두 제공하는 kt cloud DevPack 상품은, CI/CD의 기본 구성을, 고객측에서 변경 가능한 VM 방식으로 제공하는 Dev Tools 상품입니다. 프로젝트 관리 및 이슈 추적을 위한 Redmine, 소스코드 관리를 위한 Private Git 상품인 GitLab, 그리고 빌드 및 배포를 위한 Jenkins로 구성되어 있습니다. 
세 상품이 각각 별개로 구성되어 있기 때문에, 원하시는 서비스만 선택하여 별도로 신청하실 수 있습니다.

 

💁영상으로 학습하기