아마존
경력근거: Generative AI Innovation Center helps AWS customers implement Generative AI
※ 실제 산출물이 아닌 AI 예측 시안입니다.
공고가 Generative AI Innovation Center 의 일로 '고객과 한 단계씩 함께 맞춤 솔루션을 만든다' 를 앞세우고, 주요 업무에 'evaluate generative AI solutions' 와 '고객에게 adoption patterns 와 paths to production 을 안내한다' 를 나란히 적었습니다. 평가와 프로덕션 이관 사이에 놓이는 판단이 이 포지션의 자리이고, 이 포트폴리오는 그 판단을 기준표와 규칙으로 옮깁니다. 여러 프로젝트와 프로덕션 환경을 오가며 문제를 진단한다는 자격요건도 같은 지점을 가리킵니다. 이 포트폴리오가 보여주는 것은 수용 기준을 데이터로 두고 측정값과 맞춰 판정하는 기술이며, AWS Bedrock·SageMaker 운영 경험이나 고객사 도메인 전문성은 주장하지 않습니다. 모르는 깊이는 면접에서 모른다고 말하는 편이 낫습니다.
'Generative AI Innovation Center helps AWS customers'. 고객 GenAI 배포가 핵심.
'real world problems with significant impact'. 임팩트 검증이 직격.
'This is a team of strategists, scientists, engineers, and architects working step-by-step with customers'. 고객과 함께 맞춤 솔루션을 짓는 자리입니다.
PoC 실행이 프로덕션 기준에 닿았는지 항목별로 가릅니다. 유스케이스별 수용 기준표를 두고 실행 기록의 측정값과 맞춰 통과·미달을 정하며, 미달이면 측정값과 기준값을 함께 냅니다. 지표가 비어 판단할 수 없으면 통과로 넘기지 않고 측정 누락으로 표시하고, 기준표에 없는 유스케이스는 미매칭으로 남겨 기준을 먼저 정하게 합니다. PoC 실행 기록은 실 고객사 데이터 대신 지원자가 오픈 모델로 직접 돌린 결과를 가정합니다.
고객사와 두 주 동안 PoC 를 돌리고 나서 프로덕션으로 보낼지 정하는 자리에 앉는 FDE 입니다. 정확도는 괜찮은데 지연이 걸리는지, 비용이 걸리는지, 근거를 못 대는 답이 남는지를 매번 지표를 훑어 판단하던 사람입니다.
유스케이스별 수용 기준을 표로 두고 PoC 실행의 측정값과 맞추면, 통과와 미달이 규칙으로 정해지고 미달 항목마다 측정값과 기준값이 근거로 남는다는 가정입니다. 기준표에 없는 유스케이스는 미매칭으로 빠지므로 기준이 아직 없는 구간이 그대로 드러납니다.
PoC 실행 기록과 수용 기준표를 받아 항목마다 통과·미달을 판정하고, 미달이면 측정값과 기준값을 나란히 붙여 유스케이스별로 묶은 판정 리포트를 터미널과 Markdown 파일로 내는 CLI 가 도는 완결품입니다.
직접 돌린 PoC 실행 40건에 손으로 붙인 정답 판정과 대조해 일치율을 내고, 미매칭이 몰리는 유스케이스를 모아 기준표에 없는 구간을 목록으로 냅니다.
판정 결과를 기술·비즈니스·임원 세 청중용 브리핑 초안으로 조립하고, 청중마다 어느 항목을 앞세울지 규칙으로 정하는 단계입니다.
FDE 가 PoC 실행 기록과 기준표를 넣으면 항목마다 통과·미달과 측정값·기준값이 유스케이스별로 묶여 나오는 과정을 시연합니다.
직접 돌린 PoC 실행 40건과 손으로 붙인 정답 판정을 대조해 일치율을 냅니다. 단, 정답과 실행 기록을 모두 작성자가 만든 합성 기준이라 성능 검증이 아니라 데모 조건 동작입니다.
지표가 비었거나 유스케이스 표기가 흔들리거나 기준표에 없는 유스케이스가 섞인 입력 30종을 넣어도 출력 형식이 안 깨지고 측정 누락·미매칭으로 빠지는 비율을 보여줍니다.
기준값을 바꿨을 때 옛 판정이 어떻게 뒤집히는지 회귀로 확인합니다.
진짜 성능 검증은 여기서 멈춥니다. 위 수치는 작성자가 직접 돌린 실행의 자가채점이며, 실제 프로덕션 이관 판단은 아마존 고객사의 실 PoC 지표와 실 수용 기준이 있어야 측정됩니다. 이 포트폴리오는 그 검증을 바로 돌릴 수 있는 상태까지 만듭니다.
수치는 합성 데이터 자가채점이라 성능 증명이 아니므로, 면접에서는 데모 동작과 실검증 준비 상태로 솔직히 설명합니다.
정답을 작성자가 붙였으니 잘 맞는 게 당연하므로, 지표 결측과 기준표에 없는 유스케이스를 일부러 섞어 쉬운 문제만 푸는 함정을 피합니다.
이 포트폴리오가 보여주는 것은 수용 기준을 데이터로 두고 측정값과 맞춰 판정하는 기술이며, AWS Bedrock·SageMaker 운영 경험이나 고객사 도메인 전문성은 주장하지 않습니다. 판정은 기준 비교가 하고 LLM 은 담당자가 읽을 요약 문장만 맡습니다.
기준을 넘었다고 프로덕션에서 잘 돈다는 뜻은 아니어서 표본이 작으면 지표가 흔들리므로, 판정에 표본 수를 함께 실어 단정하지 않습니다.
실제 도입 때는 고객사마다 수용 기준과 담당 조직이 다르므로, 기준표를 새로 채우는 일을 도입 단계 과제로 둡니다.
① 인라인 샘플 · ② seed.json 다운로드 · ③ 증강 프롬프트. 세 층 모두 동일한 schema 에서 파생.
고객사와 돌린 PoC 실행 기록입니다. 지원자가 오픈 모델로 유스케이스 세 종을 직접 돌려 만들 수 있는 지표만 담습니다. 지표가 비어 판단할 수 없는 실행, 유스케이스 표기가 흔들린 실행, 기준표에 없는 유스케이스를 섞었습니다. 통과 여부와 기준값은 이 표에 두지 않습니다.
| run_no | usecase_raw | model_raw | ran_on | answer_accuracy | grounded_rate | refusal_rate | p95_latency_ms | cost_per_1k_usd | sample_size |
|---|---|---|---|---|---|---|---|---|---|
| PR-001 | 사내 문서 질의응답 | claude-haiku-4-5 | 2026-08-04 | 0.91 | 0.94 | 0.06 | 1,420 | 0.42 | 120 |
| PR-002 | 사내 문서 질의응답 | claude-sonnet-4-5 | 2026-08-05 | 0.95 | 0.97 | 0.04 | 3,180 | 2.1 | 120 |
| PR-003 | 계약서 조항 추출 | claude-sonnet-4-5 | 2026-08-06 | 0.88 | 0.9 | 0.09 | 2,640 | 1.95 | 80 |
| PR-004 | 계약서 조항 추출 | claude-haiku-4-5 | 2026-08-07 | 0.79 | 0.83 | 0.14 | 1,180 | 0.38 | 80 |
| PR-005 | 상담 로그 요약 | claude-haiku-4-5 | 2026-08-08 | 0.86 | — | 0.05 | 980 | 0.31 | 150 |
아래 JSON Schema 를 그대로 만족하는 PoC 실행 행을 60개 더 만들어 주세요. 유스케이스는 네 종을 섞고 그중 하나는 기준표에 없는 종으로 둡니다. 2할은 지표가 하나씩 비어 있게 하고, 유스케이스 표기는 띄어쓰기를 흔들어 주세요. 통과 여부나 기준값은 넣지 마세요.
{"type": "object", "properties": {"run_no": {"type": "string"}, "usecase_raw": {"type": "string"}, "model_raw": {"type": "string"}, "ran_on": {"type": "string"}, "answer_accuracy": {"type": ["number", "null"]}, "grounded_rate": {"type": ["number", "null"]}, "refusal_rate": {"type": ["number", "null"]}, "p95_latency_ms": {"type": ["integer", "null"]}, "cost_per_1k_usd": {"type": ["number", "null"]}, "sample_size": {"type": "integer"}}, "required": ["run_no", "usecase_raw", "model_raw", "ran_on", "sample_size"]}{"type": "object", "properties": {"run_no": {"type": "string"}, "usecase_raw": {"type": "string"}, "model_raw": {"type": "string"}, "ran_on": {"type": "string"}, "answer_accuracy": {"type": ["number", "null"]}, "grounded_rate": {"type": ["number", "null"]}, "refusal_rate": {"type": ["number", "null"]}, "p95_latency_ms": {"type": ["integer", "null"]}, "cost_per_1k_usd": {"type": ["number", "null"]}, "sample_size": {"type": "integer"}}, "required": ["run_no", "usecase_raw", "model_raw", "ran_on", "sample_size"]}유스케이스별 프로덕션 수용 기준표입니다. 지표와 비교 연산자, 기준값, 차단 여부, 담당을 한 행에 둡니다. 차단 기준과 참고 기준을 섞어 두어 미달이 곧 중단인지 아닌지가 갈립니다. 실행 기록에 나오는 유스케이스 중 일부는 일부러 넣지 않아 미매칭이 도출되게 둡니다.
| gate_no | usecase_type | metric | operator | threshold | blocking | owner |
|---|---|---|---|---|---|---|
| GT-01 | 사내 문서 질의응답 | answer_accuracy | >= | 0.9 | true | 솔루션 아키텍트 |
| GT-02 | 사내 문서 질의응답 | grounded_rate | >= | 0.92 | true | 솔루션 아키텍트 |
| GT-03 | 사내 문서 질의응답 | p95_latency_ms | <= | 2,000 | true | 플랫폼 |
| GT-04 | 사내 문서 질의응답 | cost_per_1k_usd | <= | 1 | false | 계정 담당 |
| GT-05 | 계약서 조항 추출 | answer_accuracy | >= | 0.9 | true | 솔루션 아키텍트 |
아래 JSON Schema 를 그대로 만족하는 수용 기준 행을 40개 더 만들어 주세요. 유스케이스마다 지표를 3~4개씩 붙이고 blocking 을 참·거짓으로 섞습니다. 실행 기록에 나오는 유스케이스 중 일부는 일부러 넣지 마세요 — 미매칭이 있어야 기준의 구멍이 드러납니다.
{"type": "object", "properties": {"gate_no": {"type": "string"}, "usecase_type": {"type": "string"}, "metric": {"type": "string"}, "operator": {"type": "string", "enum": [">=", "<="]}, "threshold": {"type": "number"}, "blocking": {"type": "boolean"}, "owner": {"type": "string"}}, "required": ["gate_no", "usecase_type", "metric", "operator", "threshold", "blocking"]}{"type": "object", "properties": {"gate_no": {"type": "string"}, "usecase_type": {"type": "string"}, "metric": {"type": "string"}, "operator": {"type": "string", "enum": [">=", "<="]}, "threshold": {"type": "number"}, "blocking": {"type": "boolean"}, "owner": {"type": "string"}}, "required": ["gate_no", "usecase_type", "metric", "operator", "threshold", "blocking"]}| Python | 실행 기록과 기준표를 맞춰 비교 연산자대로 판정하는 규칙 엔진을 맡습니다. |
| Amazon Bedrock | PoC 실행을 만들 때 모델 호출 경로로 가정합니다. 판정 자체는 클라우드에 기대지 않습니다. |
| Markdown | 유스케이스별로 묶은 판정 리포트를 파일로 냅니다. |
✗ fail → 미매칭이 절반을 넘으면 기준표를 먼저 채웁니다.
✓ pass → 2주차 정답 대조로 넘어갑니다.
✗ fail → 어긋난 유형을 모아 기준값을 다시 봅니다.
✓ pass → 3주차 청중별 브리핑으로 넘어갑니다.
실행 한 건과 기준 한 항목이 만나는 자리마다 통과·미달을 정합니다. 미달이면 측정값과 기준값을 함께 싣고, 지표가 비면 통과로 넘기지 않고 측정 누락으로 뺍니다. 화면과 리포트는 이 사유 코드로 묶습니다.
{"type": "object", "properties": {"verdict_no": {"type": "string"}, "run_no": {"type": "string"}, "gate_no": {"type": ["string", "null"]}, "metric": {"type": ["string", "null"]}, "gate_code": {"type": "string", "enum": ["passed", "below_threshold", "cost_over", "metric_missing", "gate_unmapped"]}, "measured": {"type": ["number", "null"]}, "threshold": {"type": ["number", "null"]}, "blocking": {"type": ["boolean", "null"]}, "owner": {"type": ["string", "null"]}, "evidence": {"type": "array", "items": {"type": "object", "properties": {"field": {"type": "string"}, "agg": {"type": ["string", "null"]}, "value": {}}, "required": ["field", "value"]}}, "summary": {"type": "string"}, "hedge": {"type": ["string", "null"]}}, "required": ["verdict_no", "run_no", "gate_code", "evidence", "summary"]}[
{
"verdict_no": "GV-001",
"run_no": "PR-002",
"gate_no": "GT-01",
"metric": "answer_accuracy",
"gate_code": "passed",
"measured": 0.95,
"threshold": 0.9,
"blocking": true,
"owner": "솔루션 아키텍트",
"evidence": [
{
"field": "answer_accuracy",
"agg": null,
"value": 0.95
},
{
"field": "threshold",
"agg": null,
"value": 0.9
},
{
"field": "sample_size",
"agg": null,
"value": 120
}
],
"summary": "사내 문서 질의응답의 정확도가 0.95 로 기준 0.90 을 넘어 통과입니다.",
"hedge": null
},
{
"verdict_no": "GV-002",
"run_no": "PR-002",
"gate_no": "GT-02",
"metric": "grounded_rate",
"gate_code": "passed",
"measured": 0.97,
"threshold": 0.92,
"blocking": true,
"owner": "솔루션 아키텍트",
"evidence": [
{
"field": "grounded_rate",
"agg": null,
"value": 0.97
},
{
"field": "threshold",
"agg": null,
"value": 0.92
}
],
"summary": "근거율이 0.97 로 기준 0.92 를 넘어 통과입니다.",
"hedge": null
},
{
"verdict_no": "GV-003",
"run_no": "PR-002",
"gate_no": "GT-03",
"metric": "p95_latency_ms",
"gate_code": "below_threshold",
"measured": 3180,
"threshold": 2000,
"blocking": true,
"owner": "플랫폼",
"evidence": [
{
"field": "p95_latency_ms",
"agg": null,
"value": 3180
},
{
"field": "threshold",
"agg": null,
"value": 2000
}
],
"summary": "p95 지연이 3180ms 로 기준 2000ms 를 넘겨 차단 항목에서 미달입니다.",
"hedge": "차단 기준이라 이 항목이 풀리기 전에는 프로덕션으로 보내지 않습니다."
},
{
"verdict_no": "GV-004",
"run_no": "PR-004",
"gate_no": "GT-05",
"metric": "answer_accuracy",
"gate_code": "below_threshold",
"measured": 0.79,
"threshold": 0.9,
"blocking": true,
"owner": "솔루션 아키텍트",
"evidence": [
{
"field": "answer_accuracy",
"agg": null,
"value": 0.79
},
{
"field": "threshold",
"agg": null,
"value": 0.9
},
{
"field": "model_raw",
"agg": null,
"value": "claude-haiku-4-5"
}
],
"summary": "계약서 조항 추출의 정확도가 0.79 로 기준 0.90 에 못 미쳐 차단 항목에서 미달입니다.",
"hedge": null
},
{
"verdict_no": "GV-005",
"run_no": "PR-008",
"gate_no": "GT-08",
"metric": "cost_per_1k_usd",
"gate_code": "cost_over",
"measured": 4.8,
"threshold": 3,
"blocking": true,
"owner": "계정 담당",
"evidence": [
{
"field": "cost_per_1k_usd",
"agg": null,
"value": 4.8
},
{
"field": "threshold",
"agg": null,
"value": 3
}
],
"summary": "1천 건당 비용이 4.80 달러로 기준 3.00 달러를 넘겨 계정 담당에게 올립니다.",
"hedge": null
},
{
"verdict_no": "GV-006",
"run_no": "PR-011",
"gate_no": "GT-09",
"metric": "answer_accuracy",
"gate_code": "metric_missing",
"measured": null,
"threshold": 0.85,
"blocking": true,
"owner": "솔루션 아키텍트",
"evidence": [
{
"field": "answer_accuracy",
"agg": null,
"value": null
},
{
"field": "threshold",
"agg": null,
"value": 0.85
}
],
"summary": "정확도가 측정되지 않아 통과로 넘기지 않고 측정 누락으로 표시합니다.",
"hedge": "지표가 비면 판단할 수 없으므로 다시 측정해야 합니다."
},
{
"verdict_no": "GV-007",
"run_no": "PR-009",
"gate_no": null,
"metric": null,
"gate_code": "gate_unmapped",
"measured": null,
"threshold": null,
"blocking": null,
"owner": null,
"evidence": [
{
"field": "usecase_raw",
"agg": null,
"value": "제조 도면 판독"
},
{
"field": "gate_no",
"agg": "count",
"value": 12
}
],
"summary": "제조 도면 판독은 기준표 열두 항목 어디에도 없어 판정하지 않고 미매칭으로 남깁니다.",
"hedge": "기준을 먼저 정해야 이 유스케이스를 판정할 수 있습니다."
}
][자동 검증 · 코드가 판정합니다] 1. gate_code 가 enum 다섯 값 중 하나인지 확인합니다. 2. verdict_no·run_no·gate_code·evidence·summary 가 모두 채워졌는지 확인합니다. 3. gate_no 가 수용 기준표에 실재하는 항목 번호인지 대조합니다. 4. gate_no 가 있으면 metric·threshold·blocking·owner 가 그 기준 행의 값과 같은지 대조합니다. 5. measured 가 그 실행 행의 metric 컬럼 값과 같은지 대조합니다. 6. gate_code 가 passed 이면 operator 방향대로 measured 가 threshold 를 만족하는지 다시 계산합니다. 7. gate_code 가 below_threshold·cost_over 이면 만족하지 않는지 다시 계산합니다. 8. measured 가 null 이면 gate_code 가 metric_missing 인지 확인합니다. 9. evidence 의 field 이름이 실행 기록과 기준표에 실재하는 컬럼인지 대조합니다. 10. agg 가 없는 evidence 의 value 가 그 컬럼에 수록된 행 값과 같은지 확인합니다. 11. summary 가 존댓말로 끝나는지 확인합니다. [평가 러너 · 2주차] 직접 돌린 PoC 실행 40건에 손으로 붙인 정답 판정과 대조해 일치율과 사유 코드별 분포를 내고, 미매칭이 몰리는 유스케이스를 모아 기준표에 없는 구간을 목록으로 냅니다. [수동 검증 · 사람이 봅니다] 1. 차단 기준과 참고 기준을 어디서 가를지 유스케이스마다 담당자가 정합니다. 2. 표본 수가 작은 실행의 판정을 그대로 쓸지 담당자가 정합니다.