LabHub

CBA — Backstage 인증 어소시에이트 · 앱 저장소와 플러그인 만들기 · 퀴즈

퀴즈: 앱 저장소와 플러그인

LabHub 에서 이어서 보기

문항 7개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. 각 패키지의 `package.json` 에 있는 `backstage.role` 이 하는 일은?

    1. 그 패키지를 볼 수 있는 사용자 역할을 정한다
    2. backstage-cli 가 그 패키지를 어떻게 빌드하고 테스트할지 정한다
    3. 카탈로그에서 그 패키지의 소유 팀을 정한다
    4. npm 레지스트리에 올릴 때의 접근 수준을 정한다
  2. 새 백엔드 시스템에서 플러그인과 모듈의 차이는?

    1. 플러그인은 유료이고 모듈은 무료다
    2. 플러그인은 백엔드에서, 모듈은 프런트엔드에서 돈다
    3. 모듈이 먼저 등록되어야 플러그인이 뜬다
    4. 플러그인은 기능 하나를 통째로 제공하고, 모듈은 이미 있는 플러그인의 확장점에 끼우는 조각이다
  3. 프런트엔드 플러그인에서 `createRouteRef` 를 `routes.ts` 라는 별도 파일에 두는 이유는?

    1. 페이지 컴포넌트와 플러그인이 서로를 참조하면서 생기는 순환 임포트를 끊기 위해
    2. 라우트 참조는 빌드 시점에 생성되는 파일이라 손으로 못 고치기 때문
    3. 파일 이름이 routes 여야 backstage-cli 가 라우트를 인식하기 때문
    4. 라우트 참조가 백엔드에서도 임포트되어야 하기 때문
  4. 엔티티 페이지에 `EntityLayout.Route` 로 탭을 붙였는데 `App.tsx` 에 라우트를 등록하지 않으면?

    1. 빌드가 실패한다
    2. 탭 자체가 화면에 나타나지 않는다
    3. 탭은 보이는데 눌렀을 때 빈 화면이 뜨고 오류 메시지도 나오지 않는다
    4. 다른 모든 탭까지 함께 사라진다
  5. CI 에서 `yarn install --immutable` 을 쓰는 이유는?

    1. 잠금 파일을 고치지 않겠다는 뜻이라, 의존성이 조용히 올라가는 것을 막는다
    2. 설치 속도가 빨라져 CI 전체 시간이 눈에 띄게 줄어들기 때문에 쓴다
    3. 이 플래그가 있어야 yarn 이 워크스페이스 구조를 인식하기 때문에 쓴다
    4. 취약점이 알려진 패키지를 설치 단계에서 걸러 주기 때문에 쓴다
  6. 루트 `package.json` 의 `workspaces` 에 `plugins/*` 를 넣는 이유는?

    1. 그래야 플러그인이 자동으로 카탈로그에 등록되기 때문
    2. 플러그인 디렉터리를 git 추적에서 제외하기 위해
    3. 그 경로의 코드만 타입 검사에서 빠지기 때문
    4. 사내 플러그인을 레지스트리에 올리지 않고도 앱에서 패키지 이름으로 가져다 쓸 수 있게 하려고
  7. `createRoutableExtension` 에 `mountPoint` 를 주는 이유는?

    1. 번들 크기를 줄이려고 컴포넌트를 미리 압축해 두는 설정 항목이다
    2. 그 확장이 어느 라우트 참조에 붙는 페이지인지를 알려 준다
    3. 그 플러그인이 쓰는 백엔드 엔드포인트의 기본 경로를 정한다
    4. 엔티티 페이지에 붙는 탭의 제목과 아이콘을 함께 정한다