Book

[도서] 성공으로 이끄는 팀 개발 실천 기술

chbae 2023. 4. 20. 05:00
728x90
반응형

요즘 개발 환경과 방법론에 대해 부쩍 관심이 많아져 다양한 책과 기사를 접하고 있다. 요즘 많은 곳에서 데브옵스(DevOps) 방법론을 많이 사용하고 있고 이를 기반으로 설명한 책들도 많이 나오고 있다. 이 책도 그중에 한권이라고 생각한다.

책소개

이 책은 서비스 및 애플리케이션을 개발하는 기업에서 팀을 이뤄 개발을 진행시켜 나가는 데 필요한 사고방식이나 사용하는 도구, 그리고 이들 도구를 제대로 사용할 수 있도록 도와주고 있다. 책 도입부에서는 일이 잘 진행되지 않는 개발 현장의 일례를 보여주고 그 이유와 대책에 대해 설명한다. 그런 다음, 그 대책에 필요한 도구를 소개하고, 이어 버전 관리, 티켓 관리, CI(지속적인 통합) 배포, 회귀 테스트 등의 장을 통해 각 도구의 사용법과 함께 현장 경험이 풍부한 저자의 팀 개발 노하우를 제공하고 있다.

 

 

필자는 임베디드 환경에서 개발하고 그 내에서 CI (Continuous Integration) / CD (Continuous Delivery)를 고민하고 있지만, 주로 대부분의 글과 서적은 웹에 많은 예시를 들면서 설명하고 있고 이책도 그중에 한권이다. 하지만 많이 부분이 중첩되긴한다.

이 책을 통해 필자가 얻은 지식

이상적인 프로젝트란?

  • 티켓 관리 시스템(bugzilla-무료,jira-유료)에 이슈 등이 집약되어 있다.
  • 버전 관리 시스템(git, svn)을 이용한다.
    필자는 코드 리뷰 도구(gerrit-무료, bitbucket-무료/유료)와 함께 사용하는 것을 권장한다.
    부분적으로 github의 개발 방법론을 전체적으로 도입하는 것도 좋다.
  • 반복 검증 가능한 CI(Jenkins, Travis CI)를 도입한다.
  • 환경 영향을 최소화하고 항상 배포 가능하게 한다.
    WEB Regression 테스트 자동화 (Selenium)
  • 모든 기록은 추적 가능하게 한다.

배포 자동화 도구 조합

  • Jenkins + Chef(puppet) + serverspec(Cucumber Chef, Test Kitchen) + Vagrant(Docker)
  • Kickstart + Chef + serverspec
    Kickstart: 서버 기본 Infra 설정
    Chef + serverspec: 애플리케이션 및 환경 설정

PaaS (Platform as a Server) 활용과 벗어나는 시점

활용:

  • 사업 초창기 빠른 서비스 제공, 최대 부하 예측 어려움, 단기 서비스등 AWS등의 IaaS(Infra as a Server)로 벗어나는 시점
  • PaaS 비용 감당이 어려울 때 등

필자의 경험

IVI 관련 오픈 소스 프로젝트 AGL과 GENIVI 사례를 들도록 한다.

  • AGL은 Linux Foundation에서 지원하는 오픈 소스 프로젝트로 jenkins, git/gerrit, jira, confluence를 연계하여 사용하고 있다. 필자가 경험하고 있는 좋은 조합이다.
  • GENIVI는 go.cd, git, jira, confluence를 사용하고 곧 리뷰툴로 gerrit을 도입할 예정이다.

필자의 Action Item

  • Chef에 대해 익히고, 이를 개발 프로젝트에 한번 적용해 보고자 한다.
  • Bitbucket(필자는 Stash)를 사용한 개발 절차에 대해서 알아 보고자 한다.

마치며

전체적인 CI/CD를 효과적으로 적용하기 위한, 핵심은 배포 자동화를 구축하기 위해서는 리더, 개발자, QA, Infra 팀 모두 하나가 되어야 달성할 수 있는 성과물이라는 것이다.

728x90