# Visual Summary 이해도 퀴즈 50문항

> **이 문서의 역할** 강의 내용을 실제 사례에 적용하는 연습이다. 규약의 SSoT가 아니다.
> **오너** 미지정 · **상태** DRAFT · **최종 갱신** 2026-09-20
> **관련** [강의자료](./lecture.md) · [자동 채점 학습 페이지](./learning.html)

모든 문항은 한 개의 정답을 고른다. 코드 문항은 강의자료에 기록한 2026-09-20 로컬 상태를 기준으로 한다. 문항당 2점, 총 100점이다. 점수는 이 자료의 자기 점검용이며 검증된 숙련도 기준이 아니다.

정답을 고른 다음 접힌 해설을 연다. 오답이면 정답을 외우기보다 왜 다른 선택지가 맞지 않는지 말로 설명한다. 출처는 각 복습 절과 강의자료 14절에 있다.

## 1. Visual Summary YAML의 가장 정확한 역할은 무엇인가?

- **A.** 디자인의 썸네일 목록
- **B.** 검색과 대치가 읽을 수 있도록 내용과 표현 선택을 구조화한 데이터
- **C.** 완성된 슬라이드 이미지
- **D.** 모든 글상자의 좌표만 모은 파일

<details>
<summary>정답과 해설</summary>

**정답: B. 검색과 대치가 읽을 수 있도록 내용과 표현 선택을 구조화한 데이터**

Visual Summary에는 원하는 종류와 내용, 표현 속성 등이 담긴다. 실제 디자인을 찾고 대치하는 후속 단계가 필요하다.

복습: [강의 1강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 2. 과학 발표회 예제에서 '4월'과 '가로 방향'을 바르게 구분한 것은?

- **A.** 4월은 표현 속성이고 가로 방향은 내용이다
- **B.** 둘 다 내용이다
- **C.** 둘 다 표현 속성이다
- **D.** 4월은 내용이고 가로 방향은 표현 속성이다

<details>
<summary>정답과 해설</summary>

**정답: D. 4월은 내용이고 가로 방향은 표현 속성이다**

4월을 빼면 전달할 사실이 줄어든다. 가로 방향은 같은 사실을 어떻게 배치할지 정하는 선택이다.

복습: [강의 2강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 3. 명세의 type 규칙으로 맞는 것은?

- **A.** 적힌 타입은 무조건 최종 디자인에 사용해야 한다
- **B.** 생성기가 반드시 적지만 검색에서 fallback할 수 있다
- **C.** 적어도 되고 안 적어도 된다
- **D.** 검색기가 반드시 처음부터 새로 고른다

<details>
<summary>정답과 해설</summary>

**정답: B. 생성기가 반드시 적지만 검색에서 fallback할 수 있다**

작성 의무와 채택 의무는 다르다. type은 필수지만 성립 조건과 후보 공급에 따라 바뀔 수 있다.

복습: [강의 2강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 4. Content Threading이 적용되는 카테고리와, 그때 깨지는 전제는?

- **A.** 모든 카테고리에 적용되고 전제는 그대로다
- **B.** Enumeration.List와 QnACard.QnACard 둘뿐이며, '결과 하나가 페이지 하나'라는 전제가 깨진다
- **C.** 표와 차트 카테고리에만 적용되고 슬롯 수 상한이 사라진다
- **D.** Timeline 계열에만 적용되고 fallback이 비활성화된다

<details>
<summary>정답과 해설</summary>

**정답: B. Enumeration.List와 QnACard.QnACard 둘뿐이며, '결과 하나가 페이지 하나'라는 전제가 깨진다**

지금 적용 대상은 Enumeration.List와 QnACard.QnACard 둘뿐이다. threading 결과는 여러 장을 소유하므로 결과 하나가 페이지 하나라는 전제가 깨진다. 위쪽의 binding과 blank 목록은 그 결과의 첫 페이지만 설명한다.

복습: [강의 10강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 5. YAML의 entities 배열에 든 label과 items를 어떻게 읽는가?

- **A.** label은 노드 좌표이고 items는 너비다
- **B.** label은 글꼴이고 items는 색상이다
- **C.** label은 항목 이름이고 items는 상세 내용이다
- **D.** 둘 다 디자인 ID다

<details>
<summary>정답과 해설</summary>

**정답: C. label은 항목 이름이고 items는 상세 내용이다**

질의 YAML에서 label과 items는 실제 전달할 내용이다. 색인 쪽 구조 대응의 노드 ID와 구분한다.

복습: [강의 2강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 6. 사용자 YAML의 structure와 IIS 결과의 structure는 어떤 관계인가?

- **A.** 둘 다 글상자의 좌표만 담는다
- **B.** 하나는 버전이고 하나는 카테고리다
- **C.** 전자는 내용이고 후자는 내용 필드와 노드의 구조 대응이다
- **D.** 항상 똑같은 글이 들어 있다

<details>
<summary>정답과 해설</summary>

**정답: C. 전자는 내용이고 후자는 내용 필드와 노드의 구조 대응이다**

예를 들어 질의 label은 '실험'이고 IIS 구조 대응의 label 값은 그 내용을 넣을 노드 ID다.

복습: [강의 3강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 7. params와 properties의 관계로 가장 정확한 것은?

- **A.** 같은 객체이므로 대조할 필요가 없다
- **B.** params는 글이고 properties는 이미지다
- **C.** params는 요청한 표현 속성, properties는 기존 디자인에서 추출한 표현 속성이다
- **D.** 둘 다 글상자 ID다

<details>
<summary>정답과 해설</summary>

**정답: C. params는 요청한 표현 속성, properties는 기존 디자인에서 추출한 표현 속성이다**

어휘를 공유할 수 있지만 한쪽은 요청이고 다른 쪽은 후보에서 확인한 특성이다. 값이 맞는지 별도 비교한다.

복습: [강의 3강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 8. Frame에서 질의 슬롯과 후보 슬롯에 주로 들어가는 정보는?

- **A.** 질의는 넣을 글, 후보는 노드 위치와 용량을 담는다
- **B.** 둘 다 썸네일만 담는다
- **C.** 질의는 좌표, 후보는 사용자 글만 담는다
- **D.** 질의는 비용, 후보는 tier만 담는다

<details>
<summary>정답과 해설</summary>

**정답: A. 질의는 넣을 글, 후보는 노드 위치와 용량을 담는다**

공통 형식으로 만들어야 사용자의 내용 요구와 디자인의 수용 가능한 자리를 서로 비교할 수 있다.

복습: [강의 3강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 9. 현재 comp-frame에서 tier 1을 만드는 주된 기준은?

- **A.** 모든 카테고리를 가나다순으로 넣는다
- **B.** YAML의 type 중 성립 조건을 통과한 카테고리를 넣는다
- **C.** List만 넣는다
- **D.** cost가 낮은 디자인 10개를 넣는다

<details>
<summary>정답과 해설</summary>

**정답: B. YAML의 type 중 성립 조건을 통과한 카테고리를 넣는다**

buildTiersFor는 type의 성립 여부를 확인한다. 이 단계의 tier는 실제 디자인 결과가 아니라 검색할 카테고리 군이다.

복습: [강의 4강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 10. 현재 코드에서 alternatives를 YAML에 적으면 어떻게 되는가?

- **A.** 파싱할 수 있지만 buildTiersFor의 검색에는 반영하지 않는다
- **B.** 자동으로 tier 1 검색이 늘어난다
- **C.** 항상 파싱 오류가 난다
- **D.** tier 3를 무조건 대체한다

<details>
<summary>정답과 해설</summary>

**정답: A. 파싱할 수 있지만 buildTiersFor의 검색에는 반영하지 않는다**

명세의 alternatives와 현행 구현을 구분해야 한다. 현재 검색 코드는 alternatives를 읽지 않는다.

복습: [강의 4강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 11. 랭킹 감점 항목의 수와 튜닝 상태를 바르게 말한 것은?

- **A.** 16개이고 전부 실측으로 조정됐다
- **B.** 16개이고 전부 초기값이다
- **C.** 20개이고 그중 일곱만 전수 실측으로 조정됐으며 나머지는 초기값이다
- **D.** 20개이고 전부 초기값이라 우열을 말할 수 없다

<details>
<summary>정답과 해설</summary>

**정답: C. 20개이고 그중 일곱만 전수 실측으로 조정됐으며 나머지는 초기값이다**

현재 감점 항목은 20개다. 그중 일곱은 2026-09-15 전수 실측으로 조정됐고 나머지 열셋은 초기값 그대로다. 다만 그 실측도 하나의 대리 지표를 본 것이고 comp-sign과의 직접 비교 실험은 없으므로, 우열을 단정하지 않는다는 결론 자체는 유지된다.

복습: [강의 10강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 12. 현재 코드의 tier 2를 바르게 설명한 것은?

- **A.** 원래 type의 fallback 행에서 변환 후 성립하는 카테고리를 순서대로 넣는다
- **B.** 원래 type만 반복 검색한다
- **C.** 모든 카테고리의 fallback 행을 무한히 합친다
- **D.** fallback을 정확히 한 번 거친 디자인만 모은다

<details>
<summary>정답과 해설</summary>

**정답: A. 원래 type의 fallback 행에서 변환 후 성립하는 카테고리를 순서대로 넣는다**

tier 2 안에 카테고리가 여러 개 들어갈 수 있다. 도착 카테고리의 행으로 갈아타는 방식이 아니다.

복습: [강의 4강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 13. Timeline 3항목의 tier 2에 List가 이미 있다. 마지막 대안도 List라면 tier 3는?

- **A.** 중복 제거로 비어 있을 수 있다
- **B.** List를 두 번 더 넣는다
- **C.** 항상 Gauge로 바뀐다
- **D.** 입력을 오류로 처리한다

<details>
<summary>정답과 해설</summary>

**정답: A. 중복 제거로 비어 있을 수 있다**

buildTiersFor는 seen으로 같은 카테고리를 중복 추가하지 않는다. tier 3가 없다고 마지막 대안을 빠뜨린 것은 아니다.

복습: [강의 4강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 14. stage를 0에서 2로 낮추면 모든 모양 조건이 느슨해지는가?

- **A.** 그렇다. 모든 비트가 풀린다
- **B.** 아니다. 소프트닝 대상은 앞쪽 비트들뿐이고 dataset과 extraGrids 비트는 하드 필터로 남는다
- **C.** 아니다. stage는 모양이 아니라 용량만 조정한다
- **D.** 그렇다. 다만 tier가 함께 내려가야 한다

<details>
<summary>정답과 해설</summary>

**정답: B. 아니다. 소프트닝 대상은 앞쪽 비트들뿐이고 dataset과 extraGrids 비트는 하드 필터로 남는다**

소프트닝 대상은 앞쪽 17개 비트뿐이다. dataset(measure·matrix)과 extraGrids 비트는 stage를 내려도 풀리지 않는다. 표·차트 데이터를 요구하는 질의에서 데이터가 없는 후보는 stage 2까지 내려가도 올라오지 않는다.

복습: [강의 10강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 15. 항목 하나를 ProcessFlow.Steps로 요청했다. Steps가 둘 이상을 요구한다면?

- **A.** 필수 내용이 없어도 무조건 Steps를 검색한다
- **B.** 빈 두 번째 항목을 몰래 추가한다
- **C.** 성립 검사에서 해당 카테고리가 탈락하고 대안을 검토한다
- **D.** 항목 하나를 복제해서 둘로 만든다

<details>
<summary>정답과 해설</summary>

**정답: C. 성립 검사에서 해당 카테고리가 탈락하고 대안을 검토한다**

type 이름만으로 성립하지 않는다. 카테고리의 개수와 내용 조건을 확인하며 내용을 임의로 늘리지 않는다.

복습: [강의 5강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 16. DB에서 후보 100개를 가져왔지만 용량과 내용 검사에서 모두 탈락했다. 하강 판단은?

- **A.** 가장 큰 디자인 하나를 무조건 반환한다
- **B.** 100개를 확보했으니 무조건 중단한다
- **C.** 실제 통과 후보가 없으므로 다음 검색을 계속할 수 있다
- **D.** DB가 고장 났다고 본다

<details>
<summary>정답과 해설</summary>

**정답: C. 실제 통과 후보가 없으므로 다음 검색을 계속할 수 있다**

조회 수와 대치 가능한 후보 수는 다르다. 현행 코드는 admittedCount를 사용해 충분한 후보를 확보했는지 판단한다.

복습: [강의 5강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 17. 기본 설정에서 tier 1 처리 후 통과 후보가 20개다. '0개가 아니니 fallback은 불가능하다'는 말은?

- **A.** type이 List인 경우에만 맞다
- **B.** 틀리다. 하강 기준에 모자라면 다음 tier를 시도할 수 있다
- **C.** alternatives가 없으면 맞다
- **D.** 맞다

<details>
<summary>정답과 해설</summary>

**정답: B. 틀리다. 하강 기준에 모자라면 다음 tier를 시도할 수 있다**

기본 tier_targets는 [50, 50]이다. 검색은 0개 여부만 보지 않는다. 단 실제 실행은 다른 중단 조건과 공급도 함께 따른다.

복습: [강의 5강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 18. Timeline → Steps를 검토한 뒤 Steps의 fallback 행으로 갈아타는가?

- **A.** steps라는 단어가 있으니 두 칸 건너뛴다
- **B.** 현재 buildTiersFor는 원래 Timeline의 자기 fallback 행을 따른다
- **C.** LLM에게 다시 물어본다
- **D.** 항상 갈아탄다

<details>
<summary>정답과 해설</summary>

**정답: B. 현재 buildTiersFor는 원래 Timeline의 자기 fallback 행을 따른다**

원래 요청 카테고리의 선언된 행을 소비한다. 임의 그래프 탐색과 현재 구현을 혼동하지 않는다.

복습: [강의 5강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 19. fallback과 structure projection의 관계는?

- **A.** projection은 언제나 이미지 확대다
- **B.** 둘 다 DB 이름이다
- **C.** fallback은 대체 표현 선택, projection은 그 표현에 맞는 데이터 변환이다
- **D.** fallback이 있으면 projection은 불필요하다

<details>
<summary>정답과 해설</summary>

**정답: C. fallback은 대체 표현 선택, projection은 그 표현에 맞는 데이터 변환이다**

카테고리만 바꾸면 도착 카테고리가 읽지 못하는 내용이 생길 수 있다. 그 내용을 옮기는 규칙이 필요하다.

복습: [강의 6강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 20. Timeline의 period: 4월을 읽지 않는 카테고리로 바꿀 때 P3의 처리는?

- **A.** 날짜 삭제
- **B.** params.orientation에 날짜 저장
- **C.** 임의의 새 날짜 생성
- **D.** 해당 항목의 items에 날짜를 텍스트로 옮김

<details>
<summary>정답과 해설</summary>

**정답: D. 해당 항목의 items에 날짜를 텍스트로 옮김**

전용 날짜 표현을 잃더라도 날짜라는 내용은 남긴다. 삭제와 표현 변경을 구분한다.

복습: [강의 6강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 21. 중첩 사다리에서 N1의 현재 실제 상태는?

- **A.** 가장 많은 후보를 내는 단계다
- **B.** 사다리에 있지만 후보가 0이라 실제로는 언제나 비어 있고, 이종 질의는 사실상 N3부터 시작한다
- **C.** 코드에서 삭제됐다
- **D.** Hierarchy 부모일 때만 동작한다

<details>
<summary>정답과 해설</summary>

**정답: B. 사다리에 있지만 후보가 0이라 실제로는 언제나 비어 있고, 이종 질의는 사실상 N3부터 시작한다**

이종중첩 템플릿이 검색 풀에서 빠져 있어 N1은 후보를 0개 낸다. 사다리에 단계가 적혀 있다는 것과 그 단계가 후보를 낸다는 것은 다른 주장이다. 되돌릴지는 아직 열린 결정이다.

복습: [강의 11강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 22. P4가 표 데이터를 일반 항목으로 바꿀 때 맞는 설명은?

- **A.** 첫 행만 남긴다
- **B.** 표를 이미지로 캡처한다
- **C.** 숫자는 모두 버린다
- **D.** 행별 entity를 만들고 첫 열을 label, 나머지 열 내용을 items로 옮긴다

<details>
<summary>정답과 해설</summary>

**정답: D. 행별 entity를 만들고 첫 열을 label, 나머지 열 내용을 items로 옮긴다**

표의 시각적 구조 대신 내용을 텍스트로 보존한다. 현행 adapter에는 열 제목과 단위 등 보존을 보완하는 처리도 있다.

복습: [강의 6강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 23. 카테고리의 개수 상한을 넘으면 마지막 항목에 초과분을 접어 성립시키는 P8은?

- **A.** 현재 모든 카테고리의 필수 규칙이다
- **B.** 폐기됐다. 그 카테고리를 탈락시키고 대안을 찾는다
- **C.** alternatives가 있을 때만 자동 부활한다
- **D.** stage 0의 다른 이름이다

<details>
<summary>정답과 해설</summary>

**정답: B. 폐기됐다. 그 카테고리를 탈락시키고 대안을 찾는다**

P8 폐기는 성립 조건을 억지로 맞추는 처리를 없앤 것이다. align에서 상세 내용을 슬롯에 합치는 모든 처리의 금지는 아니다.

복습: [강의 6강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 24. 여러 수치가 든 matrix를 마음대로 measure 하나로 줄이면 안 되는 주된 이유는?

- **A.** 검색 tier가 네 개로 늘어나서
- **B.** YAML은 숫자를 지원하지 않아서
- **C.** IIS는 표를 전혀 읽지 못해서
- **D.** 정보를 잃거나 원본에 없는 대표값 의미를 만들 수 있어서

<details>
<summary>정답과 해설</summary>

**정답: D. 정보를 잃거나 원본에 없는 대표값 의미를 만들 수 있어서**

명세는 measure와 matrix 사이의 임의 projection을 두지 않기로 했다. 수치가 있다는 공통점만으로 동등한 표현이 되지 않는다.

복습: [강의 6강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 25. property projection의 질문에 더 가까운 것은?

- **A.** 어떤 문서 제목을 지을까?
- **B.** 표의 행을 items로 옮길까?
- **C.** DB에 몇 행이 있을까?
- **D.** 요청한 계단 방향과 후보의 방향 차이를 어떻게 처리할까?

<details>
<summary>정답과 해설</summary>

**정답: D. 요청한 계단 방향과 후보의 방향 차이를 어떻게 처리할까?**

property projection은 표현 속성의 대응을 다룬다. 표를 글로 바꾸는 것은 structure projection이다.

복습: [강의 6강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 26. L1, L2, L3의 관계와 생성기 현황을 바르게 말한 것은?

- **A.** 서로 배타적인 세 모양이고 생성기는 모두 L1만 낸다
- **B.** 누적 관계이며 가르는 축은 entity.components를 쓰느냐다. 실서비스 생성기는 L2까지, PoC 생성기는 이미 L3를 낸다
- **C.** 누적 관계이고 두 생성기 모두 L3를 낸다
- **D.** 레벨은 검색 결과의 개수를 뜻한다

<details>
<summary>정답과 해설</summary>

**정답: B. 누적 관계이며 가르는 축은 entity.components를 쓰느냐다. 실서비스 생성기는 L2까지, PoC 생성기는 이미 L3를 낸다**

L1 ⊂ L2 ⊂ L3인 누적 관계이고, 가르는 축은 컴포넌트 경계를 넘는 계층 entity.components를 쓰느냐 하나다. 실서비스 생성기는 L2까지이고 PoC 생성기는 이미 L3를 낸다. 그래서 'L3는 자리만 열려 있다'는 설명은 생성 쪽에는 더 이상 맞지 않는다.

복습: [강의 11강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 27. IIS boundary가 직접 답하는 핵심 질문은?

- **A.** 검색 결과를 몇 장 인쇄할까?
- **B.** 새 문장의 글꼴을 몇 pt로 할까?
- **C.** 모든 글상자에 새 글을 어떻게 넣을까?
- **D.** 어느 노드 묶음이 어떤 의미 카테고리의 컴포넌트인가?

<details>
<summary>정답과 해설</summary>

**정답: D. 어느 노드 묶음이 어떤 의미 카테고리의 컴포넌트인가?**

경계 판정은 묶음과 카테고리를 정한다. 내부 label/items의 구체적인 노드 대응은 별도 정보다.

복습: [강의 7강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 28. I.I.S. (Semantic Component Property)의 산출물 두 가지는?

- **A.** 표현 속성 properties와 노드별 구조 대응 structure
- **B.** tier와 stage
- **C.** 이미지와 오디오
- **D.** 사용자 비밀번호와 접속 기록

<details>
<summary>정답과 해설</summary>

**정답: A. 표현 속성 properties와 노드별 구조 대응 structure**

이 국면 이름에서 Property는 넓은 뜻이다. properties라는 필드 하나만 추출한다고 이해하면 구조 대응을 놓친다.

복습: [강의 8강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 29. IIS 구조 대응에 label: text-11이라고 적힌 의미는?

- **A.** 사용자에게 text-11이라는 글을 보여 달라는 뜻
- **B.** tier 11이라는 뜻
- **C.** 컴포넌트가 11개라는 뜻
- **D.** 해당 label 내용을 받을 노드가 text-11이라는 뜻

<details>
<summary>정답과 해설</summary>

**정답: D. 해당 label 내용을 받을 노드가 text-11이라는 뜻**

색인 쪽 구조 대응의 값은 위치 참조다. 질의 쪽의 실제 label 내용과 결합해 binding을 만든다.

복습: [강의 8강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 30. 대치 후 남은 '사용자 글이 아닌 자리'에 대한 2026-09 실측 결과는?

- **A.** judge 판정과 사용자 채택 모두 뚜렷하게 나빠진다
- **B.** judge 판정에는 사실상 영향이 없는데 사용자 채택 확률은 낮아진다
- **C.** judge 판정만 나빠지고 사용자 채택은 영향이 없다
- **D.** 둘 다 영향이 없어 잔여를 줄일 이유가 없다

<details>
<summary>정답과 해설</summary>

**정답: B. judge 판정에는 사실상 영향이 없는데 사용자 채택 확률은 낮아진다**

judge BAD에 주는 효과는 오즈비 1.012로 동등성 범위 안이었고, 카드 채택에 주는 효과는 오즈비 0.688로 고를 확률이 약 31% 낮았다. 그래서 잔여를 줄이는 이유는 judge 점수가 아니라 채택률이다. 이 값은 규약이 아니라 도입 판단용 실측이다.

복습: [강의 10강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 31. 구조 대응은 있지만 후보의 properties가 비었다. 무조건 내용 대치 불가인가?

- **A.** 아니다. 글을 넣을 슬롯은 알 수 있고 속성 누락은 별도 처리한다
- **B.** type을 제거해야 한다
- **C.** 그렇다. 아무 글도 넣을 수 없다
- **D.** 모든 노드를 삭제해야 한다

<details>
<summary>정답과 해설</summary>

**정답: A. 아니다. 글을 넣을 슬롯은 알 수 있고 속성 누락은 별도 처리한다**

표현 속성의 부재와 구조 대응의 부재를 구분한다. 코드도 missingOnComponent를 명시적 충돌과 다르게 센다.

복습: [강의 9강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 32. IIS structure가 없거나 IIS Frame 생성이 실패한 경우 현행 적재 코드의 보완 경로는?

- **A.** 모든 카테고리를 Gauge로 만든다
- **B.** IIS가 끝날 때까지 모든 기능을 영구 중단한다
- **C.** buildRuleFrame으로 RLSC 기반 슬롯 생성을 시도한다
- **D.** 사용자 YAML을 무조건 삭제한다

<details>
<summary>정답과 해설</summary>

**정답: C. buildRuleFrame으로 RLSC 기반 슬롯 생성을 시도한다**

build-comp-frames.ts에 규칙 기반 Frame 분기가 있다. 보완 가능성과 의미적 정확성 보장은 다르다.

복습: [강의 9강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 33. 처음부터 Steps YAML을 생성하면서 날짜가 필요하다면 어떤 방식이 명세 취지에 맞는가?

- **A.** Steps가 읽지 않는 period에만 넣고 자동 보존을 기대한다
- **B.** orientation: 4월로 적는다
- **C.** 날짜는 중요하지 않으니 버린다
- **D.** 읽는 내용 필드인 items 등에 날짜를 적는다

<details>
<summary>정답과 해설</summary>

**정답: D. 읽는 내용 필드인 items 등에 날짜를 적는다**

B-33은 생성기가 해당 카테고리가 읽는 필드에 내용을 쓰도록 한다. 처음부터 그 카테고리이면 fallback P3이 반드시 실행되는 것은 아니다.

복습: [강의 9강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 34. 경계 안에 글상자가 보이지만 Frame 슬롯에 매핑되지 않았다. 왜 아무 사용자 글이나 넣지 않는가?

- **A.** 글상자에 글을 넣는 기술이 없어서
- **B.** tier가 항상 막아서
- **C.** 제목, 날짜, 설명 중 어떤 역할인지와 대응할 내용이 확정되지 않았기 때문에
- **D.** IIS는 한글을 지원하지 않아서

<details>
<summary>정답과 해설</summary>

**정답: C. 제목, 날짜, 설명 중 어떤 역할인지와 대응할 내용이 확정되지 않았기 때문에**

존재하는 위치와 의미가 맞는 위치는 다르다. 임의 대치는 내용을 잘못 연결할 수 있다.

복습: [강의 9강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 35. 'uuid가 없는 검색 결과는 거부된다'는 설명에서 거부가 실제로 일어나는 자리는?

- **A.** 로컬 검색 엔진이 결과를 만들 때
- **B.** 배포 패키지 경계에서 한 번이다. 로컬 검색은 uuid가 null인 결과를 그대로 돌려준다
- **C.** 데이터베이스 조회 단계에서만
- **D.** 화면이 카드를 그릴 때

<details>
<summary>정답과 해설</summary>

**정답: B. 배포 패키지 경계에서 한 번이다. 로컬 검색은 uuid가 null인 결과를 그대로 돌려준다**

거부는 배포 패키지의 변환 함수 한 자리에서 일어난다. 로컬 검색은 uuid가 null인 결과를 정상으로 돌려준다. 진짜 방어선은 더 위쪽이다 — 적재 단계가 uuid를 못 푼 대상을 색인하지 않고 DB 컬럼에도 제약이 걸려 있다.

복습: [강의 13강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 36. 로컬 대치에서 blank와 preserve의 차이는?

- **A.** blank는 채울 글이 없는 슬롯이며 보존 예외 외에는 임시 문구 대상, preserve는 원문 유지다
- **B.** blank는 경계 밖 글이라는 뜻이다
- **C.** 둘 다 무조건 원문 삭제다
- **D.** 둘 다 검색할 카테고리다

<details>
<summary>정답과 해설</summary>

**정답: A. blank는 채울 글이 없는 슬롯이며 보존 예외 외에는 임시 문구 대상, preserve는 원문 유지다**

이름이 blank라고 실제 화면에 항상 빈 문자열을 넣는 것은 아니다. resultMaps의 임시 문구와 보존 처리를 확인한다.

복습: [강의 9강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 37. 선택한 경계 밖의 원문은 로컬 대치에서 일반적으로 어떻게 처리하는가?

- **A.** 원문을 유지한다. 다만 문서 제목을 외부 제목 후보에 넣는 예외가 있다
- **B.** 전부 임시 문구로 바꾼다
- **C.** 전부 삭제한다
- **D.** 새 내용을 반복해 채운다

<details>
<summary>정답과 해설</summary>

**정답: A. 원문을 유지한다. 다만 문서 제목을 외부 제목 후보에 넣는 예외가 있다**

경계 밖 원문 보존과 외부 제목 채움 예외를 함께 알아야 한다. 내부 미매핑 잔여의 처리와도 다르다.

복습: [강의 9강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 38. 새 내용의 일부를 어떤 슬롯에도 담을 수 없어 contentLoss > 0이 되었다. 현재 랭커는?

- **A.** cost를 0으로 만든다
- **B.** 잃은 글을 숨기고 성공으로 반환한다
- **C.** 내용을 무작위로 바꾼다
- **D.** 그 후보를 제외한다

<details>
<summary>정답과 해설</summary>

**정답: D. 그 후보를 제외한다**

rankCandidates는 contentLoss를 확인해 후보를 제외한다. 내용 손실을 단순히 보기 좋은 결과와 맞바꾸는 성공 경로로 두지 않는다.

복습: [강의 9강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 39. 검색 중 align을 먼저 실행해 보는 이유는?

- **A.** 검색 전에 모든 썸네일을 인쇄하려고
- **B.** 원격 서버의 버전을 올리려고
- **C.** 후보가 실제로 새 내용을 받을 수 있는지 확인하기 위해서
- **D.** YAML을 이미지로 바꾸려고

<details>
<summary>정답과 해설</summary>

**정답: C. 후보가 실제로 새 내용을 받을 수 있는지 확인하기 위해서**

카테고리만 맞아도 슬롯 수, 필드 대응, 용량 때문에 대치가 실패할 수 있다. 통과 후보 수를 제대로 세려면 이 확인이 필요하다.

복습: [강의 10강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 40. tier와 stage를 바르게 구분한 것은?

- **A.** 둘 다 중첩 깊이다
- **B.** 둘 다 카테고리 순위다
- **C.** stage 2는 tier 2의 다른 이름이다
- **D.** tier는 카테고리 우선순위 군, stage는 같은 카테고리 안의 모양 조건 완화 단계다

<details>
<summary>정답과 해설</summary>

**정답: D. tier는 카테고리 우선순위 군, stage는 같은 카테고리 안의 모양 조건 완화 단계다**

현행 stage는 shape bits 차이 0, 1, 2를 다룬다. 그와 별도로 tier가 어떤 카테고리를 검색할지 정한다.

복습: [강의 10강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 41. stage 0에서 찾은 후보이면 글 용량과 의미까지 완벽히 일치한다고 볼 수 있는가?

- **A.** 아니다. shape bits 일치 뒤에도 슬롯 대응과 용량 등을 확인한다
- **B.** 텍스트가 한글일 때만 그렇다
- **C.** tier 1이면 항상 그렇다
- **D.** 그렇다. 후속 검사는 필요 없다

<details>
<summary>정답과 해설</summary>

**정답: A. 아니다. shape bits 일치 뒤에도 슬롯 대응과 용량 등을 확인한다**

shape bits는 특징의 존재 여부를 요약한 검색 조건이다. 전체 디자인과 내용 적합성의 완전한 증명이 아니다.

복습: [강의 10강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 42. 기본 clean_first: above_tier에서 이미 조회된 두 후보 중 tier 2가 tier 1보다 앞설 수 있는 상황은?

- **A.** tier 2는 unauthored_count가 0이고 tier 1에는 잔여가 있을 때
- **B.** 항상 tier 2가 먼저다
- **C.** tier 2라는 숫자가 더 커서
- **D.** 어떤 상황에서도 불가능하다

<details>
<summary>정답과 해설</summary>

**정답: A. tier 2는 unauthored_count가 0이고 tier 1에는 잔여가 있을 때**

현재 기본 비교는 온전함 기준을 tier보다 먼저 본다. 그러나 이 기준이 모든 시각 품질을 보장하지는 않는다.

복습: [강의 10강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 43. comp-frame 코드의 자리와 fork 경계를 바르게 말한 것은?

- **A.** packages/comp-frame 한 곳에 모여 있다
- **B.** 질의 코어는 src/comp-frame에 있고 패키지는 shared·index·client 셋으로 나뉘며, comp-sign 조각은 forked로 복사해 직접 import를 막는다
- **C.** 전부 패키지 안에 있고 src에는 화면만 있다
- **D.** comp-sign을 직접 import해서 쓴다

<details>
<summary>정답과 해설</summary>

**정답: B. 질의 코어는 src/comp-frame에 있고 패키지는 shared·index·client 셋으로 나뉘며, comp-sign 조각은 forked로 복사해 직접 import를 막는다**

packages/comp-frame이라는 디렉터리는 없다. 질의 측 알고리즘 코어는 src/comp-frame에 있고 패키지는 comp-frame-shared·comp-frame-index·comp-frame-client 셋이다. comp-sign과 comp-match를 직접 import하지 않으려고 필요한 조각을 forked로 복사했고, 문자열 검사 테스트가 네 군데에서 이를 지킨다.

복습: [강의 13강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 44. L2와 L3를 구분하는 핵심은?

- **A.** L2는 최상위 블록 병치까지, L3는 entity 안의 컴포넌트 중첩까지 허용한다
- **B.** L2는 tier 2, L3는 tier 3다
- **C.** L3는 언제나 블록 세 개다
- **D.** L2는 숫자, L3는 글만 쓴다

<details>
<summary>정답과 해설</summary>

**정답: A. L2는 최상위 블록 병치까지, L3는 entity 안의 컴포넌트 중첩까지 허용한다**

L1~L3는 생성기의 구조 복잡도 허용 범위다. 검색 tier나 고정 개수가 아니다.

복습: [강의 11강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 45. N2를 N3보다 먼저 시도하는 이유는?

- **A.** 항목을 먼저 삭제하기 위해서
- **B.** 구조를 유지한 채 표현을 바꾸는 시도를 부모를 벗겨 구조를 바꾸는 시도보다 먼저 하기 위해서
- **C.** N3가 구현되지 않았기 때문에
- **D.** N2가 언제나 빠르기 때문에

<details>
<summary>정답과 해설</summary>

**정답: B. 구조를 유지한 채 표현을 바꾸는 시도를 부모를 벗겨 구조를 바꾸는 시도보다 먼저 하기 위해서**

N2는 중첩 모양을 유지한다. 바로 부모를 벗기는 것보다 카테고리 표현만 바꾸는 쪽을 먼저 검토한다.

복습: [강의 11강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 46. 회사 → 부서 → 직원인 Hierarchy 부모가 N1/N2에서 실패했다. 현행 명세의 다음 방향은?

- **A.** 반드시 N3로 회사부터 벗긴다
- **B.** 직원만 남기고 나머지를 삭제한다
- **C.** 임의의 부모를 추가한다
- **D.** N3를 건너뛰고 N5 평탄화로 계층 내용을 보존한다

<details>
<summary>정답과 해설</summary>

**정답: D. N3를 건너뛰고 N5 평탄화로 계층 내용을 보존한다**

Hierarchy의 부모 벗기기는 소속 관계를 잃을 수 있다. 들여쓴 내용으로 관계를 남기는 규칙을 따른다.

복습: [강의 11강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 47. Timeline에서 List로 바뀐 결과에 사건 세 개는 있지만 3월, 4월, 5월이 모두 없다. 가장 먼저 의심할 것은?

- **A.** 문서 제목의 글꼴 이름만
- **B.** DB 서버의 국가 코드만
- **C.** alternatives 배열의 길이만
- **D.** projection과 후속 binding의 날짜 내용 보존

<details>
<summary>정답과 해설</summary>

**정답: D. projection과 후속 binding의 날짜 내용 보존**

카테고리 변경 자체는 허용될 수 있지만 날짜라는 내용의 소실은 별도 문제다. P3 뒤 items에 날짜가 남았는지, 그 글이 binding까지 갔는지 확인한다.

복습: [강의 12강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 48. 결과에 reverse: true가 있다. '화면에서 텍스트 순서도 이미 뒤집혔다'고 바로 결론 내릴 수 있는가?

- **A.** 그렇다. 플래그는 항상 렌더 완료의 증거다
- **B.** tier 1이면 그렇다
- **C.** properties가 비었으면 그렇다
- **D.** 아니다. 계산된 표시와 실제 대치 적용 연결을 확인해야 한다

<details>
<summary>정답과 해설</summary>

**정답: D. 아니다. 계산된 표시와 실제 대치 적용 연결을 확인해야 한다**

읽은 로컬 코드에서는 reverse 계산과 반환은 있으나, 이미 계산된 binding을 뒤집어 대치하는 연결은 확인되지 않았다. 자료도 그 범위까지만 주장한다.

복습: [강의 6강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 49. 위키에 'T-8 미구현'이라고 적혀 있지만 코드에 compareProperties가 있다. 가장 좋은 판단은?

- **A.** 함수가 하나 있으니 전체 기능 완료라고 설명한다
- **B.** 위키만 믿고 함수가 없다고 설명한다
- **C.** 원격 배포도 완료됐다고 추정한다
- **D.** 비교, 정책, 실제 대치 적용을 나누고 문서 시점과 코드 기준을 함께 적는다

<details>
<summary>정답과 해설</summary>

**정답: D. 비교, 정책, 실제 대치 적용을 나누고 문서 시점과 코드 기준을 함께 적는다**

구현 여부는 기능 단계별로 확인해야 한다. 코드 존재와 통합 완료, 데이터 적재, 운영 배포는 서로 다른 사실이다.

복습: [강의 13강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>

## 50. 명세에 마지막 fallback이 있으므로 실제 검색 결과도 항상 한 개 이상이라고 보장할 수 있는가?

- **A.** 그렇다. 미매핑 내용은 버리면 된다
- **B.** 그렇다. DB가 비어도 결과가 생긴다
- **C.** 아니다. 성립 가능한 표현이 있다는 것과 적합한 실제 후보가 존재한다는 것은 다르다
- **D.** 그렇다. 용량 검사는 무시한다

<details>
<summary>정답과 해설</summary>

**정답: C. 아니다. 성립 가능한 표현이 있다는 것과 적합한 실제 후보가 존재한다는 것은 다르다**

후보 공급이 없거나 모든 후보가 용량, 내용, 속성 검사에서 탈락하면 실제 결과가 비어 있을 수 있다. 명세의 안전망과 실행 환경의 보장을 구분한다.

복습: [강의 13강](./lecture.md). 해당 절과 14절의 연결된 코드 또는 명세를 확인한다.

</details>
