구글 클라우드를 활용한 모던 앱 개발
어떻게 하면 더 빠르고 효율적으로 소프트웨어 개발을 할 수 있을까?
참 오래된 주제인데요~ 시대를 거듭하면서 다양한 방법론과 도구 세트가 등장하였습니다. 🙂
웹 시대 후 기업의 정보화가 발빠르게 이어지던 시대는 소프트웨어 개발 혁신의 방점이 ‘생산성’에 찍혔습니다. 현재 소프트웨어 개발의 화두는 ‘민첩성’이 아닐까 싶습니다.
민첩성과 생산성은 사실 맞닿아 있는 개념입니다. 서로 지향하는 목표가 같습니다만 혁신에 대한 접근에는 차이가 좀 있습니다.
😃 더욱 빠르고 효율적인 개발 주기
그렇다면 2022년 현재 소프트웨어 개발은 어떤 방향으로 진화 중일까요?
크게 보자면 예전처럼 빅뱅 방식으로 오랜 기간 계획하고 개발하는 식의 접근보다는 빨리 시작해 배포하는 방식이 주류가 되어 가고 있습니다. 마이크로서비스 아키텍처 전략과 환경이 자리를 잘 잡은 조직의 경우 첫 날 개발하고 둘째 날 배포하는 Day 1 ~ Day 2 개념으로 속도감 있게 개발이 이루어 집니다. 이 정도의 민첩성을 갖춘다는 것은 쉽지 않아 보이지만 빅 테크 기업이나 디지털 네이티브 조직에서 흔히 볼 수 있는 일상입니다.
Day 1 ~ Day 2 수준의 민첩성을 바탕으로 현대적인 앱을 개발하고자 한다면? 무엇을 고려해야 하고 어디서부터 시작을 하는 것이 좋을까요? 이번 포스팅에서 세부적으로 알아보겠습니다. 😎
▼ 현대적인 앱 개발 주기는 다음과 같습니다.
위처럼 빠른 주기로 개발, 빌드, 운영을 지속해 가는 조직은 다음과 같은 질문에 대한 답을 갖고 있습니다.
- 개발: 모범 사례(Best Practice)와 레퍼런스 아키텍처를 활용해 프로덕션 수준의 코드 품질을 갖춘 앱을 신속하게 개발할 수 있는가?
- 빌드: CI/CD 파이프라인 상에서 빌드 작업을 할 수 있는가?
- 테스트: 개발 환경과 가상의 프로덕션 환경 모두를 대상으로 병행 테스트가 가능한가?
- 실행: 인프라를 추상화하여 개발자가 필요 자원을 확보해 앱을 실행할 수 있는가?
- 통합: 유연한 앱 통합이 가능한가?
- 보안: 소프트웨어 공급망 측면에서 보안성을 확보할 수 있는가?
- 유지보수: Day 1 ~ Day 2 체계에서 의존성 문제를 적절히 관리할 수 있는가?
그렇다면 일반적인 개발 조직이 직면한 현실은 어떨까요? 시장 조사 기관들이 발표하는 소프트웨어 개발 관련 보고서를 보면 대략적인 현실이 보입니다. 주어진 시간을 100이라 할 때 오롯이 개발에 투입할 수 있는 시간은 20%가 채 안 됩니다. 나머지 시간은 테스트 및 문제 해결에 들어갑니다. 이러한 부조리를 해결하는 데 있어 작게 시작해 크게 확대해 나갈 수 있는 방법이 있습니다. 바로 클라우드 기술을 활용하는 것입니다.
😃 현대적인 앱 개발 전략 실행의 좋은 출발점 ‘Google Cloud’
구글 클라우드를 활용하면 현대적인 앱 개발 주기를 앞당길 수 있습니다. 비즈니스 로직을 개발하고, 단위 테스트를 하고, 빌드 및 통합 테스트를 하고, 배포를 위한 구성을 하고, 배포 후 통합 작업을 하는 일련의 과정을 Day 1 ~ Day 2 흐름으로 이어갈 수 있습니다.
이처럼 민첩하게 CI/CD 파이프라인을 구축하려면 클라우드 서비스만으로는 부족합니다. 각 작업에 참여하는 관계자들에게 적절한 역할과 책임을 주어야 합니다. 클라우드 환경에서 현대화된 앱을 개발, 배포, 운영하는 작업에 참여하는 전문가는 크게 아키텍트, 개발자, 운영자로 나눕니다. 이들에게 주어져야 할 임무는 다음과 같습니다.
📌 소프트웨어, 플랫폼 아키텍트 – 재사용 가능한 템플릿 작성
📌 개발자 – 템플릿을 사용해 개발을 간소화 하는 가운데 비즈니스 로직 구현에 집중
📌 운영자 – 빌드와 배포 아티팩트 사용으로 업무 효율 개선
위와 같은 역할과 책임은 구글 클라우드가 제공하는 서비스를 통해 실행에 옮길 수 있습니다. 현대적인 앱 개발을 위한 구글 클라우드의 핵심은 Cloud Build와 Cloud Delivery입니다. 이들 서비스의 기능은 이름에 다 나와 있습니다. CI/CD에서 Cloud Build는 지속적 통합 기능을 하고, Cloud Delivery는 지속적 배포를 담당합니다.
아키텍트는 개발자가 자원 할당 및 구성 고민 없이 템플릿을 이용할 수 있도록 개발 및 가상 프로덕션 환경을 컨테이너 이미지 기반으로 신속하게 구현할 수 있도록 지원하면 됩니다. 개발자는 깃허브 같은 소스 리포지토리와 Cloud Code 같은 클라우드 네이티브 도구나 평소 사용하는 IDE 환경에서 비즈니스 로직 구현에 집중하면 됩니다. 운영자는 Cloud Build를 활용해 개발 생산성을 높일 수 있는 빌드와 배포 아티팩트를 만들면 됩니다.
살펴본 바와 같이 클라우드 환경은 현대적인 앱 개발을 위한 CI/CD 체계를 빠르게 갖추고 확대해나아가는 데 있어 좋은 출발점입니다. 특히 클라우드 기술은 단위, 통합 테스트 측면에서 지금껏 경험하기 힘든 효율을 제공합니다. 가령 개발자는 구글 클라우드의 GKE에 프로덕션과 같은 소프트웨어 스택으로 구성한 테스트 환경을 손쉽게 마련할 수 있습니다. 👍👍👍
이상으로 『 클라우드 환경에서 현대화된 앱 개발을 하는 체계 』 에 대해 알아보았습니다. 클라우드 친화적인 CI/CD 구축이 필요하다면? 구글 클라우드에서 시작해 보세요. 😎
더 자세한 내용은 메가존으로 문의 바랍니다. 👉 메가존소프트 문의 바로가기