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

Backstage 도입의 첫 단추: create-app vs Fork, 당신의 선택은?

by gasbugs 2025. 12. 26.

안녕하세요! 오늘은 Backstage를 도입하려는 분들이 가장 먼저 마주하게 되는 갈림길, 바로 "어떻게 프로젝트를 시작할 것인가?"에 대해 심도 있게 다뤄보겠습니다. 🚀

Backstage는 단순히 다운로드해서 설치하는 소프트웨어가 아니라, 여러분의 조직에 맞게 구축하는 프레임워크입니다. 이때 npx @backstage/create-app을 사용하는 방식과 메인 레포지토리를 Fork하는 방식 중 무엇을 선택하느냐가 향후 운영의 운명을 결정합니다. 💡


🏗️ Backstage 시작하기: 두 가지 길의 정체

1. @backstage/create-app (권장 방식) ✨

이 방식은 React의 create-react-app과 비슷합니다. 명령어를 실행하면 Backstage 프레임워크를 기반으로 한 새로운 독립적인 인스턴스를 생성해 줍니다.

2. Backstage 레포지토리 Fork (개발자 방식) 🍴

GitHub의 공식 Backstage 레포지토리를 자신의 계정으로 복제(Fork)하여 그 안에서 직접 수정하는 방식입니다.


🌟 무엇이 다른가요? 상세 비교 분석

1. 프로젝트의 목적과 구조 📂

  • create-app: 여러분은 '사용자'가 됩니다. 생성된 코드는 최소한의 설정 파일과 커스터마이징 가능한 부분만 포함하고 있으며, 핵심 로직은 @backstage/로 시작하는 라이브러리 패키지 형태로 관리됩니다.
  • Fork: 여러분은 Backstage의 '기여터(Contributor)'와 같은 환경에 놓입니다. 수천 개의 파일이 담긴 전체 소스 코드를 모두 가지게 되며, 프레임워크 자체를 수정하려는 목적이 강합니다.

2. 업데이트 및 유지보수 (가장 큰 차이!) 🔄

  • create-app: backstage-cli versions:bump 명령어 한 번으로 최신 버전 업데이트가 가능합니다. 의존성 패키지 버전만 올리면 되므로 매우 깔끔합니다.
  • Fork: 공식 레포지토리에 수천 개의 커밋이 올라올 때마다 여러분의 포크된 코드와 Merge Conflict(충돌)를 해결해야 합니다. 업데이트가 지옥이 될 수 있습니다. 🌋

3. 빌드 속도와 가벼움 ⚡

  • create-app: 필요한 패키지만 가져오므로 빌드가 빠르고 프로젝트 폴더가 상대적으로 가볍습니다.
  • Fork: 전체 모노레포를 빌드해야 하므로 초기 설정과 빌드 시간이 훨씬 오래 걸립니다.

🤔 어떤 상황에 무엇을 선택해야 할까요?

선택 기준 @backstage/create-app 추천 Fork 추천
일반적인 기업 도입 ✅ 무조건 추천 ❌ 비추천
플러그인 추가 및 설정 ✅ 매우 쉬움 ⚠️ 복잡함
Backstage 코어 기여 ❌ 불가 ✅ 필수
자신만의 프레임워크 개발 ❌ 부적합 ✅ 적합

💡 왜 대부분 create-app을 써야 하나요?

대부분의 기업은 Backstage라는 '도구'를 사용하여 개발자 포털을 만드는 것이 목적이지, Backstage라는 '제품' 자체를 뜯어고치는 것이 목적이 아니기 때문입니다. create-app으로 시작해도 필요한 모든 커스터마이징(UI 변경, 플러그인 추가, API 연동 등)이 완벽하게 가능합니다. 🛠️


🛠️ create-app으로 시작하는 짧은 가이드

이 방식이 승리자라는 것을 알았으니, 어떻게 시작하는지 살짝 맛볼까요?

  1. 명령어 실행: 터미널에서 다음을 입력합니다.
  2. Bash
  3. npx @backstage/create-app@latest
  4. 이름 설정: 앱 이름을 정합니다 (예: my-portal).
  5. 데이터베이스 선택: SQLite(테스트용) 또는 PostgreSQL(운영용)을 선택합니다.
  6. 실행: 생성된 폴더로 이동해 yarn dev를 입력하면 끝! 🎊

🏁 결론: "도구를 사용하세요, 도구와 싸우지 마세요!"

Backstage를 Fork하는 것은 마치 자동차를 운전하고 싶은데 자동차 공장의 모든 설계도와 조립 라인을 통째로 복사해오는 것과 같습니다. 단순히 운전(개발자 포털 운영)이 목적이라면 @backstage/create-app이라는 열쇠를 받아 시동만 거는 것이 현명합니다. 🏎️

여러분의 에너지는 코드 충돌 해결이 아닌, 개발자 경험(DevEx)을 개선하는 플러그인 개발에 쏟으시길 바랍니다!