Portfolio Work Ledger

  • 기준일: 2026-08-04
  • 목적: 포트폴리오 작성부터 GitHub Pages 공개까지 작업, 의존성과 검증 근거를 한곳에서 추적
  • 원칙: 문서·코드·테스트·공개 안전성 검토가 함께 끝나기 전에는 완료로 표시하지 않음
  • 공통 검수표: 03_portfolio/review-checklist.md

상태

상태 의미
pending 선행 작업 전 또는 착수 전
in-progress 현재 작성·구현·검수 중
blocked 외부 입력이나 실행 환경이 없어 다음 단계로 갈 수 없음
verified 산출물과 최근 검증 결과가 존재
published 검증된 산출물이 공개 GitHub Pages에서 확인됨

Work 현황

Work 목표 핵심 산출물 완료 조건 현재 상태
W00 GitHub 게시 환경 준비 인증된 GitHub CLI, 작업 브랜치 CLI·계정·remote·branch 확인 verified
W01 회사·개인 근거 정합화 claim, 사례 인덱스, 추가 업무 계정 귀속 비식별 claim과 후보 상태 일치 verified
W02 검수 체계 고정 이 ledger와 공통 체크리스트 모든 Work의 증거·공개 게이트 정의 verified
W03 첫 Java/Spring 사례 공개 인증 통합 게시물, 독립 샘플, 테스트 정상·실패·경계 테스트 성공과 공개 검수 verified
W04 추가 업무 사례 정리 Java/Spring·데이터·AI 사례 초안 각 글의 근거·한계·재현 계획 명시 verified
W05 OpsMate Local 구현 설계, 수직 기능, 테스트 RBAC·상태·멱등성·fail-closed 테스트 성공 verified
W06 GitHub Pages 블로그 구현 홈, 탐색, 레이아웃, 배포 workflow 반응형 규칙·링크·접근성·빌드 검수 verified
W07 통합 검수 테스트·링크·민감정보·렌더링 결과 공통 검수표의 필수 항목과 미검증 한계 기록 verified
W08 GitHub 공개 commit, push, PR, Pages URL 원격 배포 성공과 공개 URL 응답 확인 published
W09 OpsMate 공개 데모와 재현 가능한 운영 공개 session UI, model/DB 보호, Docker/Caddy, open·close·reopen, 코드 설명 기준 최신 clean verify, 실제 모델·외부 smoke·외부 정책과 양 호스트 rehearsal in-progress

의존성

W00 -> W01 -> W02
             |-> W03 --|
             |-> W04 --|-> W07 -> W08
             |-> W05 --|
             `-> W06 --'
W08 -> W09

Work별 검증 기록

W00

  • GitHub CLI 2.97.0
  • 인증 계정: 공개 저장소 소유 계정
  • 작업 브랜치: agent/portfolio-blog
  • 검증일: 2026-08-03

W01

  • 추가 업무 계정의 소유자 확인일: 2026-08-03
  • 공개 반영: 계정명 대신 비식별 귀속 사실과 확인된 직접 기여 범위만 기록
  • 추가 claim: WORK-DATA-03, CLM-DATA-003, CS-JAVA-11

W02

W04

  • Java/Spring 기술 노트 4건과 AI 응용 기술 노트 2건 작성
  • 모든 글은 source-reviewed 또는 tested-component 한계를 유지하고 공개 재현 전 완료 표현을 사용하지 않음
  • 회사·계정·저장소 식별자와 credential 패턴 스캔 통과: 2026-08-03

W03

  • Spring Boot 3.5.16, Java 21, Maven Wrapper 3.9.9
  • DB 인증, HMAC SSO adapter, 로컬 RBAC, 세션 회전, CSRF와 fail-closed 독립 구현
  • mvnw.cmd -q clean verify: 24개 성공, 실패·오류·건너뜀 0개 (2026-08-03)
  • 공개 상태: sample-verified; 실제 회사 시스템과 운영 환경 검증을 뜻하지 않음

W05

  • Spring Boot 3.5.16, Java 21, Maven Wrapper 3.9.11
  • 구매 초안·제출·승인·반려·발주·감사 수직 기능과 서버 주도 policy.search 조회 포트 구현; 조회 결과만 모델에 전달하고 모델에는 도구 실행 권한을 부여하지 않음
  • mvnw.cmd -q clean verify: 19개 성공, 실패·오류·건너뜀 0개 (2026-08-03)
  • 공개 상태: implemented, tested-component; 실제 오픈웨이트 모델 서버 E2E와 운영 배포는 미검증

W06

  • Jekyll 레이아웃, 홈, 공통 탐색, 상태 배지, 사례·문서 레이아웃과 반응형 CSS 구현
  • GitHub Pages workflow의 Jekyll 검증, build와 deploy 성공: Actions run 30782896966
  • 기본 실제 뷰포트 1280x720에서 홈과 공개 문서의 CSS 적용, heading, 탐색과 가로 넘침 없음 확인
  • 52rem, 32rem 반응형 규칙, 키보드 focus, skip link, reduced-motion 규칙을 정적으로 검토
  • 검수 한계: 앱 내 실제 모바일 뷰포트 전환이 지원되지 않아 물리 모바일 기기의 최종 시각 검수는 별도 UX 점검 항목으로 남김

W07

  • 원격 CI: Spring Security 인증 브리지 24개, OpsMate Local 19개, 저장소 공개 검수 12개 테스트 성공
  • Jekyll PR build, Markdown 상대 링크, Pages pretty URL, 공개 텍스트 credential·로컬 경로 검사 성공
  • 공개 홈과 WORKS, evidence index, 전략, 체크리스트, AI context, OpsMate, 인증 사례, 회사 근거 경로를 직접 열어 404 없음 확인
  • 전략의 track-a-flagship 앵커와 llms.txt의 공개 URL을 확인하고 오래된 .html 문서 링크가 없음을 확인
  • 모델 서버가 없는 상태는 성공으로 간주하지 않음. 실제 오픈웨이트 모델 E2E와 운영 부하 검증은 계속 미검증으로 표시

W08

  • 구현·배포 PR #3, 공개 링크 보정 PR #4, Pages URL 보정 PR #5 병합
  • 공개 URL: son1004007.github.io/engineering-career-portfolio
  • GitHub Pages workflow build 방식과 원격 deploy 성공, 홈·사례·프로젝트·근거 문서 응답 확인
  • 공개 판정일: 2026-08-03

W09

  • 구현일: 2026-08-04
  • 공개 웹: Thymeleaf/HttpSession, 실제 CSRF cookie, 서버 DemoPrincipal, /api/** 거부와 방문자별 workspace 격리·TTL·정리
  • 자원 보호: 동일 요청 single-flight, workspace·전체 quota, 제한 queue·follower와 전체 모델 동시 실행 기본값 1
  • 데이터 경계: PostgreSQL/Flyway, DB admin·one-shot migration·runtime 역할 분리, runtime DDL·Flyway history 접근 거부 검증 경로
  • 배포 경계: full-digest app/base/service image, restart: no, 분리 network, read-only·최소 권한 container, bounded log와 Caddy access log 미활성
  • 운영 자산: 앱·모델 호스트별 open, normal close, 환경 파일 독립 emergency close, closed verifier와 same-digest reopen 계약
  • 설명 기준: 03_portfolio/code-explanation-standard.md와 핵심 업무 경계의 한국어 Javadoc·주석
  • mvnw.cmd -q clean verify: 54개 성공, 실패·오류·건너뜀 0개 (2026-08-04)
  • 미검증 gate: 승인된 실제 모델 E2E, public URL·외부 smoke, host egress allowlist, edge/WAF rate limit, 앱·모델 양쪽 호스트의 normal/emergency close와 same-digest reopen rehearsal
  • 공개 상태: implemented, tested-component; 위 gate가 끝날 때까지 전체 서비스 verified 또는 운영 완료로 표시하지 않음

다음 실행 순서

  1. OpsMate Local 최신 변경분의 전체 clean verify, container/config와 문서 검수를 완료합니다.
  2. 승인된 사설 GPU 모델 호스트에서 실제 구조 출력·p95·실패 경계를 검증합니다.
  3. host egress allowlist와 edge/WAF rate limit을 적용한 뒤 public URL 외부 smoke를 수행합니다.
  4. 앱·모델 양쪽 호스트의 normal/emergency close와 same-digest reopen을 rehearsal하고 최종 상태를 CLOSED로 둡니다.
  5. 03_portfolio/case-study-index.md의 다음 Java/Spring 사례를 독립 재구현하고 검수합니다.
  6. evidence/company-github/monthly/를 월말에 갱신하고 공개 링크와 Pages workflow 상태를 정기 확인합니다.