소프트웨어 개발의 골든 경로(Golden Path)란?

URL 복사

골든 경로란 조직 내에서 일치된 의견을 바탕으로 문서로 잘 정리되어 지원되는 소프트웨어 빌드 및 배포 방식을 말합니다. 개발 팀은 지원되는 경로를 통해 조직의 표준을 준수하는 방식으로 소프트웨어를 더욱 효율적으로 빌드할 수 있습니다. 골든 경로는 플랫폼 엔지니어에게 명확한 접근 방식을 제공하여 DevOps 팀, AI/MLOps 팀, 보안, 네트워킹 및 기타 IT 조직을 이끌어 일관성과 신뢰성, 시간과 리소스의 효율적 사용을 보장할 수 있도록 합니다.

개발자 팀의 규모와 성숙도에 따라 다양한 수의 골든 경로가 있습니다. 예를 들어 플랫폼 엔지니어링 팀을 구성한 지 얼마 되지 않은 조직은 마이크로서비스 개발, CI/CD 파이프라인, 인프라 프로비저닝 및 관측성 설정과 같은 주요 프로세스를 다루는 골든 경로의 수가 적을 수 있습니다. 반면 성숙도가 높은 팀은 프론트엔드 애플리케이션 개발, 분석 또는 머신러닝(ML) 워크로드를 위한 데이터 파이프라인, 서버리스 애플리케이션 개발, 보안 및 컴플라이언스 워크플로우 등 수백 가지의 세분화된 골든 경로가 있을 수 있습니다. 하지만 팀 규모나 성숙도에 관계없이 골든 경로는 다음과 같은 공통적인 구성 요소를 포함하고 있습니다. 

  • 소프트웨어 템플릿: 사전 구성된 마이크로서비스 상용구(예: Docker 및 CI/CD 파이프라인이 설정된 Python FastAPI 템플릿)
  • 인프라 프로비저닝: 클라우드 리소스용으로 사전 빌드된 Terraform 또는 Pulumi 모듈
  • 빌드 및 배포 파이프라인: 사전 구성된 GitHub Actions 또는 Jenkins 스크립트
  • 관측성 툴: 통합된 로깅 및 모니터링 솔루션
  • 보안 지침: 사전 적용된 정책 및 워크플로우 내에 임베드된 스캔 기능

플랫폼 엔지니어를 위한 Red Hat OpenShift 살펴보기

골든 경로의 개념

골든 경로는 작가 Frank Herbert가 자신의 공상 과학 소설 Children of Dune(듄의 아이들)에 처음 사용한 용어입니다. Herbert의 골든 경로에서 영감을 얻은 소프트웨어를 위한 템플릿 개념이 Spotify에 의해 창시되었으며, 이는 엔지니어링 팀이 툴과 프로세스에 부합하는 방식으로 작업하도록 하는 것을 목적으로 합니다. 그 후 Google과 Netflix를 포함한 다른 조직에서도 이 방식을 채택했으며, 고유한 이름으로 부르는 조직도 있습니다. 가령 Netflix에서는 '포장도로(Paved Road)'라고 부릅니다.

골든 경로를 케이크를 굽는 것에 비유하면 쉽게 이해할 수 있습니다. 케이크를 구우려면 오븐을 특정 온도까지 예열하고, 적절한 베이킹 도구를 꺼내고, 필요한 재료를 준비해야 합니다. 조리법을 따르기만 하면 되는 것이 아니라 적절한 도구와 기술도 갖춰야 합니다. 더 많은 사람들이 똑같은 케이크를 구울 수 있게 하려는 경우 더욱 일관되고 효율적인 방법을 찾게 됩니다. 골든 경로도 마찬가지입니다. 소프트웨어 개발을 위한 특정 템플릿을 따른다면 프로세스와 제품이 더욱 세분화됩니다. 골든 경로를 구현하는 것은 설탕이 없다는 점만 빼면 케이크 굽기와 같습니다. 

Red Hat®의 아키텍트를 포함한 소프트웨어 아키텍트들은 골든 경로가 따라야 할 네 가지 특징으로 선택 가능성, 투명성, 확장성, 커스터마이징 가능성을 꼽습니다.

선택 사항

골든 경로는 소프트웨어 빌드 및 배포를 위한 선택적 방식이어야 합니다. 혁신을 가능하게 하고 촉진하려면 표준 워크플로우에서 벗어날 수 있는 유연성이 필요합니다. 엔지니어링 팀은 골든 경로가 이용되지 않는 상황을 관찰하고 새로운 골든 경로를 이용하는 것이 더 이로울 수 있는 상황을 확인할 수 있습니다.

투명성

골든 경로의 프로세스와 툴은 투명해야 합니다. 골든 경로는 기반 기술을 학습할 필요 없이 다양한 접근 방식을 허용하는 템플릿을 제공합니다. 개발 팀은 투명한 골든 경로를 통해 보이지 않는 곳에서 일어나는 일을 더 자세하게 파악할 수 있습니다.

확장성

골든 경로는 새로운 기능을 추가할 수 있도록 확장 가능해야 합니다. 골든 경로는 상황에 따라 조정할 수 있는 템플릿이기 때문에 이미 커스터마이징이 가능합니다. 그러나 특정 활용 사례에 추가 기능이 필요한 경우, 골든 경로는 그러한 확장을 허용할 수 있을 정도로 충분히 유연해야 합니다.

커스터마이징 가능성

골든 경로는 내부 및 타사 개발 팀의 요구 사항에 따라, 그리고 조직의 기존 수동 커스터마이징 경험에 따라 세부적으로 커스터마이징할 수 있어야 합니다. 이를 통해 이러한 골든 경로 내에서 구현할 수 있는 표준을 개발하고 그 과정에서 보안을 강화할 수 있습니다.

골든 경로는 배포되는 사항에 따라 다를 수 있습니다. 그러나 선택 가능성, 투명성, 확장성, 커스터마이징 가능성이라는 네 가지 특징은 모두 갖춰야 합니다.

Red Hat 기술 연동을 통한 개발자 생산성 지원

일반적으로 플랫폼 엔지니어가 개발자 생산성을 높일 수 있는 모범 사례, 정의된 툴, 서비스, 리소스 및 프로세스를 개발 팀에 제공하기 위해 골든 경로를 만들고 유지 관리합니다. 플랫폼 엔지니어링은 일관성과 효율성을 높여 각 팀의 생산성과 팀 간 협업을 개선하는 것을 목적으로 합니다. 플랫폼 엔지니어링 팀의 주요 업무는 개발 과정에서 발생하는 문제를 파악하고 내부 개발자 플랫폼(Internal Developer Platform, IDP)을 통해 재사용 가능한 표준 툴과 기능을 제공함으로써 그러한 문제를 완화하는 것입니다. IDP는 개발자가 코드를 생성하고 배포하는 데 필요한 표준화된 셀프 서비스 툴과 기술 세트로 구성됩니다. 

골든 경로는 다음을 포함한 활용 사례를 지원할 수 있습니다.

애플리케이션 개발

애플리케이션 개발자는 표준화되고 보안에 중점을 두는 방식으로 애플리케이션을 빌드, 테스트하고 제공하는 것을 목표로 합니다. 골든 경로는 더욱 효율적인 온보딩 및 빌드 경로를 제공하여 애플리케이션 개발자를 지원합니다. 애플리케이션 팀은 골든 경로를 통해 정보 공유를 지원하고, 공유 툴의 개발을 촉진하고, 조직 전반의 민첩성과 기동성을 향상하는 통합된 기반을 구축할 수 있습니다. 

데이터 사이언스

데이터 사이언티스트는 데이터를 수집, 분석 및 해석하여 실행 가능한 인사이트를 도출합니다. 또한 AI(인공지능, Artificial Intelligence) 및 ML 시스템의 개발 및 배포에 특화될 수도 있습니다.  ML 운영(MLOps) 팀은 골든 경로를 통해 ML 모델을 소프트웨어 개발에 통합할 수 있도록 지원합니다. 데이터 사이언티스트는 AI 모델을 개발할 때 골든 경로의 도움을 받을 수 있으며, 개발자는 그러한 모델을 구현할 때 골든 경로를 활용할 수 있습니다. 

사이트 신뢰성 엔지니어링(SRE)

SRE 팀은 코드의 배포, 구성 및 모니터링 방식을 관리하며 프로덕션 내 서비스의 가용성, 대기 시간, 변경 관리, 비상 대응, 용량 관리도 담당합니다. SRE는 골든 경로를 통해 확장 가능하며 신뢰성이 우수한 소프트웨어 시스템을 일관성 있게 개발할 수 있습니다.

시스템 관리(시스템 관리자)

시스템 관리자는 조직의 컴퓨터 시스템을 배포, 구성하고 유지 관리합니다. 시스템 관리자는 수천 대의 머신을 관리하기 때문에 효율적인 작업을 위해 확장 가능하고 지속 가능한 방법이 필요합니다. 골든 경로는 일상적인 작업을 간소화하고 자동화하여 일반적인 태스크와 프로세스를 위한 명확한 프레임워크를 제공합니다. 이를 통해 관리의 복잡성을 줄이고 오류가 발생할 위험을 낮출 수 있습니다.


플랫폼 엔지니어링 툴이란?

골든 경로는 셀프 서비스 템플릿으로서 다음을 포함해 개발자 생산성을 높이는 다양한 장점을 제공합니다. 

인지적인 부담 감소: 표준화된 프로세스를 통해 개발자의 인지적인 부담을 줄여 혁신을 위해 창의력을 발휘할 수 있도록 합니다. 

개발 가속화: 개발 팀은 툴을 찾고 프로세스를 파악할 필요 없이 정의된 태스크를 기반으로 조직이 이미 소유하고 있는 기존의 검증된 모범 사례를 활용하여 개발 속도를 높일 수 있습니다. 

검증된 일관성: 공유 가능한 템플릿과 개선된 내부 프로세스를 통해 프로젝트 전반의 일관성을 유지하여 개발 팀이 내부 소속이든 타사 소속이든 관계없이 더 나은 결과와 품질을 제공할 수 있습니다.

자동화 확대: 배포, 코드 테스트와 같은 반복적인 태스크를 자동화하여 CI/CD 파이프라인, 코드형 인프라(Infrastructure as Code, IaC)API(애플리케이션 프로그래밍 인터페이스, Application Programming Interface) 관리와 같은 관행을 더 손쉽게 적용할 수 있도록 합니다.  

더 간편한 온보딩: 새로운 팀원은 검색 가능한 도큐멘테이션 및 툴을 활용하여 모든 태스크에 대한 최적의 접근 방식을 알아야 할 필요 없이 워크플로우를 더 빠르게 학습할 수 있습니다.

보안 향상: 템플릿은 내장된 사례를 통해 보안 표준을 충족하도록 보장하여 향후 감사를 간소화할 수 있도록 합니다.  

골든 경로 설계는 도로를 '포장'하는 것이라고도 볼 수 있는데, 단순하고 효과적인 경험을 보장하는 로드맵을 작성하는 것을 의미합니다. 골든 경로에 포함되는 사항은 목표에 따라 다를 수 있지만, 개발자 생산성을 위해 고려해야 할 몇 가지 모범 사례가 있습니다.

  1. 사용자 정의: 골든 경로는 개발 팀에서 가장 많이 사용됩니다. 템플릿은 여러 팀 또는 팀원에 의해 빌드되고 유지 관리되기 때문에 코딩, 프로파일링, 보안 등 다양한 기술 세트를 보유한 개인들로 이루어진 특정 집단이 골든 경로의 사용자가 됩니다.
  2. 목적 파악: 골든 경로의 전체적인 목적은 기존 관행을 자동화하여 개발자 생산성을 높이는 것입니다.
  3. 단계별 경로 배치: 명확한 단계와 지침을 개발하여 사용자가 원활하고 성공적인 프레임워크를 사용하여 각 태스크를 완료할 수 있게 하세요.
  4. 툴과 리소스 제공: 실행을 위한 도큐멘테이션과 툴을 제공하면 골든 경로에 대한 컨텍스트를 제공하는 데 도움이 될 수 있습니다.
  5. IDP 통합: IDP에서 골든 경로를 사용하고 쉽게 액세스할 수 있게 하세요. IDP에 골든 경로를 통합하면 IDP를 통해 골든 경로를 사용할 수 있고 개발자 셀프 서비스를 지원할 수 있습니다.
  6. 성과를 측정하고 반복하기: 골든 경로가 성공적인지 확인하려면 메트릭을 사용해 성과를 측정하세요. 이러한 지표에는 DevOps Research and Assessment(DORA) 메트릭, SPACE 프레임워크 또는 Flow 프레임워크가 포함될 수 있습니다. 또한 사용자의 피드백을 수집하고 프로세스를 반복하여 효율성을 개선하세요.

마이크로서비스 개발

골든 경로를 사용하는 경우의 한 가지 예는 운영 팀이 개발한 사전 빌드된 템플릿을 기반으로 새로운 마이크로서비스를 개발하는 것입니다. 

마이크로서비스란 일련의 독립적인 서비스가 경량화된 API를 통해 통신하는 애플리케이션 아키텍처 스타일을 의미합니다. 마이크로서비스 아키텍처는 더욱 효율적인 애플리케이션 개발 방식을 제공하여 애플리케이션 내의 각 핵심 기능이 독립적으로 존재할 수 있게 합니다. 애플리케이션 요소가 분리되어 있어 DevOps 팀은 서로를 방해하지 않으면서 함께 작업할 수 있습니다. 따라서 동일한 애플리케이션 개발에 더 많은 개발자들이 동시 참여할 수 있으므로 개발에 소요되는 시간을 단축할 수 있습니다. 

골든 경로는 마이크로서비스 빌드, 배포 및 관리를 위한 더욱 효율적인 프로세스를 제공하여 개발자 생산성을 한층 더 높일 수 있습니다. 마이크로서비스를 위한 성공적인 골든 경로는 자동화, 모범 사례, 관측성에 중점을 두고 체계적인 파이프라인과 통합됩니다.

마이크로서비스에 대해 자세히 알아보기

MLOps 제공 

골든 경로는 MLOps 제공에 도움을 줄 수 있습니다. DevOps와 GitOps 원칙에서 영감을 받은 MLOps는 ML 모델을 소프트웨어 개발 프로세스에 통합하기 위한 지속적인 발전을 확립하고자 합니다. 또한 팀 간 협업을 간소화하여 조직 내 애자일 개발과 데이터 기반 의사 결정을 촉진할 수 있습니다. MLOps 사례를 도입하면 ML 모델을 관리하는 데 따르는 수작업을 최소화하는 동시에 지속적인 성능과 안정성을 보장할 수 있습니다.

팀이 ML 제공을 위한 지침으로 골든 경로를 활용한다면 ML 모델을 개발, 배포하고 관리하는 프로세스를 개선하는 데 도움이 될 수 있습니다. 골든 경로는 자동화된 파이프라인과 같은 워크플로우와 관행을 확립하여 안정적이고 일관된 모델 제공을 보장함으로써 MLOps를 지원할 수 있습니다. 

MLOps 팀은 MLOp 표준의 다양한 기준을 지원하는 템플릿을 제공하는 됭시에 활용 사례에 따라 필요한 대로 조정할 수 있는 유연성을 제공하는 골든 경로를 통해 도움을 얻을 수 있습니다.

 MLOps에 대해 자세히 알아보기 

에이전틱 AI

에이전틱 AI는 인간 개입을 최소화하는 방식으로 데이터 및 툴과 상호작용하도록 설계된 소프트웨어 시스템입니다. 이는 일련의 단계를 생성하고 이를 자율적으로 수행하여 태스크를 완료할 수 있습니다. 에이전틱 AI가 기존의 자동화와 다른 점은 실시간 데이터, ML 모델, 피드백 루프를 사용하여 컨텍스트를 기반으로 의사 결정을 내린다는 것입니다.

에이전틱 AI를 구현하기 위해 LLM(대규모 언어 모델, Large Language Model)에 외부 툴과 알고리즘(AI 에이전트가 해당 툴을 사용하는 방식에 관한 지침을 제공)에 대한 액세스를 제공하는 시스템을 개발합니다. 골든 경로와 마찬가지로, 에이전틱 AI는 목표를 달성하거나 태스크를 완료하기 위해 최적화되고 자율적인 프로세스를 통합하여 필요에 따라 학습하고 조정합니다.

 에이전틱 AI에 대해 자세히 알아보기

Red Hat 제품 및 서비스는 유기적으로 작동하여 소프트웨어 개발을 지원하고 엔터프라이즈의 팀 생산성을 높이는 데 필요한 유연성을 제공합니다. 또한 셀프 서비스를 확장하고, 온보딩을 가속화하고, 모든 팀에서 반복적인 태스크를 줄입니다.

Red Hat Developer Hub는 조직의 모든 단일 개발 팀이 방문하여 모든 골든 경로를 이용할 수 있는 셀프 서비스 포털을 제공하며, 특정 프로젝트에 관한 모든 지식과 관련 기술 도큐멘테이션을 찾아볼 수 있는 통합 허브 역할을 합니다. 조직은 Red Hat Developer Hub에서 기존 소프트웨어 템플릿을 사용하여 새 애플리케이션 또는 마이크로서비스를 시작하거나 조직의 특정 환경에 맞는 사용자 정의 템플릿을 사용할 수 있습니다.

Red Hat Developer Hub와 Red Hat OpenShift®를 함께 사용하는 경우 개발자 팀은 클라우드 네이티브, 레거시 및 현대화된 애플리케이션을 포함하여 자신이 신뢰하는 애플리케이션 툴을 사용할 수 있습니다. Red Hat OpenShift PipelinesRed Hat OpenShift GitOpsRed Hat OpenShift Service MeshRed Hat OpenShift Serverless 및 그 외 여러 기술이 이미 포함되고 Red Hat OpenShift에 통합되어 있어 개발자 워크플로우를 간소화하며 기타 여러 오픈소스 툴과의 통합을 지원합니다. 

보안은 언제나 중요한 우선순위이기 때문에 조직은 Red Hat Trusted Software Supply Chain을 통해 소프트웨어 개발의 구성 요소, 프로세스 및 관행에 보안을 통합할 수 있습니다. 개발자는 조직의 보안 사례에 맞게 소프트웨어를 제공할 수 있도록 코딩, 빌드, 배포 및 모니터링을 수행할 수 있습니다.

Red Hat Developer Hub 체험하기

추가 자료

플랫폼 엔지니어링 툴이란?

플랫폼 엔지니어링 툴이란 개발 팀이 셀프 서비스 접근 방식을 사용하여 생산성을 개선할 수 있도록 지원하는 리소스입니다.

플랫폼 엔지니어링과 DevOps 비교

플랫폼 엔지니어링과 DevOps 간에 어떤 차이점이 있는지 알아보고 목표에 부합하는 접근 방식을 찾아보세요.

플랫폼 엔지니어를 위한 Red Hat OpenShift

Red Hat OpenShift는 플랫폼 엔지니어링 팀에 내부 개발자 플랫폼을 효과적으로 구축하고 관리하는 데 필요한 툴을 제공합니다.

Platform engineering 리소스

주요 제품

  • Red Hat Developer Hub

    개발 프로세스 요소를 시각적으로 통합하는 개발자 포털 구축을 위한 Backstage 기반 오픈 엔터프라이즈 플랫폼입니다.

  • Red Hat OpenShift

    선택한 하이브리드 클라우드 인프라에 맞게 애플리케이션을 대규모로 구축, 현대화 및 배포할 수 있는 통합 애플리케이션 개발 플랫폼입니다.