본문 바로가기
클라우드/Backstage

Backstage의 보이지 않는 영웅: 백엔드 플러그인의 책임과 역할 총정리

by gasbugs 2025. 12. 26.

안녕하세요! 오늘은 Backstage의 강력한 생태계를 지탱하는 든든한 버팀목, 백엔드 플러그인(Backend Plugins)의 핵심 역할과 책임에 대해 아주 상세하게 파헤쳐 보겠습니다. 🚀

Backstage를 처음 접하면 눈에 보이는 화려한 프론트엔드 UI에 집중하게 되지만, 실제로 데이터를 가져오고, 처리하고, 보안을 유지하는 모든 마법은 백엔드에서 일어납니다. 오늘 이 글을 통해 백엔드 플러그인이 왜 중요한지, 그리고 어떤 책임을 가지고 있는지 완벽하게 이해해 보세요! 💡

 


🏗️ Backstage 백엔드 플러그인이란?

Backstage 아키텍처는 크게 프론트엔드(App)백엔드(Backend)로 나뉩니다. 백엔드 플러그인은 Node.js 환경에서 동작하며, 프론트엔드 플러그인이 필요로 하는 데이터나 기능을 API 형태로 제공하는 독립적인 서비스 모듈입니다.

쉽게 말해, 프론트엔드가 사용자가 보는 '얼굴'이라면, 백엔드 플러그인은 그 뒤에서 열심히 일하는 '두뇌와 근육'이라고 할 수 있습니다. 💪🧠


🌟 백엔드 플러그인의 핵심 책임 3가지

백엔드 플러그인의 역할을 가장 잘 특징짓는 핵심 책임은 크게 세 가지로 요약할 수 있습니다.

1. 외부 시스템과의 통합 (Data Aggregation & Integration) 🔗

백엔드 플러그인의 가장 직접적인 책임은 조직 내외부의 다양한 시스템과 통신하여 데이터를 가져오는 것입니다.

  • API 호출: GitHub, Jira, AWS, Sentry 등 외부 서비스의 API를 호출합니다.
  • 데이터 변환: 각기 다른 포맷으로 들어오는 외부 데이터를 Backstage가 이해할 수 있는 공통 모델로 변환(Normalize)합니다.
  • 중계자 역할: 보안상의 이유로 브라우저(프론트엔드)에서 직접 외부 API를 호출하기 어려울 때, 안전한 프록시 및 중계자 역할을 수행합니다.

2. 비즈니스 로직 및 데이터 처리 (Logic & Processing) ⚙️

데이터를 단순히 전달하는 것을 넘어, Backstage만의 비즈니스 로직을 수행합니다.

  • 카탈로그 관리: 소프트웨어 카탈로그에 엔티티를 등록하거나 갱신하는 로직을 처리합니다.
  • 백그라운드 작업: 주기적으로 데이터를 크롤링하거나, 알림을 보내는 등의 스케줄링 작업을 수행합니다.
  • 복잡한 계산: 여러 소스에서 온 데이터를 조합하여 가공된 통계나 인사이트를 생성합니다.

3. 보안 및 권한 제어 (Security & Auth) 🛡️

매우 중요한 책임 중 하나입니다. 사용자가 데이터에 접근할 권한이 있는지 확인하고 안전하게 전달합니다.

  • 인증 및 인가: Backstage ID 토큰을 검증하고, 특정 리소스에 대한 접근 권한을 체크합니다.
  • 비밀 키 관리: 외부 시스템 접근에 필요한 API Key나 OAuth 토큰을 서버 사이드에서 안전하게 관리하며 주입합니다.

🛠️ 백엔드 플러그인은 어떻게 동작하나요?

Backstage 백엔드는 Express 프레임워크를 기반으로 합니다. 각 플러그인은 자신만의 고유한 라우터(Router)를 생성하여 백엔드 시스템에 등록됩니다.

예를 들어, backstage-plugin-techdocs-backend는 /api/techdocs와 같은 경로를 통해 문서를 제공하는 API 엔드포인트를 노출합니다. 프론트엔드 플러그인은 이 주소로 요청을 보내 필요한 정보를 화면에 그리게 됩니다.


🧐 백엔드 플러그인 vs 프론트엔드 플러그인

비교 항목 프론트엔드 플러그인 백엔드 플러그인
실행 환경 사용자의 브라우저 Node.js 서버
주요 기술 React, TypeScript Node.js, Express, Knex (DB)
핵심 목표 사용자 경험(UX) 및 시각화 데이터 제공, 보안, 시스템 통합
데이터 소스 백엔드 플러그인 API 외부 API, 데이터베이스

🏁 결론: 백엔드 플러그인은 '신뢰할 수 있는 데이터 소스'

Backstage 백엔드 플러그인의 핵심 책임을 한 문장으로 요약하자면 다음과 같습니다.

"외부 시스템의 복잡성을 추상화하여 프론트엔드에 안전하고 표준화된 데이터와 기능을 제공하는 것" 🎯

 

여러분이 새로운 기능을 Backstage에 추가하려 할 때, 그 기능이 데이터 처리가 필요하거나 외부 툴과의 연동이 핵심이라면 그것은 곧 백엔드 플러그인 개발을 의미합니다. 탄탄한 백엔드 플러그인이 있어야만 사용자들에게 끊김 없고 정확한 정보를 제공하는 고품질 개발자 포털을 완성할 수 있습니다!