본문 바로가기
WIKI 기술 지식 베이스

Search 아키텍처

원문 보기 위키 갱신

Backstage 검색 기능의 아키텍처를 소개하는 문서예요.

출처: 문서

본문

아래에서 Search 아키텍처를 살펴볼 수 있어요. 이 아키텍처의 목표는 다양한 검색 엔진을 지원하면서, 플러그인 개발자에게는 단순한 개발 경험을, Backstage 최종 사용자에게는 좋은 기본 경험(out-of-the-box)을 제공하는 것이에요.

기본 수준에서 우리가 지원하고자 하는 것은 다음과 같아요.

  • Backstage 생태계 전체(소프트웨어 카탈로그의 엔티티뿐 아니라)를 검색할 수 있는 기능을 제공하는 것을 목표로 해요. 검색 가능 콘텐츠가 소프트웨어 카탈로그와 직접적인 관련이 있을 필요는 없지만, 관례적으로 잘 알려진 필드 이름이나 속성을 사용해 느슨한 관계를 장려할 수 있어요.

  • 핵심 검색 플러그인과 검색 엔진별 로직 사이에 통합·변환 계층을 제공해서, 어떤 검색 엔진으로든 Backstage를 배포할 수 있는 기능을 제공하는 것을 목표로 해요. 이 계층은 다른 검색 엔진을 위해 확장할 수 있답니다. 또한 더 단순한 사용자 지정을 위해 백엔드 API 엔드포인트를 사용자 지정 엔드포인트로 교체하는 기능도 도입할 수 있어요.

이 아키텍처로 지원하고자 하는 더 고급 사용 사례는 다음과 같아요.

  • 어떤 플러그인이든 검색에 새 콘텐츠를 노출할 수 있어야 해요. (예: 엔티티 메타데이터, TechDocs의 문서)

  • 어떤 플러그인이든 검색의 기존 콘텐츠에 관련 메타데이터를 추가할 수 있어야 해요. (예: TechDocs 페이지의 위치(path))

  • 검색 쿼리를 정제할 수 있어야 해요. (예: 랭킹, 스코어링 등)

  • 검색 UI를 사용자 지정할 수 있어야 해요.

  • 어떤 Backstage 플러그인이나 배포에든 검색 기능을 추가할 수 있어야 해요.

아키텍처의 비목표(non-goals)는 다음과 같아요.

  • 현재 시점에서는 이벤트 기반 또는 증분 인덱스 관리를 직접 지원할 생각은 없어요. 대신 예약된 일괄(bulk) 인덱스 관리에 집중할 거예요.

Tech Stack (기술 스택)

Stack Location
Frontend Plugin @backstage/plugin-search
Frontend Plugin Library @backstage/plugin-search-react
Isomorphic Plugin Library @backstage/plugin-search-common
Backend Plugin @backstage/plugin-search-backend
Backend Plugin Library @backstage/plugin-search-backend-node
Backend Plugin Module @backstage/plugin-search-backend-module-elasticsearch
Backend Plugin Module @backstage/plugin-search-backend-module-pg

더 알아보기 (Learn more)