Portfolio Content Strategy

  • 결정일: 2026-08-03
  • 상태: approved
  • 목적: 신규 대표 프로젝트와 기존 실무 사례가 서로 다른 역량을 증명하도록 포트폴리오를 구성

확정된 방향

이 포트폴리오는 한 종류의 결과물만으로 구성하지 않습니다.

  1. 신규 대표 프로젝트는 AI Agent를 기업 업무시스템에 안전하게 연결하는 역량을 증명합니다.
  2. 기존 업무 사례 게시물은 Java/Spring, DB/SQL, 인증, 배포와 운영의 실무 깊이를 증명합니다.

최종 포지셔닝은 다음과 같습니다.

Java/Spring 기반 엔터프라이즈 백엔드 경험을 중심에 두고, 오픈웨이트 LLM과 AI Agent를 기존 업무 트랜잭션에 안전하게 연결할 수 있는 백엔드·플랫폼 엔지니어

ML 모델 연구, 학습 또는 파인튜닝을 핵심 정체성으로 두지 않습니다. AI는 기존 백엔드 역량을 대체하는 분야가 아니라 확장하는 기능입니다.

Track A. 신규 대표 프로젝트

OpsMate Local

  • 상태: implemented, tested-component
  • 형식: 실행 가능한 독립 서비스
  • 역할: AI Agent 응용과 안전한 업무 실행 설계 증명
  • 기술 중심: Java 21, Spring Boot 3.5, Thymeleaf/HttpSession, JPA/H2·PostgreSQL/Flyway, 오픈웨이트 LLM gateway, 서버 주도 정책 조회 포트, Docker/Caddy

첫 번째 수직 범위는 전체 ERP가 아니라 다음 흐름으로 제한합니다.

자연어 구매 요청
-> 정책 근거 검색
-> 구매요청 초안
-> 승인 또는 반려
-> 승인된 요청만 발주 생성
-> 감사 이벤트 기록

필수 통제는 다음과 같습니다.

  • Spring 서비스가 RBAC, 상태 전이와 업무 규칙을 최종 검증
  • 서버가 정책 조회 포트를 먼저 호출하고 사용자 요청과 조회 결과만 모델에 전달
  • LLM은 정책 조회 포트를 포함한 도구를 직접 실행하지 않으며 DB, 임의 URL 또는 승인 상태에 접근하지 않음
  • 모델 출력은 고정 JSON Schema와 서버 측 업무 규칙으로 검증
  • 승인되지 않은 발주와 중복 발주 차단
  • 모델 미연결, 타임아웃 또는 잘못된 출력 시 모델 의존 초안 생성을 저장 전 fail-closed
  • 외부 유료 API로 자동 우회하지 않음
  • 공개 방문자별 workspace 격리·TTL과 API/CSRF/session 보안 경계
  • 동일 모델 요청 single-flight, workspace·전체 quota, queue/follower와 동시 실행 제한
  • one-shot migration과 장기 실행 runtime DB 역할 분리
  • immutable image digest 기반 open, normal/emergency close와 reopen 절차
  • 감사로그, 테스트와 재현 가능한 실행 절차 제공

수직 기능, 공개 웹, PostgreSQL migration·역할 분리, model guard와 배포·중단 자산은 구현됐고 2026-08-04 전체 clean verify에서 54개 테스트가 성공했습니다. 승인된 실제 모델 E2E, 공개 URL·외부 smoke, host egress allowlist·edge/WAF rate limit과 앱·모델 양쪽 호스트 close/reopen rehearsal은 검증하지 않았습니다. 따라서 프로젝트 전체를 verified 또는 운영 완료로 표현하지 않습니다.

Track B. 기존 업무 사례집

  • 상태: 독립 샘플 검증 1건, 원본 검토·비식별 초안 4건
  • 형식: 문제 해결 게시물 + 공개 가능한 최소 재현 코드
  • 역할: Java/Spring 실무 깊이, 기술적 판단, 검증과 운영 경험 증명

사례 게시물은 기술 목록이 아니라 다음 질문에 답해야 합니다.

  1. 어떤 문제가 있었는가
  2. 어떤 제약이 있었는가
  3. 내가 담당한 범위는 무엇인가
  4. 어떤 대안을 검토했는가
  5. 왜 해당 설계를 선택했는가
  6. 어떤 코드와 테스트로 검증했는가
  7. 결과와 한계는 무엇인가

후보와 검토 상태는 case-study-index.md에서 관리합니다.

두 트랙의 역할 분리

결과물 주로 증명하는 것 증명하지 않는 것
OpsMate Local 서버 주도 정책 조회, 구조화된 AI 초안, 승인 통제와 로컬 모델 장애 처리 과거 회사 시스템의 운영 성과
기존 업무 사례 Java/Spring, SQL, 인증, 배포, 장애와 운영 판단 회사 원본 코드의 공개 또는 전체 팀 성과

면접에서는 두 트랙을 다음 문장으로 연결합니다.

기존 실무 사례로 엔터프라이즈 백엔드의 깊이를 증명하고, OpsMate Local로 그 기반 위에 AI Agent를 안전하게 통합하는 현재 역량을 증명한다.

회사 업무 사례 공개 규칙

회사 소유 비공개 저장소는 증거 확인에만 사용합니다.

  • 회사 저장소명, 고객명, 내부 URL, 원본 커밋 메시지와 파일 경로를 공개하지 않음
  • 회사 소스, diff, SQL, 설정과 데이터를 복사하지 않음
  • 본인 귀속과 담당 범위를 원본에서 먼저 확인
  • 게시물은 비식별 문제·제약·판단·검증 중심으로 새로 작성
  • 코드를 보여줄 필요가 있으면 합성 데이터와 일반화한 도메인으로 독립 재구현
  • 원본 검토, 공개 안전성 검토와 재현 코드 검증이 끝나기 전에는 게시 완료로 표시하지 않음

개인 공개 저장소도 게시 전에 자격증명, 개인정보, 라이선스와 README-구현 일치 여부를 검사합니다.

결과물 위치

03_portfolio/case-studies/<slug>.md
02_projects/case-study-samples/<slug>/
02_projects/opsmate-local/
  • evidence/company-github/: 비식별 근거와 주장 관리
  • 03_portfolio/case-studies/: 채용 담당자가 읽는 문제 해결 게시물
  • 02_projects/case-study-samples/: 회사 코드와 독립된 재현 샘플
  • 02_projects/opsmate-local/: 신규 대표 프로젝트

실행 상태와 Work별 완료 조건은 ../WORKS.md, 공통 검수 기준은 review-checklist.md에서 관리합니다.

다음 실행 순서

  1. OpsMate Local 최신 변경분의 전체 clean verify, container와 문서 검수를 완료
  2. 승인된 사설 GPU 모델 호스트에서 실제 모델 구조 출력·p95·실패 E2E 검증
  3. public host의 egress allowlist와 edge/WAF rate limit을 적용하고 외부 URL smoke 수행
  4. 앱·모델 양쪽 호스트의 normal/emergency close와 same-digest reopen rehearsal 수행
  5. GitHub Pages 문구·링크·모바일 렌더링을 다시 확인
  6. case-study-index.md의 다음 Java/Spring 후보를 독립 샘플로 재현