LINE Ads에서 DSP(Demand Side Platform)를 개발하는 Demand Side Dev 3팀의 김남우 씨 글입니다. DevOps의 여러 프로세스 중에서 작업을 이슈로 관리(pl
LINE Ads에서 DSP(Demand Side Platform)를 개발하는 Demand Side Dev 3팀의 김남우 씨 글입니다. DevOps의 여러 프로세스 중에서 작업을 이슈로 관리(plan)하면서 코드를 작성(code)해서 빌드(build)하고 테스트(test)를 수행한 뒤 새 버전을 출시(release)해서 배포(deploy)하는 과정에 대한 사례를 공유하겠습니다. DevOps란? DevOps는 개발(development)과 운영(operations)의 합성어로, 소프트웨어의 개발부터 운영까지 전반에 걸친 과정을 통합하고 자동화하는 것을 목표로 하는 문화와 방식 및 도구를 말합니다. ☀️ 기획(plan): 기획 단계에서는 개발하려는 제품에 대한 아이디어를 도출하고 이를 정의해 기술합니다. 작업은 작은 규모의 단위로 쪼개서 관리하며 진행 상황을 추적합니다. ☀️ 코드(code): 기획한 설계를 바탕으로 코드를 작성하는 단계입니다. 버전 관리 시스템(Version Control System)을 이용해 여러 사용자가 작성한 코드 작업을 조율하고 변경 사항을 추적합니다. 작성한 코드는 개발자들이 함께 모여 코드 리뷰를 진행하면서 일관성 있게 아키텍처를 구현하고 오류를 사전에 방지하며 제품에 대한 구성원들의 이해도를 높입니다. ☀️ 빌드(build): 완성한 코드를 묶어서 실행 가능한 상태로 만드는 단계입니다. 이 과정에서 구문(syntax) 오류를 점검할 수 있고 정적 분석을 통해 실행 오류나 불필요한 코드, 표준 위배 사항 등을 발견해 코드의 완성도를 높일 수 있습니다. ☀️ 테스트(test): 완성한 코드에 대해 단위(unit) 테스트나 정밀(sanity) 테스트, 통합(integration) 테스트 등을 수행해 발생 가능성이 있는 논리적 오류를 미연에 방지합니다. ☀️ 릴리스(release): 완성한 코드를 배포 가능한 상태로 만드는 단계입니다. 완성본에 버전을 붙이면 변경 사항의 규모를 쉽게 확인할 수 있고 완성본을 만든 시점도 기록할 수 있습니다. ☀️ 배포(deploy): 완성한 결과물을 실제 제품에 반영하는 단계입니다. 지속적으로 배포할 수 있는 도구로 빠르게 배포하면 변경 사항 배포에 대한 위험을 줄이면서 비용과 시간도 절약할 수 있습니다. 문제가 발생할 경우에 대비해 신속히 확인해서 롤백(rollback)할 수 있는 준비도 해야 합니다. ☀️ 운영(operate): 완성한 제품을 유지하고 보수하는 단계입니다. 타 시스템과 연동해 서비스의 확장성을 높일 수도 있고 장비를 증설해 보다 안정적으로 서비스를 운영할 수 있습니다. ☀️ 모니터링(monitor): 완성한 제품에 이상이 없는지 주기적으로 확인하는 단계입니다. 물리적 장비의 CPU와 메모리, 저장 공간 등의 사용률을 확인하거나 제품의 응답 시간과 응답 결과물의 정확도 등의 서비스 지표를 지속해서 관찰하며 발생할 수 있는 여러 위험에 미리 대비합니다. 세부적인사항은 링크를 참고해주세요~ :-)