LLM WikiAccess-protected knowledge portal

WIKI

2026-W29 Worklog

AI Summary Purpose Tracks development work across repositories for this week. Key points 2026 07 19 Finalized the Vroong application package. Preserved the posting Remember 323031 , ran three independent persona reviews CTO/CEO/tech lead, a

경로ai/worklog/2026/2026-W29.md
카테고리Worklog
태그#ai-review #career-transition #crawler #human-output #infra #mysql #portfolio #pypi #report #w29 #worklog

# 2026-W29 Worklog

AI Summary

Purpose:

Key points:

(Remember 323031), ran three independent persona reviews (CTO/CEO/tech lead, all BORDERLINE; report in human/reports/), and applied the converged fixes with user approval: Debezium claim reduced to its verified scope (비교 검토 + Maxwell FileSink PoC), AWS reframed to current prod-DB ownership, streaming/ DW bridges and a logistics connection added, repetition trimmed. Vroong resume 3p and portfolio 10p (Forgejo excluded) redeployed; Remember's submitted PDFs left untouched. The same Debezium fix was applied to the Toss Payments resume later the same day (see the dated entry).

(Remember posting 323031, deadline 7/31) — resume 3p + portfolio 10p, after persona-review P0 fixes and live-site redeploy.

half-width sections, blank overflow pages via compact+zoom fit pass, series cross-links, cmp/h4 widget styles, numbering-badge titles, canonical portfolio.hwlabs.dev links) and regenerated the company portfolio PDFs so every item is exactly one A4 page. Corrected the binlog item's exactly-once claim to effectively-once and split the ETL item's design-estimate figure from measured results. Removed leftover fabrication traces (검색엔진 인덱스 문서 수, EC2 8대) from spotlight-pdf.html and regenerated its PDF.

Remember resume (user rule: quote-wrapping reads AI-generated; recorded in the ATS template header).

changing their source files. Preserved a Korean action report covering factual boundaries, de-duplication, page length, metric clarity, and per-company positioning.

resume-assets note, including the current Codex Toss Payments PDF, company-specific Claude folders, and the legacy personal archive; replaced the stale Mac-only work path with Drive-relative paths plus the current machine mount point.

job-search context, verified public resume/portfolio sites, selected Remember Data Engineer as the high-fit application and Toss Payments Data Engineer as the stretch application, verified Jira+Confluence cross-search, and enabled jobstack/gstack for Codex.

official simultaneous applications across Toss affiliates, selected Toss Place Data Analytics Engineer as the additional target, and drafted the Toss Payments Data Engineer resume content.

Hyunwook, with deployment-scenario review completed. The technical-support team deploys and operates it in approximately ten customer environments; Hyunwook receives operating issues, improves the implementation, and provides technical support. Revised the Toss Payments resume around this ownership boundary.

rerendered it as a more readable three-page version with larger type, wider line spacing, and clearer section transitions. Verified all pages visually and by text extraction, and prepared the local handoff under ~/hw/코덱스이력서/토스페이먼츠/.

user-provided Toss Payments portfolio PDF. Twenty-one detail pages now use a consistent icon-based SVG language, retain editable Mermaid/Excalidraw sources, and render correctly in desktop, mobile, and selected A4 PDF layouts.

software-supply-chain security data → vulnerability validation/prioritization → systems ownership required for freshness and customer delivery. The two-page tagged/text PDF was regenerated with the photo, phone and portfolio.hwlabs.dev annotations preserved.

제거/리네임 포트 8종(58행): proj4·fplus·ms-quic·ilmbase·graphqlparser· ecsutil·boost-modular-build-helper·boost-vcpkg-helpers — ports/*/vcpkg.json 전부 404(현행 아님), versions/*.json 원장만 append-only 잔존. gatheringdb 3단 0(W28 제거포트=대상외). ② drogon(7행): 현행 포트, gatheringdb 31/31 완전(07-07 백필)인데 dist-main 24행 = 백필 7건 미전파. 리포트가 dist 기준 + universe가 원장 그대로라 발생. 조치=drogon dist 전파 / 도구 universe를 현행 ports 필터로 교체(W28 기지적).

stencil 0.1.1 = 오탐(수집됨). 근본원인 = 증분은 정상·최신(커서 07-15)이나 전진 스캔만 + 전수 대조 안전망 부재(이슈 E) → 다운타임/윈도우/케이스 갭 미복구(+jektex는 work-list Jektex 대문자 → API 404 → NOT_FOUND 오염). 전역 /versions↔DB 차집합으로 누락 156(고유 101) 산출 → 실 gem 48/1,310버전 백필(404 53=yank 정상제외), jektex work-list 교정. 근본배포: crawler-lib-rubyreconcile() 안전망 신설(master 9f98f84, labCrawl1 배포, 주간 cron) → canonical 이름 enqueue+processQueue, dry-run 검증 누락 101→4. run()/main.py 불변·무중단.

upstream registry 1버전(1.0.0)뿐 ↔ DB RAW→VERSION→PRODUCT 3단 1/1 일치. 갓 추가된 포트라 07-07~09 풀백필 밖 → 일일 사이클이 07-13/14 정상 수집. 누락 도구의 타이밍 오탐.

DB 키는 PyPI simple index 의 PEP 503 정규화명(pymount-javav12, 대시), 리포트는 화면 표기명(언더스코어)으로 조회. 데이터는 인테이크→버전→dist 까지 전부 존재.

1 부분수집(ai.nxtone) / 9 오탐(Central 미존재, JitPack/Gradle 계열). 근본원인 = MavenCentral 인덱스 앵커가 06-25 정지: ① 인덱서 07-06~07-12 미가동(07-13 재기동) ② archive.VERSION varchar(100) 초과 1행이 배치 전체를 1406 으로 죽여 ingest 매 사이클 실패(anchor 미전진). 코드개선(스키마 불변) + 백필 완료.

재작성(검증된 problem→diagnosis→change→result 서사, 역할 경계 보존) + 8개 상세페이지 타이포그래피 통일 + public-safe SVG 아키텍처 다이어그램(hybrid k8s / DML Broker / Airflow-k8s / Prometheus-Grafana) 추가. 근거: ai/wiki/projects/data-platform-systems-engineering.md.

Relevant when:

Do not read full document unless:

Linked documents:

Work Items

Vroong application: posting capture + 3-persona review + fixes applied (2026-07-19)

next submission target.

deadline 2026-07-31) as ai/sources/career/2026-07-19-vroong-data-engineer-posting.md.

the posting: CTO, CEO, and data-team tech-lead all completed (the CTO pass was briefly stopped, then finished). All three verdicts: BORDERLINE — pass-worthy but fix before submitting.

human/reports/2026-07-19-vroong-persona-resume-review.md. Top shared P0 is the still-unfixed Debezium "직접 돌려 검증" overclaim (flagged 07-17, present in both the intro and the career bullet); next are the AWS "left-the-cloud" framing and the unaddressed Streaming gap. Requirement matrix: 4 met / 2 partial (business-stakeholder collaboration, AWS narrative) / 1 borderline (exactly 5 years) / 1 unmet (DW·Data Mart modeling).

PDF, per the standing workflow): - Resume: Debezium claim corrected to 비교 검토 + Maxwell FileSink PoC only; intro now carries the 94% cost figure, a streaming-extension bridge, and a grounded logistics-데이터 정합성 connection; AWS bullet/case reframed to "운영 DB는 지금도 AWS에서 직접 운영" + workload-based placement; "도입처 계속 늘고" reduced to one mention (case 1 result); skills renamed to Schema Design / Data Quality with "정식 dimensional modeling은 학습 중". - The intro growth initially pushed the PDF to 4 pages; compressed the intro bridge, the career-intro collaboration sentence, and the ELT bullet to restore the 3-page layout. Visually verified all three pages (ops cards render fine — the reviewer's layout concern was a pdftotext artifact). - Portfolio canonical items: binlog item's "사실상 exactly-once" softened to 멱등 적용(effectively-once, DML 기준, DDL 별도 경로); ETL item's "2일→5분" moved to a 기대 효과(설계 산정) card with 실측 아님 and the "적용한 소스부터" condition restored on the 0건 claim. - Regenerated Drive PDFs: Vroong resume 3p, Vroong portfolio 10p (9 items — Forgejo excluded per CTO+CEO recommendation), Toss Payments and Toss Place portfolios (contain the edited items). The already-submitted Remember PDFs were deliberately left untouched as the submitted snapshot.

Selected-portfolio PDF: stranded half-width section fix (2026-07-19)

narrow section ("역할을 나눈 방식") rendered as a half-width box next to empty space, looking careless.

grid where diagram/impact sections span full width; an odd count of narrow sections always strands the last one at half width.

count is odd, promote the last narrow section to wide. Applies to every item, not just this page. Verified by rendering the assembled page to PDF via a local HTTP server; the section now spans the full row.

four metric cards now render 2x2 instead of 3+1, and displayed/linked URLs are always canonicalized to https://portfolio.hwlabs.dev/ so PDFs rendered from localhost no longer leak 127.0.0.1 links (asset src stays on the render host so images load).

career/클로드이력서/<company>/김현욱_<회사>_포트폴리오.pdf with the same item sets and order as before (extracted from each old PDF's per-page footer): Remember 8 items/10p, Toss Payments 9/12p, Toss Place 9/11p, Vroong 10/13p. Page counts match the previous versions; zero 127.0.0.1 strings; visual check of the K8s·Airflow page confirmed the full-width role section and 2x2 result cards.

missed in the 2026-07-16 Elasticsearch cleanup): "검색엔진 인덱스" in the worker note, "검증 — 인덱스 문서 수 일치" (ES doc-count claim), and the unverified "EC2 8대 + EFS" count. Replaced with wording grounded in the canonical items/aws-to-idc-migration.html (backup/restore + 정합성 검증, 운영 DB 외 자원 정리로 월 비용 약 94% 절감). Regenerated hyunwook-kim-technical-portfolio-spotlight.pdf (5p) in place.

section): the ETL item overflowed one A4 page, pushing just the footer link onto a blank page, and its 역할 section ended with a web-navigation series pointer ("데이터 플랫폼 재구축 시리즈 ① → ②...") that read as a dangling sentence in PDF. Fixes in selected-portfolio-pdf.html, all generic: 1. strip p.rel paragraphs containing links (cross-item series navigation); 2. post-render fit pass — articles taller than one A4 page first get a compact class (tighter paddings, 34mm diagram cap), then if still overflowing are zoom-scaled down to fit (floor 0.78; beyond that a real second page is kept); 3. compact styles for item-page widgets .cmp/.cmp-t/h4 that previously fell back to oversized UA defaults (binlog item's Before/After); 4. section titles now drop the <span class="n"> numbering badge, fixing the "A아키텍처" artifact.

Toss Payments 10p, Toss Place 10p, Vroong 11p — exactly cover + one page per item, zero footer-only pages, zero series/localhost/badge artifacts. Visually verified the ETL, binlog (zoom-fitted), and component-popularity pages.

repo change is committed and deployed; the Drive PDFs are already updated.

Remember resume: quote-wrapped emphasis replaced with bold highlights (2026-07-19)

(e.g. "타협할 수 없는 데이터 정합성") reads AI-generated; use the template <b> highlight instead.

spots) and why-remember-지원동기-초안.md; literal company-name examples kept plain without quotes. Other three resumes had no quote-wrapped emphasis in submission content.

extraction (zero straight quotes remain).

every agent follows it.

Claude Code resume critical review (2026-07-17)

Toss Place, and Vroong under career/클로드이력서/.

of the other three companies. Rendered all four HTML documents to inspect the actual information density and hierarchy.

resumes say Debezium and Maxwell were run directly, while the canonical evidence supports comparison review for Debezium and a hands-on FileSink PoC for Maxwell.

metric conflict, RubyGems unit clarification, company-specific headline/case selection, and education-name verification.

human/reports/2026-07-17-claude-code-resume-critical-review.md and prepared the user-requested Google Drive copy at career/코덱스이력서/클로드코드_이력서_비판적_검토.md.

Google Drive resume-location memory (2026-07-17)

career/코덱스이력서/토스페이먼츠/김현욱_토스페이먼츠_Data_Engineer_이력서.pdf relative to Google Drive My Drive.

and 개인자료/이력&포트폴리오/ as the older personal archive.

relying on the obsolete /Users/khw/hw/클로드이력서/ path. The current Linux mount point is /mnt/g/내 드라이브/.

Portfolio architecture visual-system rebuild (2026-07-16)

portfolio PDF and extracted its useful visual conventions: pale blue architecture fields, compact icon cards, explicit blue routes, restrained callouts, and strong title-to-diagram hierarchy.

than treating each illustration as an isolated drawing. Audited the full portfolio and found four existing external SVGs, nine raw Mermaid SVG blocks, and eight pages with architecture content but no diagram.

source for 21 icon-based web SVGs. Each specification is grounded in existing page content; no services, metrics, or ownership claims were added for visual symmetry.

under human/portfolio/diagrams/, descriptive Korean alternative text, and concise captions. Added corresponding Mermaid, Excalidraw, SVG, and PNG editing artifacts under human/portfolio/diagrams/editable/.

item page were previously resolved against selected-portfolio-pdf.html, producing human/diagrams/... 404s. The assembler now resolves cloned resources against each source item URL before insertion.

columns were replaced at their full section boundary, and misleading linear flows for database separation, object storage, and vulnerability-source aggregation were redrawn to match their actual semantics.

all item image paths as present and relative, and the absence of raw inline SVGs in affected item pages. Browser checks covered representative desktop and mobile layouts with no page-level overflow or console errors. A three-project selected portfolio produced a four-page A4 PDF with sharp diagrams and no clipping, overlap, broken glyphs, or missing images.

Toss Systems Engineer resume introduction rewrite (2026-07-16)

CVE/OSV and distro advisories, false-positive/false-negative validation, and patch priority.

storage, backup and monitoring as crawler volume exceeded 80 and delivery reliability became part of data quality.

photo remained embedded, and phone/portfolio PDF link annotations remained intact.

Toss Payments Data Engineer resume transformation (2026-07-16)

layout is clean with no clipping, overlap, or broken glyphs.

apply to multiple affiliates at the same time.

additional application: the former maps to SQL, DQ, standardization, metadata, mapping, backfill, and documentation; the latter has direct Kafka/Spark requirements.

Kubernetes/Airflow platform evidence and replacing the infrastructure-heavy AWS/PC case with missing-data reconciliation and DQ.

technical-support team to approximately ten customer environments, with batch delivery chosen intentionally for the customer binlog-distribution model. Hyunwook owns design, implementation, deployment-scenario review, and issue-driven improvement—not customer deployment or day-to-day operation.

reliability and (2) production-deployed batch CDC design and operations support. Repository-backed evidence clarified the production boundary: Python/FastAPI raw-binlog delivery plus a customer-side Go Updater that parses ROW events offline, handles MySQL 8.4 ZSTD payloads, and applies parameterized row DML.

the production binlog-transfer path, and the quality-improvement ownership record. Preserved the evidence in ai/sources/career/2026-07-16-confluence-cdc-tool-research.md.

comparison criteria → Maxwell DML/DDL PoC → customer TCP and cadence constraints → real-time proposal deprecated → custom production batch path. Kept Maxwell, Kafka, event offsets, and DLQ out of production claims.

submission-blocking content issue. Production Spark remains an honest JD gap rather than a wording problem.

Hyunwook did not personally deploy to or operate customer environments. He owns tool evaluation, design, implementation, deployment-scenario review, and issue-driven code improvement; the technical-support team owns deployment and day-to-day operation across approximately ten customer environments.

wiki pages, canonical person profile, and the affected public portfolio pages.

Text checks confirmed the old direct-deployment/operation claims were absent, and visual inspection of all five rendered pages found no clipping, overlap, or broken glyphs. Replaced its legacy Pages-domain links with the canonical portfolio.hwlabs.dev URLs and verified all eight PDF link annotations.

INTERVIEW with no P0: the CDC fit is weaker on direct day-to-day operation but stronger on credibility, handoff collaboration, and defensible production-code ownership. Spark, Kafka, and Flink production gaps remain.

ATS print layout and applied the canonical profile photo from ai/assets/resume/. The first generic Markdown-to-PDF render was rejected because it styled body copy as links, leaked a smart-punctuation preservation token into the GitHub URL, and produced an underfilled fourth page.

technical checks but was too dense to scan comfortably, so it was rerendered as a three-page version with 10.2pt body type, 1.55 line height, larger margins, and a deliberate page break before the CDC case. Visual inspection of all three pages found no clipping, overlap, broken Korean glyphs, orphan headings, or contextless section continuations. Text extraction confirmed contact details, quantified platform outcomes, the CDC deployment/operation boundary, approximately ten customer environments, and education; no placeholders or transformation tokens remained. A fresh repository-side render after adding the profile photo remained three pages, embedded one image on page 1, and preserved the mail, GitHub, and portfolio links.

Career-transition setup and first target selection (2026-07-16)

ai/sources/career/2026-07-16-job-search-context.md with an AI-facing summary.

from another PC; https://portfolio.hwlabs.dev/ is backed by this repository's human/portfolio/ output.

project links at portfolio-equ.pages.dev instead of portfolio.hwlabs.dev; its resume_pdf value is empty.

- Remember & Company Data Engineer: high fit across Python/SQL/Airflow, external source collection, mapping, migration/backfill, DQ, monitoring, and documentation. - Toss Payments Data Engineer: directionally strongest stretch role; verified Kubernetes/Airflow/binlog/CDC evidence is relevant, while production Spark, Kafka, and Flink remain material gaps.

returned both Confluence pages and Jira issues.

gstack Codex-host setup. A new Codex thread is required for discovery.

VCPKG "버전 누락" 66행/9포트 검증 (2026-07-15, 조사만 — 실누락 0)

시각 컬럼 전부 공란). 9포트: boost-modular-build-helper(15) / boost-vcpkg-helpers(6) / drogon(7) / ecsutil(23) / fplus(1) / graphqlparser(1) / ilmbase(2) / ms-quic(1) / proj4(10).

versions/<x>-/<port>.json(append-only 버전 원장) ③ gatheringdb 3단 (RAW TB_COMP_LIB_VCPKG_RAW / VERSION TB_COMP_LIB_VERSION_VCPKG / PRODUCT TB_COMP_LIB_PRODUCT_VCPKG) + dist-main VIEW_COMP_LIB_VERSION_VCPKG (통합테이블 TB_COMP_LIB_VERSION_C_CPP 뷰).

- 8종 모두 ports/<port>/vcpkg.json 404(= 현행 vcpkg 포트 아님)인데 versions/*.json 버전 원장은 append-only 정책상 잔존 → 리포트 universe에 계속 보임. - gatheringdb 3단 전부 0행(W28 확정 "registry-only=제거포트=RAW부재=대상외"). dist-main엔 제거 이전 옛 크롤분 소수 잔존(proj4 6 / boost-modular 10 / boost-vcpkg-helpers 9 / fplus 6 / ilmbase 2 / ecsutil 1 / graphqlparser 1 / ms-quic 1). - 리네임 매핑(현행 등가물은 새 이름으로 이미 수집): proj4→proj, fplus→functionalplus, ms-quic→msquic, ilmbase→openexr/Imath. graphqlparser·ecsutil·boost 헬퍼 2종은 폐기. - 조치 불필요. proj4의 정수형(1,2)·날짜형(2018-04-15)·접미사형(4.9.3-1) 버전은 CONTROL 시절 표기라 registry 원장에만 남은 것.

- registry 원장 31버전(v1.0.0-beta18 ~ 1.9.13) = gatheringdb 31/31 완전(SORT 0~30, 전부 PROCESSED=1). CSV 지목 7건(v1.0.0-beta21·1.0.0·1.1.0·1.3.0·1.4.1·1.5.1·1.6.0)은 RECORD_CREATED 2026-07-07 19:40 = W28 풀백필 적재분. - dist-main은 24행뿐, 그 7건 정확히 부재(31−24=7). 즉 07-07 백필이 gathering엔 들어왔으나 distribution DB로 미전파 → dist 기준 리포트가 "누락"으로 표기. (dist 24 = 옛 2024 크롤 1.7.1~1.9.13 22 + beta18·beta20 2, 중간 7건이 구멍.) - 조치: gathering→dist 전파(퍼블리시)만 하면 해소. 진짜 미수집 아님.

1. universe가 append-only versions/*.json 원장 그대로 → 제거포트가 영구 오탐. 현행 ports(baseline.json/ports/ 실재)로 필터해야 함. W28 line 314-315에서 이미 지적된 사각지대의 실사례. 2. 비교 대상 DB = dist-main이라 gatheringdb 완료 백필도 dist 미전파 구간은 누락으로 뜸(drogon). gathering↔dist 동기 상태가 리포트 정확도를 좌우.

RUBY 누락 3건 검증 + 전체 백필 + 근본원인 + reconcile 안전망 배포 (2026-07-15)

jektex 0.2.0 2026-07-10 20:12:49 / stream 0.5.6 2026-05-10 13:58:30.

수집 labradordb.TB_COMP_LIB_VERSION_RUBY(gatheringdb 커넥션 경유) ↔ 배포 dist-main labradordb.TB_COMP_LIB_VERSION_RUBY 3자 대조. LIST=gatheringdb.TB_COMP_LIB_RUBY_LIST.

- stencil 0.1.1 = 누락 아님: 현 upstream stencil 7버전(0.1.0/0.1.1/0.1.2/0.1.3/ 0.1.4/0.1.5/0.1.8) 전부 gathering·dist 존재. stencil(소문자) PRODUCT_KEY, 0.1.1 RELEASE_DATE 2010-01-04T09:50:00Z(=18:50 KST) = 리포트 시각과 정확히 일치(도구가 우리 행을 봄 = 미수집 아님). ⚠ 대문자 Stencil/0.1(2009-12-27) 유령 행 존재 → 리포트가 대문자 키로 조회 시 소문자 0.1.1 못 봐서 오탐 가능. - jektex 0.2.0 = 실누락: upstream 현재 최신(2026-07-10, prerelease/yank 아님). 우리 DB(gathering+dist) jektex max=0.1.1(2023-10-24 수집), product LATEST=0.1.1. version-row 마지막 재터치 2026-06-01(0.2.0 게시 이전) → 이후 미수집. - stream 0.5.6 = 실누락: upstream 현재 최신(2026-05-10). 우리 DB stream(소문자) = 0.5/0.5.2/0.5.3/0.5.4/0.5.5(5/6), 0.5.6 부재. product(Stream 대문자) LATEST=0.5.5. 0.5.5를 05-12(0.5.6 게시 2일 후) 재터치했는데도 0.5.6 미추가.

crawler-lib-ruby(image iotcube/rubycrawler:0.1.0, 2026-06-23 기동, 배포코드=master 4a16d0e=fix 브랜치 전부 포함) 가 4h마다 실행, 진짜 커서 gatheringdb.TB_CRAWLER_STATUS =2026-07-15(당일). (내가 처음 본 labradordb의 04-02 커서는 미사용 유령 행이었음 — 크롤러 기본 스키마=gatheringdb.) 그래서 원인은 크롤러 정지가 아니라 구조: 증분 run() 은 timeframe 피드를 커서 이후로만 전진 스캔하고 발견 gem 을 work-list 에 enqueue→ processQueue 로 드레인하는데, 전수 대조 안전망이 없음(이슈 E) → 크롤러 다운타임(06-23 이전)·윈도우 유실·대소문자 오염으로 한번 놓친 버전은 피드에 다시 안 떠 영구 누락. a52d550 은 일시오류 재시도(A/B)만 하드닝, E·이름정규화 미구현이라 잔존 갭이 남음. stream 0.5.6= 다운타임/윈도우 갭, jektex 0.2.0=case 오염.

api/v1/versions/Jektex.json HTTP 404 → processQueue 가 NOT_FOUND(5) 영구 종료. 동일 유형 NOT_FOUND 오염은 전 work-list에 jektex 1건뿐(RubyBill 은 대/소문자 둘다 404=진짜 삭제=정상). uppercase work-list 6,321행은 PROCESSED=1(=canonical 이 대문자인 실 gem) → 오염은 2022 풀스캔의 역사적 잔재이지 현재 피드가 만드는 것 아님. version 테이블 PRODUCT_KEY 는 case-sensitive라 Stream(2011~12 유령)/Stencil(0.1 유령) 잔존(별건 위생).

(전역 compact index /versions ↔ DB comm 차집합) → 버전 누락 156(고유 gem 101). 절반은 보안 테스트 gem(apex-/xss-/test-), 나머지는 실 gem(oauth2·omniauth-identity· minitest-hashdiff·opentelemetry- 등).

전체버전 upsert, crawler 포맷 동일) → 실 gem 48개 / version 1,310 적재, err 0, 404 53 (이미 yank된 abuse gem=정상 제외→exclusion 누적). jektex 0.2.0(LICENSE [193])·stream 0.5.6(LICENSE [353])·oauth2 2.0.25 등 DB 검증. minitest-hashdiff/jekyll-fast-reader 는 0.1.0 이 yank돼 0.1.1만 수집(compact index append-only 델타를 finder 가 union 하여 yank 를 과대보고한 것 — 데이터는 정상).

(fix_jektex_worklist.py, before/after 검증).

(feat 브랜치→master merge 9f98f84, origin push + labCrawl1 git pull 배포). 전역 /versions ↔ DB 전수 대조 → 누락 버전 gem 을 canonical 이름(index 원문 case=오염 없음)으로 enqueue 후 기존 processQueue 드레인. _reconcileDiff 는 append-only 델타의 yank(-)를 제거 반영(과대보고 방지). main_reconcile.py(--dry-run) 진입점 + 단위테스트 5 (전체 18 green). 기존 run()/main.py 불변(신규 파일만 = 무중단, bind-mount 라 이미지 재빌드 불필요). 컨테이너 검증(dry-run): 백필 후 누락 gem 101→4 수렴 확인. labCrawl1 주간 cron(docker exec)으로 상시화. 이후 다운타임/유실 갭은 주 1회 자가복구.

VCPKG minmea 누락 검증 (2026-07-15, 조사만 — 백필 불필요)

port-version 0, git-tree 6da18fcf), 현 ports/minmea/vcpkg.json도 1.0.0 단일. vcpkg 커밋 [minmea] New port (#52281) = 최근 신규 등록 포트 → git-tree 1개뿐 = CONTROL 시절 이력·리비전(#N) 없음(W28 zeromq류 pre-migration 결손과 무관).

- RAW TB_COMP_LIB_VCPKG_RAW: PATH=minmea, 1.0.0, MIT, RECORD_CREATED 07-13 15:16 UTC. - VERSION TB_COMP_LIB_VERSION_VCPKG: 1행, 1.0.0, SORT_ORDER 0, PROCESSED=1, LICENSE MIT/LICENSE_IDS [247], SCM tag 1.0.0, RECORD_CREATED 07-13 15:41. - PRODUCT TB_COMP_LIB_PRODUCT_VCPKG: LATEST_VERSION 1.0.0, PROCESSED=1, CREATED 07-14 11:45. - 대소문자 변이 없음(LOWER(PRODUCT_KEY)='minmea' = 단일 'minmea' 1행) → cppwinrt류 collation 병합 부류도 아님.

07-07~09 풀 백필 universe에 없었음(그 이후 등록) → 일일 스케줄 사이클이 07-13→14에 RAW→VERSION→PRODUCT 정상 수집. 누락 체크가 upstream 최신 스냅샷(minmea 포함)을 우리 DB의 동일-일자 인입보다 먼저 본 시차. SPM grace-window·npm @zylem/behaviors 스테일 보고와 동류. 백필 불필요.

(초기 풀빌드 2024-08-25 2,475건 / 2026-03-08 316건 배치와 구분됨).

java/MAVEN "새로운 누락" 75건 검증 + 원인규명 + 코드개선 + 백필 (2026-07-14)

전부 소문자 정규화됨). "자바 새로운 누락" 검증 요청.

- 65 = 실누락: repo1 에 실재(원본 mixed-case, 예 pro.kitedb:KiteDB, io.github.jnightrider:jMe3GL2-core, com.svenruppert.jsentinel:jSentinel-*) 하나 VERSION_JAVA·MAVEN_ARCHIVE·PRODUCT 전부 부재. 대소문자 무시(LOWER) 풀스캔 으로도 부재 확인(케이스 착시 아님). - 1 = 부분수집: ai.nxtone:nxtone-agent — VERSION_JAVA 에 v0.2.0 스켈레톤만 (NAME/SHA1/RELEASE_DATE null, PRODUCT 행 없음). maven-metadata 404(단일버전). - 9 = 오탐(누락 아님): com.github.xpenatan.jparser:* 8(Central 엔 gradle plugin marker 만; runtime-c 등은 GitHub Packages/JitPack 계열) + io.github.cy745.krouter:ksp-collector(Central·JitPack 부재). 크롤 대상 저장소 밖 → 산출물 ~/Downloads/maven_offscope_not_on_central.txt. - CSV 소문자화는 리포트 생성기의 LOWER() 비교 경로 산물(collation gotcha). 백필 입력은 원본 case 로 복원(~/Downloads/maven_missing_origcase.txt, 66행).

- TB_CRAWLER_STATUS.MavenCentral 06-25 18:30 정지. 같은 인덱서가 쓰는 Jenkins(07-13)·Clojars(07-12)·MavenIndexFullSweep(07-13) 는 최신 → 인덱서는 도는데 MavenCentral ingest 만 실패. - ① 인덱서 미가동: [indexer] 로그가 07-06~07-12 전 파일 0건. 컨테이너 StartedAt 07-13T01:11 UTC(RestartCount=0) → 약 1주+ 미가동이 앵커 정지의 1차 원인. - ② 1406 DataError: 07-14 00:04 로그 maven index ingest failed for MavenCentral: (1406, "Data too long for column 'VERSION' at row 973"). MAVEN_ARCHIVE.VERSIONvarchar(100)(VERSION_JAVA 는 250). Central 인덱스에 100자 초과 버전 1행이 있어 1000행 배치 INSERT 가 통째로 실패 → repo별 예외격리로 WARNING 만 찍고 anchor 미전진 → 재기동 후에도 매 사이클 같은 지점에서 정지. full-sweep(startCrawl(full=True)) 도 같은 격리라 Central 만 실패해도 sweep 앵커는 갱신(07-13) → "sweep 돌았는데 왜 못 채웠나"가 설명됨.

- db/labradorDBVo.getMavenArchiveVo: NAME 을 _clip_chars(...,200) 로 클램프 (getVersionVo 와 동일 정책). VERSION 은 좌표라 클램프 안 함(절단 시 POM 경로 깨짐). - crawler/mavenPomCrawler.insertVersionSkeletonDirect(record) 신설: 아카이브 intake 우회 version_java 스켈레톤(PROCESSED=90) 직접 적재(idempotent, archive 마킹 없음). 오버사이즈 우회 + 백필 공용. - crawler/mavenCrawler.ingestRepo: len(VERSION)>100 행을 아카이브 배치에서 제외하고 _ingestOversizedVersions 로 version_java(250) 우회 적재(>250 은 경고 후 하드 스킵). 앵커를 우회 적재보다 먼저 기록 → 우회 실패가 커서 전진을 막지 않음(막히면 재-정지). 우회 실패분은 다음 run overlap(60일)이 회수. - 테스트 254 passed(신규 6 + stale 1건 교정 — test_start_crawl_default_no_clean 이 index:False repo skip 을 미반영해 실패하던 것을 실제 동작에 맞게 수정).

- scratchpad/backfill_missing_java.py: 66 GAV(원본 case) 별 repo1 maven-metadata.xml → 전 버전 → insertVersionSkeletonDirect. - 결과 new=207 / exist=0 / skip(>250)=0 / metadata_err=1(ai.nxtone 404, 기존재). 검증: version_rows 207, jSentinel-* 15개 전부 PROCESSED=90, 샘플 4 product 생성. - 러닝 worker(2주 가동, PROCESSED=90 drain)가 POM-메타 자동 보강 예정.

1. 위 코드개선 커밋 + labCrawl1 재배포(docker rebuild/restart) — 배포 전까지 MavenCentral 앵커는 06-25 고정, 신규 Central 상시 인입 미재개. 2. 인덱서 liveness + 앵커 staleness 알람(1주 미가동 재발 방지). 3. (선택) 1406 유발 100자 초과 버전 GAV 특정(인덱스 재파싱 len(version)>100).

Toss Payments Systems Engineer resume and portfolio rewrite (2026-07-14)

Portfolio typography and architecture-diagram system (2026-07-14)

GOLANG 누락 후보 21건 검증 + 백필 5건 (2026-07-13)

- 백필 완료 3: kold1kz/qsoft_test, seitamuro/go-auth0-2, jjdoneaway/addressbook — 선언 경로 일치·proxy 실재·LIST_V2 부재(not_in_pipeline). 1차 실행에서 2건이 1205 lock wait 로 실패 → --workers 2 재실행으로 수집(collected 2, skip 3, err 0). DB 검증 완료(09:45~09:46). - 기수집 1: jenspederm/advent-of-code — /src 하위 경로는 모듈 아님, 상위 모듈이 이미 수집돼 있음 → /src 는 subpackage 사유로 제외 추가. - 기분류 5: fabric-chaincode-go-gm·r-best/pact-go·github.phpd.cn/go-osc (listv2_alias_resolved), consensus-abft/v2·abehidek/sandbox(proxy_gone_404). - 신규 제외 6: 무효 선언명 4 — onursert/grpc-protobuf-go(선언 grpc-protobuf-go), illusionofcontrol/coub-dl(coub-dl), bykaaa/wb_l0(example.com/golinuxcloud), inf85/production-service-contracts/ gen/go/common(선언 경로 github 미존재, proxy 404) + zip 생성 불가 1 (aditiiilaturkar/tech_support_system, malformed file path) + subpackage 1 (advent-of-code/src). 제외목록 243,541→243,547.

- 기수집 3: kiradb/kiradb, okblockchain/test, shawnyu5/penguin_logger — 7/9 백필 실행분(2026-07-09/golang_missing_real.tsv not_in_pipeline → 7/9 10:05 수집 완료, pseudo-version). - 진짜 누락 → 백필 완료 2: imhshekhar47/hs-taskmaster, tetrafolium/nfcpy — proxy 실재(태그 0, pseudo-version만), go.mod 선언 경로 일치, LIST_V2 부재(not_in_pipeline). backfill_missing_real.py --tsv 2026-07-13/golang_missing_real.tsv → collected 2/err 0, DB 검증 완료 (VERSION_GOLANG 2행, 07-13 09:36:55). 주의: 입력 tsv 는 헤더 source_index_path\tversion\tpipeline 필수(없으면 events=0 무시). - 수집 불가 1: gitee.com/jangtao99126/golang2dengine-sarah — proxy 404 (unrecognized import path), 기존 제외목록(proxy_gone_404)에 이미 존재. - 무효 선언명 1: huangjihui511/script-manager — go.mod 가 module huangjihui511/script-manager(도메인 없음) 선언 → go get 불가 부류. 제외목록에 invalid_declared_module(신규 사유) 추가 (243,540→243,541, .bak-2026-07-13 백업 생성).

초기 유실(W28 not_indexed) 부류의 잔존 꼬리로 일관.

에러로그 off) + 이벤트 1개짜리 모듈이라 재삽입 기회 없음 + 아무도 안 쓰는 모듈이라 운영 신호 없음 + 전수 대조 도구(gpnf snapshot diff)가 2026-06-18에야 생김 → 수년 전 구멍이 2026-06 이후 일괄 발굴되는 시간차.

GOLANG re-walk 자가치유 가동 (2026-07-13)

(github.com/maminirinaedwino/generateur_table_md, 7/6 declared_diff 해소됐으나 목록 미반영) → listv2_alias_resolved 로 추가. 제외목록 243,548. (collected_exact 143건은 자기 키 수집분이라 제외 비대상 확인.)

docker.run.index.list.backfill.sh (SINCE=2019-04-10 전체 순회) nohup 백그라운드 가동. 서버 HEAD 2301612(LIST_V2 upsert no-op(ID=ID) 안전화 — 라이브 인덱서 crawler-lib-golang-main-1 과 동시 실행 안전). 컨테이너 sad_galileo.

→ 전체 예상 10~13시간. 로그: 서버 ~/index-list-backfill-20260713.out + repo log/golangcrawler.log(메인 크롤러와 공유 — 주의). ⚠️ repo log/ 는 hyunwook711 쓰기 불가 → nohup 출력은 홈으로.

*IndexListBackfill 행 생성 여부 + gpnf snapshot diff 재실행으로 잔존 구멍 0 수렴 검증.

golang_excluded.tsv 단일 정본 통합 (2026-07-13)

정본에 없는 378,587건 존재 — 그중 376,540은 collected_exact(수집완료 = 제외 비대상, 7/2 개편 때 의도적 제외)이나, *약 2,018건은 진짜 제외 사유 (proxy_gone_404 1,256 · case_only 446 · listv2_alias_resolved 128 · subpackage: 등)인데 7/2 재구축 때 유실**된 것으로 확인.

proxy_same_in_db 는 배제) + 전체 정렬 + 원자적 교체. 243,548 → 245,566, 중복 0. 사전 백업 .bak-2026-07-13-consolidate.

백업 파일들은 보존(삭제 안 함).

pypi pymount_javav12 누락 검증 (2026-07-13, 조사만 — 백필 불필요)

- 인테이크: gatheringdb.TB_COMP_LIB_PYTHON_LIST PATH=pymount-javav12, TIMESTAMP 2026-07-09 11:50:09, PROCESSED=1. - 수집: TB_COMP_LIB_VERSION_PYTHON 에 0.0.1(릴리스 11:50)/0.0.2(12:05) 2행, 수집 12:24:27 — PyPI 업로드(둘 다 7/9) 후 ~30분 내. - 배포: dist-main(164:53306) TB_COMP_LIB_PRODUCT(LATEST 0.0.2) + TB_COMP_LIB_VERSION_PYTHON 2행 존재 = 고객 배포 원본에도 반영 완료.

(언더스코어)로 exact 조회하면 0행. DB 키는 대시형 pymount-javav12. ci collation 은 대소문자만 접고 _- 라 언더스코어 조회는 매칭 안 됨. (golang alias 부류, npm coalesced-feed 오탐과 같은 "체크 도구 vs 저장 키" 계열.)

anchor text=원표기(언더스코어) / JSON info.name=원표기 / RSS updates 제목=표본 100건 언더스코어 0·대문자 2(사실상 대시형, 완전 정규화는 아님). 크롤러 코드는 lower() 만 하고 -/_ 변환 없음 → 이 행은 RSS 증분 경로(_update_package_from_rss, pypiCrawler.py:555)가 대시형 제목을 그대로 저장한 것. 리스트 TIMESTAMP=0.0.1 릴리스 시각 일치가 방증.

index anchor text(원표기) 를 PATH 로 저장 → 같은 패키지가 RSS(대시)/풀스캔 (언더스코어)으로 이중 행 가능한 구조(현재 언더스코어 행은 미존재). 근본 해결 = 양 인테이크 + 누락 체크 도구에 PEP 503 정규화(lower + [-_.]+-) 통일.

(wheel 전용, 저자 없음 — 성격상 의심 패키지 부류). TB_COMP_LIB_LICENSE_PYTHON 0행이나 파낼 소스 자체가 없어 AI 라이선스 매퍼 대상도 아님.

(lower() + [-_.]+-) 적용 후 대조.

참조 0건 + dist 에 테이블 자체 없음 = 라이브 경로가 아닌 유휴 테이블(Open question: 폐기 대상인지 확인).

2026-07-16 — 이력서·포트폴리오 사실 정합화 (Claude)

343GB S3 스냅샷 이관 + 문서 수 대조 + EC2 8대·EFS 종료" 주장은 brain_hw vault에 근거 없음 + 사용자 부인("MySQL만 사용, ES 운영한 적 없음"). 이력서 2종(리멤버·토스), 포트폴리오 상세·인덱스 카드에서 모두 제거. Elasticsearch를 기술 스택에서 제거. EC2 8대 수치는 미확인이라 "나머지 AWS 자원 정리"로 일반화. 기존 Systems Engineer ATS PDF(다운로드 폴더)에는 이 오류가 남아 있으므로 재사용 금지.

collation 불일치 뷰 조인(130만 건 스캔→직접 조인 6,000건, EXPLAIN) 발견 과정 추가, 역할을 "실행 본인 + 방안은 팀장·CTO 리뷰 확정"으로 정정, varchar-JSON 타입 정규화는 별도 작업 귀속으로 정정. infra-k8s-airflow-ops에 수집 주기 차등(취약점 20분→약 1시간 내 고객사 도달, 라이브러리 4시간) 추가. dml-broker-db-stability에 노드별 Broker pod 배치 + "적용 후 4개월간 0건" 기간 명시. aws-to-idc-migration에 수집/배포/운영 DB 3분리 + "IDC 전환 후 3년간 1~2건" + 월 AWS 비용 약 94% 절감 반영.

지원서 포함), 토스페이먼츠 DE 최종 PDF 3p(코덱스 초안 + 개선 병합, 공고 대조 완료). RubyGems 백필 수치(48 gem·1,310버전, 101→4)는 본 worklog 기록으로 검증됨.

Assets" 규칙(모든 에이전트 공통 디폴트).

portfolio-item.css의 모바일 규칙(.flow grid 1열)이 인라인 flex에 밀려 무효였고, 40개 상세 페이지는 공통 CSS 미링크 상태. 조치 — 공통 CSS에 display:grid 강제 + 다이어그램 가로 스크롤 힌트 추가, 40개 페이지에 mobile-fit media query 주입 (640px 이하 전용, 데스크톱 무영향). 가로 넘침 0 확인.

2026-07-17 — 4개사 이력서 CTO 리뷰 6차 (windows-wsl, Claude, 공고 라이브 대조)

토스플레이스 DAE) 후 회사별 독립 CTO 리뷰어 4명 병렬 실행.

자기 한정(토스페이먼츠·부릉), 알려진 갭(Spark/dbt/DW) 완전 침묵 = 회피로 읽힘, 사례 "결과" 칸의 수치 없는 형용, 학부 학력 누락(플레이스·부릉).

타겟 재조회): "정교한 매핑 시스템과 마스터 데이터 관리"·"타협할 수 없는 데이터 정합성"·"데이터 파운데이션팀" 전부 공고 팀 소개 문단에 원문 존재. 원인 = 1차 WebFetch 요약이 팀 소개 문단을 누락한 것을 리뷰어가 정답으로 수용. 교훈: 인용 대조류 판정은 요약 추출이 아니라 대상 문구 타겟 조회로 검증할 것.

"Debezium PoC 격상" 제안은 기각.

수정 반영은 미실행(리뷰만).

INTERVIEW / 나머지 3사 BORDERLINE. 토스페이먼츠는 실지원 채널 리멤버판 215058(Spark 자격요건, 실패 학습·비교수치 기재 안내, 검색 서비스 필수 기재, 허위 기재 취소 조항) 기준. grep 전수 확인된 교차 결함: ① 이력서 소개문 "PoC까지 돌린 뒤"(부릉·토스페이먼츠) = Maxwell만 PoC인 사실과 자기모순 — 사실 경계 초과, ② Elasticsearch 태그 잔존human/portfolio/items/aws-to-idc-migration.html:68 스택 태그가 7/16 본문 정합화에서 누락 → 라이브 사이트+4개사 포폴 PDF 전파(토스페이먼츠에서 채용 취소 조항 접촉 리스크), ③ "IDC 전환 후 3년간" vs 기간 "2024–2026" 산술 모순(실제 전환 연도 Needs confirmation), ④ 포폴 표지 "Data / Systems Engineer" 직함 불일치 + "이력서 기재 순서" 선언 위반, ⑤ 포폴 항목 역할 호칭 인플레("프로젝트 리더"·"리드" vs 이력서 Data Engineer). 수정 미반영.

2026-07-17 — 2차 리뷰 지적 반영 + PDF 7종 재생성 (windows-wsl, Claude)

① CDC 도구 검증 범위 — 사용자 확인: Debezium·Maxwell은 직접 돌려봤고 Canal은 기억 없음. 단 research-log/CDC_research/(GitHub, SSH clone)에는 Maxwell 실습 문서(설치·테스트·HA·DML 캡처)만 있고 Debezium 단독 실험 문서는 없음 — 이력서는 "Debezium과 Maxwell은 직접 돌려 검증"으로 표기(사용자 기억 기준, 면접 시 Debezium 실행 내용 답변 준비 필요). 기존 "PoC까지 돌린 뒤, 셋 다" 자기모순 문장은 교체 완료. ② IDC 전환 연도 = 2024 — Confluence "[progress] IDC 장비 데이터 이전 작업"(2024-02, 김현욱 작성)·IDC 서버 현황(2024-01) 근거. "3년간 1~2건" 표현을 전 서류에서 "전환(2024) 후 1~2건"으로 통일.

Elasticsearch 제거(spotlight-pdf.html에서도 1건 발견·제거), 역할 호칭 통일 (프로젝트 리더/데이터 엔지니어링 리드/Data / Systems Engineer → 데이터 엔지니어, 19개 항목 페이지+index+spotlight), selected-portfolio-pdf 표지 제출용 재작성(role 쿼리 파라미터 신설, UI 안내문 제거, "문제→판단→조치→결과" 구성 명시). 린터 BAN 0 / WARN 5(기존 자연 용례) 통과. 미커밋·미푸시 — 라이브 사이트에는 아직 미반영.

리멤버·부릉 이력서 "3년간" 2곳 수정, 리멤버 초안 메모 3곳 동기화.

목차에서 pypdf로 수록 목록 복원(리멤버 8/부릉 10/페이먼츠 9/플레이스 9개, 리뷰어 보고와 일치) → localhost 렌더 후 URL을 portfolio.hwlabs.dev로 재작성 (텍스트+링크 어노테이션) → 이력서 3종(4p/3p/3p)+포폴 4종(10/13/12/11p) 재생성. 검증: 금지 문자열 0(ES·PoC까지 돌린·3년간·리드·리더·Data / Systems·localhost), 신규 문구 존재, 페이지 수 원본 동일, 표지·이력서 1p 육안 확인(한글 글리프·증명 사진 정상). 구본은 career/클로드이력서/_backup-2026-07-17/ 보관. 플레이스 이력서 PDF는 무변경이라 유지.

문제"가 범용 PC를 출발점처럼 서술 → 실제 순서(AWS 비용 부담 → 통짜 DB를 사내 범용 PC로 이전 → 발열·I/O 프리징 → IDC 이관)로 재작성, 이력서 사례 2의 기존 표현("비용 문제로 그 구성 그대로")과 정렬. 인덱스 카드의 "운영 이슈 0건" ↔ 이력서 "1~2건" 모순도 함께 수정. 이력서 4종은 원래 올바른 순서라 무변경, 포폴 PDF 4종만 재생성·교체, 라이브 재배포(c32f0b6).

Linux Chromium+Pretendard 렌더에서 단어 간격을 과하게 벌림 → 4종 HTML 전부 text-align:left; word-break:keep-all; overflow-wrap:break-word로 교체 후 이력서 PDF 4종 재렌더(리멤버 4p/부릉 3p/페이먼츠 3p/플레이스 3p — 페이지 수 불변, 스크린샷 육안 확인). 플레이스 이력서도 이번에 이 파이프라인으로 첫 재렌더(Mac 원본은 _backup-2026-07-17/ 보관).

.flow가 5칸 고정 그리드라 박스 4개(자식 7개) 플로우에서 마지막 화살표+박스가 둘째 줄로 밀림 → grid-auto-flow: column으로 교체(박스 수 무관 한 줄), 모바일 미디어쿼리에 grid-auto-flow: row 리셋 추가. 데스크톱·모바일·최다 박스(4박스×2플로우) 스크린샷 검증 후 배포(15fee58). 포폴 PDF 템플릿은 자체 7칸 규칙이라 영향 없음(재생성 불필요).

(사람인 rec_idx=54473739, 판교, 마감 7/29 17시). 파이프라인 아키텍처·엣지↔클라우드 연계·거버넌스는 강한 전이 대응이나, 자격요건에 제조환경·로보틱스 리딩·AI 학습 데이터셋(어노테이션·큐레이션) 3개 무경험 + 비즈니스 영어 필수 → 사용자 결정으로 패스. 교훈: 공고 평가 시 영어 요건을 먼저 확인해 최상단에 표시할 것.

INTERVIEW / 꼭 보고 싶음. 사용자 사실 확인 후 반영 — ① 인덱스 정리는 수집 DB (크롤러 쿼리 전수, 9.6TB→4TB)와 배포 DB(분석 엔진 쿼리 95개 전수 EXPLAIN, 311개 중 224개, 2.6TB→1.2TB, 고객사 초기 구축 12→6h)로 분리 서술("증명"→ 전수 조사 근거의 "확인"), ② 이관 검증 = 건수 대사 한 문장 추가, ③ "수십억 행" → "34억 행 테이블 포함"으로 구체화, ④ 헤드라인을 식별·연결 정체성으로 교체, ⑤ "이직 준비도 리멤버로" → 능동 지원 선언으로 재작성(CEO P0), ⑥ Why 페이지 중복 문장 제거+PII 인식 문장 추가+기여 문단을 적용 방향으로 재작성, ⑦ 소유권 문구("비교 기준과 방안은 제가"), ⑧ 세종대학원→세종대학교, "1~5건 미만" 어법. 1페이지 오버플로(4→5p)는 불릿 압축으로 4p 복원, 마커 검증+육안 확인 완료. 포폴 db-index-optimization 항목·인덱스 카드도 동일 사실로 동기화(무수치 결과 타일 2개 제거), 포폴 PDF 4종 재생성·배포(adad15a). AWS 94% 배경(대학 계정 통보)은 서류 금지 — 면접 노트에만 보존(사용자 지시). 면접 질문 13개+예상 과제 1개는 리뷰 소스 문서에 보존.

중복 서사 축약, 매핑 항목 승격, RubyGems DQ 사례 포폴 승격, 학부 학력, "세종대학원" 표기 확인은 사용자 지시 대기.

2026-07-17 — 공유 지원서류 폴더 신설 (windows-wsl, Claude)

목적: 이력서·포트폴리오 PDF 산출을 머신 로컬(~/hw/…)이 아닌 Drive 공유 경로로 통일해 Mac↔Windows 어디서든 접근 가능하게 함. 정본은 계속 이 저장소 (human/resume/, human/portfolio/), career/는 렌더된 PDF만 보관.

Shared Output Folders 절 추가, 산출 규칙(동시 편집 금지·동기화 확인) 기록. macbook의 Drive 전체 경로는 Needs confirmation(다음 Mac 세션에서 확인).

나머지 최종 8종(리멤버·토스플레이스·부릉 포함)은 Mac ~/hw/에만 있어 Mac에서 career/로 복사 필요(잔여 항목).

2026-07-17 — 포트폴리오 3렌즈 리뷰 (humanizer·CTO·jobstack) (Claude)

임팩트를 범위/전후 사실로 교체("12종×4소스", "웹 파싱→Git 클론", "동일 주기→점수 차등"), 6개 항목의 "단독으로 수행"을 실행-직접/방안-리뷰 프레임으로 정정(이력서와 일치), db-index의 not-X-but-Y 수사 중복 제거. selected-PDF 렌더러 섹션 제한 5→6 수정(역할 섹션 잘림 해소). 회사별 포트폴리오 PDF 4벌 라이브 기준 재생성.

4건을 ai/sources/confluence/로 적재 — Forgejo 서버 재구성 설계(INFR-393, RAID·DB·백업 별점 비교), DB 엔진 실측 비교(DAT-3313/3314, 4개 인스턴스 파티션 0건·34억 행 테이블 인덱스 701GB>데이터 178GB 근거), 오브젝트 스토리지 3안 비교 (채택: SeaweedFS+ZFS/Forgejo), MariaDB 전환 검토 요약. 비밀번호·배포 키·직원 PII 페이지는 의도적으로 제외.

(수십억 행 실측·3엔진 비교) + 인덱스 카드 추가. 이력서 4종 경력 intro에 "수십억 행 규모 DB" 명시, 페이먼츠·부릉·플레이스 카드 1개를 DB 엔진 실측 비교로 교체. 크롤러 V2 마일스톤(누락률 0%)은 RubyGems 101→4와의 표기 충돌 위험으로 이력서 반영 보류.

판단, RAID5·ZFS·SSO 기각 사유, 원본 전용 백업 정책) + object-storage-seaweedfs에 git 저장 3안 비교(JuiceFS 통합·자체 미러 기각 → ZFS+Forgejo 채택) 보강. 부릉 포트폴리오 PDF에 Forgejo 설계 추가(10항목·13p) — 우대 1번 "인프라 개선" 명시 공고라서 부릉만 포함, 토스 2종은 직무 정렬상 미포함 결정.

토스페이먼츠 3p/12p — 리멤버 공고 215058 경유 지원, 토스플레이스 3p/11p, 부릉 3p/13p — 마감 7/31). 잔여 선택 항목: 리멤버 IDC 이슈 건수 확정, 지원 폼 문항 대응.

전량 교체, "체계적 이슈 트래킹" 제목 개편, 극대화·대폭·기반/토대 마련·효율적으로 등 25건 구체어로 치환, "X가 아니라 Y" 공식은 페이지당 1회 원칙으로 중복 페이지 정리. 재발 방지: scripts/check_human_voice.py 린터 신설(BAN/WARN 2단계, 논문 용어 화이트리스트) + AGENTS.md Human Voice Rules 10항(금지·주의 어휘, 커밋 전 린터 실행) 추가. 잔여 WARN 5건은 자연 용례로 판정해 유지.

2026-07-19 — 부릉 3인 페르소나 리뷰 반영 + PDF 재생성·검증 (windows-wsl, Claude)

(ai/sources/career/2026-07-19-vroong-data-engineer-posting.md) 후 CTO·CEO· 기술팀장 3인 독립 리뷰 수행 — 전원 BORDERLINE (human/reports/2026-07-19-vroong-persona-resume-review.md).

Maxwell FileSink PoC만 hands-on), ② AWS 서사를 "운영 DB 현행 직접 운영" 우선으로 전환, ③ 소개에 스트리밍 확장 브릿지 + 물류 정합성 연결 문장, ④ 기술 섹션에 "정식 dimensional modeling은 학습 중" 명시, ⑤ "도입처 계속 늘고" 반복 3회→1회. 포트폴리오 정본 2건 동기화: binlog 항목 "사실상 exactly-once"→"at-least-once 전달 + 멱등 적용(effectively-once), DDL 별도 경로", ETL 항목 "2일→5분"을 "기대 효과(설계 산정, 실측 아님)"로 분리 + "적용한 소스부터" 조건 복원.

낮음 판단). career/클로드이력서/부릉-data-engineer/에 산출.

어노테이션 전부 portfolio.hwlabs.dev(localhost 0건), 페이지 수 3/10 확인. human-voice 린터 BAN 0 / WARN 5(기존 자연 용례) 통과.

푸시로 Cloudflare Pages 자동 배포, 라이브 페이지에서 effectively-once 2건· 구표현 0건 curl 확인. 사용자가 부릉 지원 제출 완료(2026-07-19).

제출에는 미적용. 서류 통과 시 면접 대비 카드 — Kafka 구체론(파티션·rebalance· lag)과 Data Mart 모델링(Fact/Dimension·SCD·그레인), 수치 근거 즉답 준비 (리뷰 보고서 참조).

2026-07-19 — 토스페이먼츠 이력서 리뷰 반영 (windows-wsl, Claude)

① Debezium 문구를 검증된 범위로 정정 — "Debezium과 Maxwell은 직접 돌려 검증" → "아키텍처·운영 요건 수준 비교 + Maxwell FileSink PoC만 직접 검증"(소개·경력 bullet 2곳). ② 소개의 주어 없는 "사내 운영 DB와 약 10개 고객사에서 운영되고 있고, 도입처는 계속 늘고 있습니다" 삭제, bullet도 역할 경계(사내 직접 운영 / 고객사는 기술지원팀 경유)로 교체 — 약 10곳·증가 표현은 사례 1 결과 1회만 유지. ③ 헤드라인 "배치" 2회 중복 제거: "MySQL binlog 기반 CDC를 구현하고 Airflow·Kubernetes 플랫폼을 운영한 Data Engineer"(리뷰 제안문을 1줄 폭에 맞게 축약). HTML과 이력서-초안.md 동기화, 초안 메모에 판단 기록.

최초 렌더에서 리뷰 제안 헤드라인 원문이 2줄로 줄바꿈되며 4p로 넘침 → 헤드라인 축약으로 3p 복원. 페이지 경계 구본과 동일(1p 소개+경력 / 2p 기술~사례1 / 3p 사례2~학력), 금지 문구 0건, 링크 어노테이션 10개 전부 portfolio.hwlabs.dev, 1페이지 스크린샷 육안 확인(사진·한글 글리프 정상). 구본은 career/클로드이력서/_backup-2026-07-19/ 보관.

(effectively-once 2건·구표현 0건 확인)이라 무변경.

압축, 토스플레이스 이력서의 동일 점검은 미착수.

2026-07-19 — 토스플레이스 이력서 리뷰 반영 (windows-wsl, Claude)

없음(공통 P0 해당 없음). 남은 지적 4건 반영: ① 헤드라인 직무 정렬(4사 리뷰 P0) — "…정합성을 지켜온 Data Engineer" → "여러 소스의 데이터를 하나의 표준으로 맞춰 온 Data Analytics Engineer 지원자" (경력 직함은 Data Engineer 유지, 헤드라인만 지원 방향). ② 산술 불일치 해소(P1) — "gem 48개·1,310개 버전을 복구" 표현이 누락 156건과 모순처럼 읽힘 → "gem 48개는 gem 단위로 전체 버전 목록을 멱등 upsert로 재적재해 1,310개 버전 적재"로 경력 bullet·사례 2 조치 모두 정정. 근거: 2026-07-15 RubyGems 백필 worklog(gem당 전체버전 upsert, err 0). ③ DW 갭 브릿지 — 기술 섹션에 "(dbt·정식 DW 모델링은 학습 중)" 추가(부릉의 dimensional modeling 표기와 같은 패턴). ④ HTML·이력서-초안.md 동기화 + 초안 메모에 판단 기록.

3p 그밖의~학력), 헤드라인 1줄 렌더 확인, 링크 어노테이션 전부 portfolio.hwlabs.dev, 1페이지 스크린샷 육안 확인. 구본은 _backup-2026-07-19/ 보관. 포트폴리오 PDF(9항목)는 어제 재생성분 유지.

AI kit 축소 — 대체 재료인 수집 정책·지표 정의가 이미 경력 bullet에 배치돼 중복 없이 교체 불가, 사용자 판단 필요), RubyGems DQ 사례의 포트폴리오 승격, 인기도 점수 사례의 정책 결정 서사 압축.