CBA — Backstage 인증 어소시에이트 · 설정 계층과 app-config.yaml · 퀴즈
퀴즈: 설정 계층과 app-config.yaml
문항 7개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
기본 설정에 `catalog.locations` 가 세 건 있고 오버라이드 파일에 한 건을 적었습니다. 병합 결과는?
- 네 건이 된다. 리스트는 이어 붙는다
- 오류가 나서 기동하지 못한다
- 한 건이 된다. 리스트는 합쳐지지 않고 통째로 교체된다
- 세 건이 된다. 오버라이드의 리스트는 무시된다
설정 값에 `${GITHUB_TOKEN}` 처럼 쓰는 주된 이유는?
- 설정 파일은 저장소에 커밋되고 이미지에 구워지므로, 값을 적으면 비밀이 영구히 남기 때문
- YAML 스칼라가 담을 수 있는 문자열 길이에 제한이 있어 토큰을 나눠 넣어야 하기 때문
- 치환 형식으로 쓰면 Backstage 가 그 값을 자동으로 암호화해 보관하기 때문
- 그렇게 써야 프런트엔드 번들에서도 그 값을 읽을 수 있게 되기 때문
환경변수 `APP_CONFIG_backend_listen_port=7007` 을 주면 무슨 일이 일어나나요?
- 무시된다. 설정은 파일로만 바꿀 수 있다
- backend 구획 전체가 이 값으로 교체된다
- 포트 번호가 아니라 로그 수준만 바뀐다
- 설정 경로 `backend.listen.port` 한 자리가 이 값으로 덮인다
`proxy` 구획이 따로 있는 이유로 가장 적절한 것은?
- 외부 API 의 응답을 캐시해 포털 화면이 뜨는 속도를 올리기 위해서
- 프런트엔드가 외부 API 를 직접 부르면 CORS 에 막히고 자격증명을 브라우저에 둬야 하므로
- 여러 클러스터의 접속 정보를 한곳에 모아 두고 관리하기 위해서
- 카탈로그 엔티티를 외부 저장소에서 주기적으로 가져오기 위해서
`catalog.rules` 의 `allow` 목록이 하는 일은?
- 엔티티를 볼 수 있는 사용자 그룹을 정한다
- 카탈로그가 저장소를 다시 읽는 주기를 정한다
- 카탈로그가 받아들일 엔티티 kind 를 정한다. 목록에 없는 kind 는 등록이 거부된다
- 엔티티가 참조할 수 있는 네임스페이스를 정한다
`app-config.local.yaml` 의 성격으로 옳은 것은?
- 개인 노트북에서만 쓰는 덮어쓰기 파일이고 보통 git 에서 제외한다
- 운영 컨테이너가 반드시 포함해야 하는 필수 파일이다
- 기본 설정과 이름이 겹치면 기동이 실패하는 예약 파일이다
- 프런트엔드 전용 설정만 담을 수 있는 파일이다
컨테이너로 배포할 때 `backend.listen.host` 를 `0.0.0.0` 으로 두는 이유는?
- 그래야 데이터베이스 접속이 허용되기 때문
- 그 값이 CORS 검사를 통과시키기 때문
- TechDocs 가 문서를 외부에 올릴 수 있기 때문
- 루프백에만 리슨하면 파드 밖에서 들어오는 요청이 닿지 못하기 때문