← 리포트 목록
기업분석 v4 표준 + 5장 서사 + 정정 룰 (비나텍 사이클 학습)
2026-05-06
기업분석
[기업분석, 보고서표준, v4, 5장서사, 밸류에이션, PDF빌드, 차트정합성]
기업분석 v4 표준 + 5장 서사 + 정정 룰
비나텍 v3 → v7 사이클에서 해리 직접 지적으로 축적한 13개 룰. 다음 기업분석에서 처음부터 적용.
1. 5장 서사 구조 (전면 재구성 시 강제)
| Act | 페이지 | 서사 | 다음 Act 연결 한 줄 |
|---|---|---|---|
| 표지·Exec | P01-03 | 한 줄 결론 + 5 시나리오 + 글로벌 위치 매트릭스 + 5대 발견 | — |
| Act 1 산업 | P04-09 | 매크로 변수 → 산업 트리거 → 회사 위치 → 헤게모니·후발주자 | "그렇다면 가격이 왜 이렇게 됐나" |
| Act 2 가격 | P10-13 | 주가 시계열·수급·PER 리레이팅 분해·셀사이드 격차·다년도 PER 함축 | "그게 가능한가, 회사 펀더는 어디까지" |
| Act 3 회사 | P14-18 | 재무·OPM 분해·peer 비교·해자·CapEx 사이클·CB 희석 | "우리가 다르게 보는 것은 무엇인가" |
| Act 4 엣지 | P19-22 | 엣지 3개·셀사이드 격차 본질·시장 함축 가중치 역산 | "그래서 어떻게" |
| Act 5 결론 | P23-27 | 5 시나리오·확률가중 TP·1Q26 매트릭스·Trip-wire·KPI | — |
| 부록 | P28-30 | 민감도·출처·데이터 갭 | — |
총 30p 강제 (페이지 인플레 금지). 산업 심층은 Act 1에 흡수, 별도 4p × 4 추가 금지.
2. 밸류에이션 4대 원칙
2.1 괴리 크면 본 분석 의심
- 본 분석 TP vs 현재가 격차 -25% 이상 → 가정 재검증
- Bull 가중치가 시장보다 너무 낮은 건 아닌지 의심
- 시장 함축 가중치 역산 필수:
(현재가 - 본 분석 TP) ÷ (Bull TP - Bear TP) = 시장이 부여한 추가 Bull 가중치
2.2 Bear floor = BPS × PBR 1.5~2배 (절대 위반 금지)
- 적자 회사라도 청산 가치 (BPS) 가 floor
- 1.5배: 사업 가치 일부 잔존 + 자산 청산
- 1.0배: 사실상 파산. 30% 확률 부여 비현실
- PER을 적자 회사에 적용 금지 (산출 자체 불가)
2.3 시나리오별 다중 멀티플
| 시나리오 | 멀티플 | 이유 |
|---|---|---|
| Tail- (펀더 붕괴) | PBR 0.7~1.0배 | 청산 가치 |
| Bear (저수익/적자 재발) | PBR 1.5~2.5배 + PSR 5~7배 | 자산 + 매출 |
| Base (정상 흑자) | PER 30~40배 + PSR 8~10배 | 전통 그로스 |
| Bull (가속 성장) | PER 50~60배 + PSR 12~15배 | 모멘텀 |
| Tail+ (폭발 성장) | PER 65~80배 | 글로벌 peer 동조 |
2.4 시장 함축 가정 역산 매트릭스 (필수)
| 가중치 | 본 분석 | 시장 함축 (현재가 역산) | 격차 |
|---|---|---|---|
| Bull | NN% | NN% | ±NN%p |
| Bear | NN% | NN% | ±NN%p |
| Tail- | NN% | NN% | ±NN%p |
→ 격차의 본질 = "어느 가중치 차이가 -NN% 다운사이드의 NN%를 설명하는가" 한 줄
3. 산업 분석 5대 검증
3.1 비나텍 위치 검증 매트릭스 (헤게모니·독자성·후발주자)
| 항목 | 점수 (5점) | 근거 |
|---|---|---|
| 채널 독점 (LTSA·계약) | — | 계약 규모, 만기, 갱신 조건 |
| 한국 점유율 | — | 1위 / niche / no |
| 글로벌 점유율 | — | 빅3 대비 위치 |
| 진입 장벽 | — | 재설계 필요 / 인증 / 기술 |
| 계약 절대 규모 | ★★ (작으면 강조) | 매출 비중 / 단가 GW 비례 |
| 후발 가능성 | — | 차세대 시스템 재설계 + 인증 + 시간 |
3.2 Bill of Materials (BOM) 비중 강제
- 회사가 "독점 공급"이라도 BOM 비중이 작으면 매출 절대 규모 작음
- BOM 표 강제: 글로벌 핵심 / 한국 후발 / 비중 추정
3.3 글로벌 밸류체인 매트릭스 (해리 정확한 표현)
- "한국 두 축" 같은 동격 묶기 금지 (다른 부품 카테고리는 동격 아님)
- 글로벌 핵심 + 한국 후발 분리
- 비나텍/대상 회사 = "ecosystem의 한 보조 부품 공급사" (1차 핵심 아님)
3.4 매출 베타 정정
- 일반론 (AI 데이터센터 UPS) → 실제 채널 (블룸 단일)
- 모니터링 변수 = 단일 고객 분기 실적·hyperscaler 단일 수주
3.5 CapEx 사이클 검증 룰 (해리 직접 지적)
- "CapEx 둔화 = 사이클 통과" 자동 결론 금지
- 시공 단계 분리: 부지 → 건축 → 설비 → 가동 → 감가상각
- 자금 조달 (CB·유증) 시점 vs 시공 시점 매칭
- 미래 신공장 시공 일정으로 CapEx 재진입 가능성 검증
4. EPS·확률가중 TP 산출 룰
4.1 발행주식수 양쪽 케이스
- DART (등기 시점) vs KRX (현재 거래량) 차이 명시
- CB·BW 잠재 희석 (전환가 × 발행 규모) 별도 시나리오
4.2 CB 잠재 희석 시나리오 강제
| 시나리오 | 희석 전 EPS | 희석 후 EPS | 희석 후 TP |
|---|---|---|---|
| Bear | — | -28% | TP 압축 |
| Base | — | -28% | TP 압축 |
| Bull | — | -28% | TP 압축 |
| Tail+ | — | -28% | TP 압축 |
4.3 확률가중 TP 단일값
확률가중 TP = Σ (확률 × 시나리오 TP)
vs 현재가 = ±NN% 다운사이드/업사이드
5. PDF 빌드 레이아웃 강제 룰
5.1 표 (Table)
- colWidths 절대 폭 명시 (균등 분배 금지)
- wrap=CJK 한국어 자동 줄바꿈
- 폰트 8pt 이하
- KeepTogether (페이지 분할 금지)
- 헤더 NAVY 배경 + WHITE 텍스트
- 행 배경 줄무늬 (LIGHT 교대)
5.2 차트 (Image)
- MAX_W 160mm / MAX_H 60mm (페이지당 1차트 + 1표 강제)
- 비율 유지하며 max 적용
- hAlign='CENTER'
5.3 페이지 분할
## P0N. 헤드라인으로 PageBreak 강제- 차트 토큰은 헤드라인 직후 + 표 직전 (KeepTogether로 묶기)
- TOTAL_PAGES = 1차 빌드 후 실제 값으로 갱신
5.4 한글 폰트
- AppleGothic 등록 필수 (
/System/Library/Fonts/Supplemental/AppleGothic.ttf) - Arial Unicode 절대 금지 (한글 깨짐)
6. 차트-본문 정합성 검증 (해리 직접 지적)
6.1 빌드 후 검증 필수
- 차트의 숫자 = 본문의 숫자 일치 확인 (예: 차트 +1,100bp vs 본문 +2,350bp = 충돌)
- 차트 가독성: 폰트·라벨·출처 위치 확인
- 페이지별 thumbnail 생성 후 메인 세션이 직접 검토
- 페이지 매핑: 헤드라인 P14 = 실제 풋터 P14 일치
6.2 충돌 발생 시
- 본문을 차트에 맞추거나 (실측 기준이 더 정확하면 차트 우선)
- 차트 재빌드 (분석이 진화한 경우)
- 둘 다 못하면 충돌 차트는 제거
7. 출처 클린업 룰
7.1 1차 출처만
- DART 사업/분기/자율공시
- 한국거래소 (KRX)
- FnGuide 컨센
- 회사 IR (URL 명시)
- yfinance / KIS API
- KSD / LBMA / FRED
- 한경/매경/이데일리 보도
7.2 절대 금지
.md,.json파일명 인용- 내부 분석 문서 경로 (
L4_L6.md L6-1등) - 셀사이드 본문 결론 인용 (격차 분석용으로만 보존)
- "v3 → v4 정정" 내부 표기
8. 서브에이전트 운용 룰
8.1 stall 위험
- 단일 에이전트에 30p 본문 통째 작성 시키면 stall 잦음
- 분할: 페이지 그룹 5~7p 단위로 4~6 에이전트
- 또는 메인 세션이 직접 작성 (Write 1회로 25p 가능, opus 1M)
8.2 결과 검증 강제
- 에이전트 결과 보고만 믿지 말 것
- 파일 직접 ls + grep + 페이지별 thumbnail 확인
- 보완 에이전트가 본 에이전트 stall 후 v4.1 본문에 두 페이지만 추가하고 "v5 완료"라고 보고하는 사례 발생 (실제는 v5 본문 자체가 안 만들어짐)
8.3 메인 세션 직접 작성 트리거
- 에이전트 stall 2회 → 메인 직접 작성
- 도구 호출 700+ 누적 → STOP + 보고
- 진전 0% 보고 → 메인 직접 작성
9. 보고서 산출물 표준 디렉토리 구조
~/knowledge-agent/400-reports/{날짜}_{회사}_{티커}_v{N}/
├── data/ # 1차 데이터 (5개)
│ ├── dart_raw.md, dart_summary.json
│ ├── ir_raw.md, ir_summary.json
│ ├── quote_raw.md, quote_summary.json, price_series.csv
│ ├── sellside_comparison.md, sellside_raw.json
│ └── vault_summary.md, vault_related.json
├── analysis/ # 8-Layer 분석 (4개)
│ ├── L1_L2_v2.md (마스터)
│ ├── L3_L5.md
│ ├── L4_L6.md
│ └── L7_L8.md
├── disagreements.md # 셀사이드 격차
├── outline_v2.md # 30p 페이지 매핑
├── main_v{N}.md # 통합 본문 (한 작가)
├── charts/ # 차트 10개 (matplotlib)
├── images/ # 표지·디바이더 5개
├── build_pdf_v{N}.py # 빌드 스크립트
└── output/{회사}_v{N}_본보고서.pdf # 최종 산출물
10. 메모리·볼트·스킬 3중 저장
각 회사 분석 완료 시:
1. 본 노트 갱신 (이 파일) — 새 패턴 발견 시
2. 스킬 갱신 (~/.claude/skills/company-research/SKILL.md)
3. 메모리 갱신 (~/.claude/projects/-Users-ron/memory/) — 해리 직접 지적 시
관련 노트
- [[260429_태광_023160_v4]] — 첫 v4 표준 적용 사례
- [[260506_비나텍_126340_v4]] — v3→v7 정정 사이클 (이 노트의 학습 출처)
- [[003 v4-스키마]] — 볼트 v4 스키마
Part 2 — 페이퍼로지 + 차트 디자인 9개 룰 (v8~v10 사이클)
기존 13개 룰에 v8~v10 사이클에서 추가된 9개 룰. 페이퍼로지 디자인 시스템 + 차트 정합성 + 페이지 번호 체계.
14. 페이퍼로지 폰트 (Paperlogy 9 굵기)
- 한국어 PPT 특화, G마켓산스 기반, 커닝 적용
- 다운로드: https://github.com/Freesentation/paperlogy
- 9 굵기: Thin / ExtraLight / Light / Regular / Medium / SemiBold / Bold / ExtraBold / Black
- 라이센스: SIL OFL (상업용 무료)
15. 글자 두께 위계 (컬러 절제)
페이퍼로지 핵심 원칙 — "두께 강조 > 컬러 강조" - H_TITLE Black 32pt → H_SUB Medium 18pt → H1 Bold 15pt → H3 Bold 11pt → Body Regular 10pt - 컬러는 NAVY/GOLD 위주
16. 차트 figure.add_axes 축 분리
fig = plt.figure(figsize=(14, 7.5))
ax = fig.add_axes([0.07, 0.13, 0.88, 0.72]) # 위 13% 여백
fig.text(0.06, 0.96, title, fontsize=22, fontweight='bold') # 제목
fig.text(0.06, 0.91, sub, fontsize=12, style='italic') # 부제
→ 제목·부제 axes 영역 절대 침범 안 함
17. 차트 폰트 사이즈 강제
- 제목 22pt / 부제 12pt italic / 라벨 12pt / 어노테이션 13pt / 데이터 라벨 11pt / footer 9pt
- 모두 fontfamily='Paperlogy' 명시
18. 차트 사이즈 215×105mm
- CHART_MAX_W = 215 * mm
- CHART_MAX_H = 105 * mm
- figsize=(14, 7~7.5) inches
19. ★ → ● (페이퍼로지 글리프 호환)
- 페이퍼로지 ★(U+2605) 미지원 → 빈 사각형(□) 렌더링
- sed로 일괄 치환:
sed 's/★/●/g' main.md
20. "Act" 영문 → "N부" 한국어
-
Act 1 — 산업 → # 1부 산업
- 디바이더 5장 모두 한국어 큰 단어 + GOLD 큰 숫자
21. 페이지 번호 부-섹션 체계
part_counter = [0]
page_in_part = [0]
# # N부 헤딩 만나면 PartIncr Flowable로 part_counter[0]=N, page_in_part[0]=0
# 풋터: f"{part_counter[0]}-{page_in_part[0]} (전체 {pn}/{TOTAL_PAGES})"
- 표지: 표지-1, 표지-2, 표지-3
- 1부 산업: 1-1, 1-2, ...
- 부록: 부록-1, 부록-2
중요: 본문 ## P0N 표기 제거 시 페이지 트리거 정정 필요
- 기존: if line.startswith('## P0') or '## P1' or '## P2'
- 정정: if line.startswith('## ') and line not in [표지부제, 표지본문]
22. 페이지 다양화 패턴
- Act 디바이더 풀 페이지: 다크 배경 + GOLD 큰 숫자 + 한국어 큰 단어 + 모티프
- 콜아웃 박스:
>인용 → 좌측 4pt NAVY 보더 + 배경 #EEF2F7 - 메트릭 카드 (다음 사이클): 큰 숫자 + 작은 라벨
23. GPT-image-2.0 Codex 백그라운드 위임
nohup codex exec "..." --skip-git-repo-check --ephemeral \
-c 'mcp_servers={}' > /tmp/codex.log 2>&1 &
- codex-cli 0.124.0 확인 필수
- 결과는 다음 라운드 통합
24. 페이지 트리거 일관성
- build_pdf의 페이지 분할 트리거가
## P0/P1/P2패턴에 의존 - 본문 ## P0N 표기 제거 시 페이지 안 갈림 → 트리거 일반화 필수
- 또는 본문에 별도 [PAGE] 마커 사용