디비안츠
경력근거: AI Agent 기술을 활용해 실제 비즈니스 문제를 해결하는 제품과 맞춤형 웹 플랫폼을 만들고 있습니다
※ 실제 산출물이 아닌 AI 예측 시안입니다.
공고는 Claude Code 와 OpenAI Codex 를 기본 개발 환경으로 두고, Custom Skill·Command·MCP 로 반복 개발을 자동화한 경험과 인증·권한, 관리자 페이지, 통계·대시보드 개발 경험을 우대로 함께 적습니다. 그리고 신규 웹서비스를 혼자 기획부터 배포까지 끌고 갈 사람 한 명을 뽑습니다. 이 포트폴리오는 그 요구를 그대로 골조로 씁니다. 화면과 API, 데이터베이스를 한 사람이 세우고, 판정 규칙과 경계 조건 테스트는 coding agent 로 돌리며, 2주차에 인증·권한을 붙여 Docker 이미지로 클라우드에 올립니다. 디비안츠가 어떤 제품을 파는지는 공개된 자료로 확인되지 않아 도메인을 짐작해 넣지 않았고, 공고가 직접 요구한 것만 제품의 뼈대로 삼았습니다. 이 포트폴리오는 화면부터 배포까지 혼자 세우는 능력을 보여줍니다. 표시광고 심의나 카테고리별 규제 실무의 전문성은 주장하지 않습니다. 모르는 깊이는 면접에서 모른다고 말하는 편이 낫습니다.
자격요건이 Claude Code 또는 OpenAI Codex 를 실제 프로젝트에 써 본 경험을 요구하고, 우대사항은 Custom Skill 과 Command, MCP 로 개발 자동화 워크플로우를 만든 경험까지 적습니다. 도구를 써 봤다는 말보다 그 도구로 무엇을 끝냈는지가 서류에서 갈립니다.
모집분야가 1명인데 주요업무는 기획에서 설계, 개발, 배포로 이어지고 프론트엔드와 백엔드, API, 데이터베이스가 전부 그 한 사람 몫입니다. 그래서 기능 조각이 아니라 화면 하나를 끝까지 세운 결과물이 필요합니다.
우대사항이 인증·권한과 관리자 페이지, 통계·대시보드를 한 줄에 담고 그 아래 클라우드, Docker, Linux, CI/CD 운영 경험이 이어집니다. 담당자가 들어와 쓰는 화면을 만들고 그것을 배포까지 굴려 본 자리입니다.
커머스 운영자가 상품 정보를 올리면 훅과 섹션별 문구가 나오고, 문구마다 어느 속성과 후기, 규격에서 나온 말인지 근거가 붙는 관리자 페이지입니다. 내보내도 되는지는 금지표현 대조와 주장 단위 근거 대조가 정하고, 문장을 짓는 일만 모델이 맡습니다.
상세페이지를 직접 만드는 커머스 운영자 — 상품마다 백지에서 카피를 쓰고, 카테고리마다 다른 금지 표현을 외워 가며 문구를 고르다 근거 없는 문장을 그대로 올린다
카피를 다시 만드는 이유는 문장 솜씨가 모자라서가 아니라 어떤 낱말이 무엇에 근거했는지가 기록으로 남지 않기 때문입니다. 문구에서 순위 표현과 수치 주장을 끊어 내 속성과 후기, 규격에 되짚어 붙이고 금지표현이 든 문구를 집어내면, 운영자는 고칠 문구만 골라 손봅니다.
커머스 운영자가 쓰는 화면 하나가 돕니다. 상품 정보를 올리면 훅과 섹션 문구가 나오고, 문구마다 근거가 붙으며 판정 다섯 갈래로 묶입니다. 이미지와 GIF 생성은 빼고 글 문구만 다루며, 상품 정보는 화면에서 직접 올리는 것으로 시작합니다.
정답을 붙인 상품 40건으로 판정 일치율을 자동으로 내고 어긋난 유형을 리포트로 남깁니다. 로그인과 권한을 붙이고 Docker 이미지로 만들어 2주차부터 클라우드에서 운영합니다.
카피 이력이 쌓인 만큼 카테고리별 섹션 순서와 금지표현 적발 추이를 통계 화면으로 내고, Custom Skill 과 MCP 로 상품 여러 건의 카피 재생성을 한 명령에 묶습니다.
운영자가 상품 정보를 올리면 훅과 섹션 문구가 나오고, 문구마다 어느 속성과 후기, 규격에서 나왔는지 근거가 같이 붙습니다.
속성이 비어 있거나 후기가 없는 상품, 카테고리 표기 흔들림이 있는 상품을 섞은 30종을 올려도 화면이 죽지 않고 판정 다섯 갈래 중 하나로 떨어집니다.
금지표현에 든 낱말이 문구에 남으면 그 낱말을 집어 보여주고, 속성과 후기, 규격 어디에도 없는 주장은 근거 없는 주장으로 따로 모읍니다.
정답을 붙인 상품 40건으로 판정 다섯 갈래의 일치율을 냅니다. 정답과 데이터를 모두 작성자가 만든 합성 기준이라 성능 검증이 아니라 데모 조건 동작입니다.
위 수치는 더미데이터 자가채점이고, 카피가 실제 심의를 통과하는지는 디비안츠가 만드는 서비스의 실제 상품과 카테고리별 심의 기준이 있어야 확인됩니다. 이 포트폴리오는 그 확인을 바로 돌릴 수 있는 상태로 만듭니다.
수치는 합성 데이터 자가채점이라 성능 증명이 아닙니다. 면접에서는 데모 동작과 실검증 준비 상태로 솔직히 설명합니다.
정답을 작성자가 만들었으니 잘 맞는 것이 당연합니다. 속성이 비어 있는 상품, 카테고리 표기 흔들림, 카피 이력에 아직 없는 새 카테고리, 후기수가 0인 경계 행과 속성이 열두 개인 행을 더미에 일부러 섞어 쉬운 문제만 푸는 함정을 피합니다.
금지표현 목록은 운영자가 손으로 적어 둔 것이라 카테고리 심의 기준 전체가 아닙니다. 목록에 없는 낱말은 걸리지 않으므로 판정을 통과했다는 말을 심의를 통과했다는 뜻으로 읽지 않게 화면에 근거를 항상 같이 둡니다.
주장마다 근거가 붙어도 문장 전체가 과장으로 읽힐 수 있습니다. 주장 대조는 인용 여부만 보고 어조는 보지 않으므로, 훅은 사람이 한 번 읽는 자리를 남깁니다.
실제 도입에서는 카테고리별 심의 기준과 섹션 순서가 회사마다 다릅니다. 지금은 금지표현이 상품 행에 실려 오는데, 이를 카테고리별 기준표로 빼고 섹션 순서를 설정으로 옮기는 일은 도입 단계 과제로 분리합니다.
① 인라인 샘플 · ② seed.json 다운로드 · ③ 증강 프롬프트. 세 층 모두 동일한 schema 에서 파생.
카피를 만들 상품의 속성과 후기, 규격, 그리고 그 상품에 걸린 금지표현입니다. 속성목록이 비어 있고 리뷰요약과 규격이 null 인 행, 카테고리 표기가 공백으로 흔들린 행, 속성이 열두 개로 가장 많은 행과 후기수가 0인 경계 행을 함께 넣었습니다.
| 상품id | 상품명 | 카테고리 | 속성목록 | 리뷰요약 | 후기수 | 규격 | 금지표현 |
|---|---|---|---|---|---|---|---|
| PD01 | 노이즈캔슬링 이어버드 N1 | 무선이어폰 | ["노이즈캔슬링","30시간 재생"] | 착용감이 좋다는 평이 많고 통화 품질은 호불호가 갈립니다 | 412 | 블루투스 5.3 | ["최고","1위"] |
| PD02 | 저지연 게이밍 이어버드 L2 | 무선 이어폰 | ["저지연 게임 모드"] | 연결이 끊기지 않는다는 후기가 있습니다 | 58 | IPX4 | ["최고"] |
| PD03 | 장 건강 유산균 100억 | 건강기능식품 | ["유산균 100억 CFU"] | 속이 편해졌다는 후기가 있습니다 | 233 | 1일 1포 | ["치료","효능 보장"] |
| PD04 | 신상품 준비 중 | 신규카테고리 | [] | — | 0 | — | [] |
| PD05 | 천연 유래 주방세제 500 | 주방세제 | ["천연 유래 계면활성제"] | 세척력은 좋고 향이 강하다는 평이 있습니다 | 147 | 500ml | ["무해","100% 안전"] |
아래 JSON Schema 에 맞는 상품 행을 더 만들어 주세요. {"type":"object","properties":{"상품id":{"type":"string"},"상품명":{"type":"string"},"카테고리":{"type":"string"},"속성목록":{"type":"array","items":{"type":"string"}},"리뷰요약":{"type":["string","null"]},"후기수":{"type":"integer","minimum":0},"규격":{"type":["string","null"]},"금지표현":{"type":"array","items":{"type":"string"}}},"required":["상품id","상품명","카테고리","속성목록","리뷰요약","후기수","규격","금지표현"]} 쉬운 데이터만 만들지 말 것 — 다음 하드 케이스를 의도적으로 섞어라: (1) 속성목록이 빈 배열이고 리뷰요약과 규격이 null 인 정보 부족 건, (2) 같은 카테고리를 공백·중점으로 다르게 적은 표기 흔들림 건('무선이어폰'과 '무선 이어폰'), (3) 앞서 카피를 낸 적이 없는 새 카테고리 건, (4) 후기수가 0인 경계 건과 속성목록이 12개로 가장 많은 건, 리뷰요약이 '좋아요' 한 낱말뿐인 건, (5) 금지표현에 '치료'·'무해'·'효능 보장'이 든 규제 카테고리 건. 생성한 행은 반드시 위 스키마를 통과해야 하며, 타입을 깨뜨리는 시도는 별도로 3건만 표시해 두세요.{"type":"object","properties":{"상품id":{"type":"string"},"상품명":{"type":"string"},"카테고리":{"type":"string"},"속성목록":{"type":"array","items":{"type":"string"}},"리뷰요약":{"type":["string","null"]},"후기수":{"type":"integer","minimum":0},"규격":{"type":["string","null"]},"금지표현":{"type":"array","items":{"type":"string"}}},"required":["상품id","상품명","카테고리","속성목록","리뷰요약","후기수","규격","금지표현"]}이미 카피를 내보낸 상품의 카테고리와 그때 쓴 섹션 순서입니다. 새 상품의 섹션 차례를 정하는 기준이 되고, 여기에 같은 카테고리가 없는 상품은 순서를 정할 근거가 없습니다.
| 이력id | 상품id | 카테고리 | 섹션순서 | 게시일 |
|---|---|---|---|---|
| HS01 | PD31 | 무선이어폰 | ["훅","특징","리뷰","규격","구매유도"] | 2026-06-02 |
| HS02 | PD32 | 무선이어폰 | ["훅","특징","리뷰","규격","구매유도"] | 2026-06-11 |
| HS03 | PD33 | 건강기능식품 | ["훅","규격","특징","리뷰","구매유도"] | 2026-06-18 |
| HS04 | PD34 | 건강기능식품 | ["훅","규격","특징","리뷰","구매유도"] | 2026-07-01 |
| HS05 | PD35 | 주방세제 | ["훅","특징","규격","리뷰","구매유도"] | 2026-07-07 |
아래 JSON Schema 에 맞는 카피 이력 행을 더 만들어 주세요. {"type":"object","properties":{"이력id":{"type":"string"},"상품id":{"type":"string"},"카테고리":{"type":"string"},"섹션순서":{"type":"array","items":{"type":"string","enum":["훅","특징","규격","리뷰","구매유도"]}},"게시일":{"type":"string"}},"required":["이력id","상품id","카테고리","섹션순서","게시일"]} 쉬운 데이터만 만들지 말 것 — 다음 하드 케이스를 의도적으로 섞어라: (1) 같은 카테고리인데 섹션순서가 다른 두 행, (2) 카테고리 표기를 공백으로 다르게 적은 행, (3) 상품정보에는 없는 카테고리만 담긴 행. 생성한 행은 반드시 위 스키마를 통과해야 하며, 타입을 깨뜨리는 시도는 별도로 3건만 표시해 두세요.{"type":"object","properties":{"이력id":{"type":"string"},"상품id":{"type":"string"},"카테고리":{"type":"string"},"섹션순서":{"type":"array","items":{"type":"string","enum":["훅","특징","규격","리뷰","구매유도"]}},"게시일":{"type":"string"}},"required":["이력id","상품id","카테고리","섹션순서","게시일"]}| TypeScript | 생성기와 판정 규칙, 화면을 한 언어로 묶습니다. 상품 파싱부터 판정까지 타입이 끊기지 않습니다. |
| Next.js | 운영자가 상품을 올리고 판정별 목록과 문구별 근거를 보는 관리자 화면입니다. |
| PostgreSQL | 상품 정보와 카피 이력, 판정 결과를 담습니다. 공백을 지운 카테고리 키에 인덱스를 걸어 이력 대조를 빠르게 합니다. |
| Claude Code | 요구사항을 화면과 API, 스키마로 나눠 구현하고 테스트까지 한 흐름으로 돌리는 기본 개발 환경입니다. |
| OpenAI Codex | 판정 규칙의 경계 조건 테스트를 짜고 리팩터링을 맡깁니다. Claude Code 와 역할을 나눠 병렬로 씁니다. |
| MCP | 상품 데이터베이스와 카피 이력을 coding agent 가 직접 조회하게 붙여, 스키마를 손으로 옮겨 적지 않습니다. |
| Custom Skill·Command | 카피 재생성과 정답 세트 갱신처럼 반복되는 작업을 명령 하나로 묶습니다. |
| AGENTS.md·CLAUDE.md | 판정 규칙과 문체 기준, 금지표현 처리 방식을 프로젝트 컨텍스트로 적어 agent 가 같은 기준으로 코드를 고치게 합니다. |
| Git | 판정 규칙이 바뀔 때마다 정답 세트 결과를 같이 커밋해 어느 변경이 일치율을 움직였는지 되짚습니다. |
| Docker | 생성기와 화면, 데이터베이스를 한 이미지 묶음으로 만들어 로컬과 서버의 동작을 같게 맞춥니다. |
| Linux | 클라우드 인스턴스에서 컨테이너를 띄우고 로그와 자원 사용을 확인합니다. |
| CI/CD | 밀어 넣을 때마다 판정 규칙 테스트와 정답 세트 러너를 돌리고 통과분만 배포합니다. |
| 클라우드 | 2주차부터 배포와 운영을 맡습니다. 업로드 원본과 판정 리포트를 객체 저장소에 남깁니다. |
| LLM | 속성과 후기, 규격 안의 말만 써서 훅과 섹션 문구를 짓습니다. 내보내도 되는지는 규칙이 정합니다. |
✓ pass → 그대로 멈춰도 완결입니다. 더 키우려면 판정이 실제로 맞았는지 정답 세트와 맞춰 보는 단계로 넘어갑니다.
✓ pass → 여기까지도 완결입니다. 다만 카피 이력이 카테고리마다 서너 건은 쌓여야 통계가 뜻을 가지므로, 이력이 모자라면 3주차 통계 화면을 뒤로 미룹니다.
위 예측 UI 는 3주차까지 완주했을 때의 화면입니다. 1주차에 실제로 만드는 것은 아래 표시된 화면 하나입니다.
판정사유 라벨 · 상품id + 한 줄 요약(근거 수치 포함)화면·코드·면접에서 이 단어를 그대로 씁니다. 키는 출력 스키마의 enum 과 같습니다.
근거 있음근거 있는 초안금지 표현 섞임금지 표현 섞임근거 없는 주장근거 없는 주장정보 부족으로 보류정보 부족카테고리 규칙 없음카테고리 규칙 없음상품 한 건의 훅과 섹션 문구, 그 문구가 인용한 근거, 그리고 내보내도 되는지에 대한 판정을 담는 형식입니다. 판정은 규칙이 정하고 문구만 모델이 씁니다.
{"type":"object","properties":{"상품id":{"type":"string"},"카테고리":{"type":"string"},"판정":{"type":"string","enum":["근거 있음","금지 표현 섞임","근거 없는 주장","정보 부족으로 보류","카테고리 규칙 없음"]},"훅":{"type":["string","null"]},"섹션구성":{"type":"array","items":{"type":"object","properties":{"구분":{"type":"string","enum":["훅","특징","규격","리뷰","구매유도"]},"문구":{"type":"string"}},"required":["구분","문구"]}},"걸린금지표현":{"type":"array","items":{"type":"string"}},"근거없는낱말":{"type":"array","items":{"type":"string"}},"evidence":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string"},"agg":{"type":"string","enum":["count","sum","avg","min","max"]},"value":{"type":["string","integer","array","null"]}},"required":["field","value"]}},"사유":{"type":"string"},"hedge":{"type":["string","null"]}},"required":["상품id","카테고리","판정","섹션구성","걸린금지표현","근거없는낱말","evidence","사유"]}[
{
"상품id": "PD01",
"카테고리": "무선이어폰",
"판정": "근거 있음",
"훅": "30시간 재생, 하루 종일 귀를 비우지 않아도 됩니다",
"섹션구성": [
{
"구분": "훅",
"문구": "30시간 재생, 하루 종일 귀를 비우지 않아도 됩니다"
},
{
"구분": "특징",
"문구": "노이즈캔슬링으로 주변 소리를 줄입니다"
},
{
"구분": "리뷰",
"문구": "착용감이 좋다는 평이 많습니다"
},
{
"구분": "규격",
"문구": "블루투스 5.3 으로 연결합니다"
},
{
"구분": "구매유도",
"문구": "오늘 주문하면 내일 받아 봅니다"
}
],
"걸린금지표현": [],
"근거없는낱말": [],
"evidence": [
{
"field": "속성목록",
"value": [
"노이즈캔슬링",
"30시간 재생"
]
},
{
"field": "리뷰요약",
"value": "착용감이 좋다는 평이 많고 통화 품질은 호불호가 갈립니다"
},
{
"field": "규격",
"value": "블루투스 5.3"
},
{
"field": "섹션순서",
"value": [
"훅",
"특징",
"리뷰",
"규격",
"구매유도"
]
}
],
"사유": "훅과 섹션 문구가 내세운 주장이 모두 속성목록과 리뷰요약, 규격 안에 있고 금지표현이 부분문자열로도 들어 있지 않습니다. 섹션 순서는 무선이어폰 카피 이력을 그대로 따랐습니다.",
"hedge": null
},
{
"상품id": "PD11",
"카테고리": "운동화",
"판정": "근거 있음",
"훅": "경량 210g에 반발 쿠셔닝, 매일 달려도 가볍습니다",
"섹션구성": [
{
"구분": "훅",
"문구": "경량 210g에 반발 쿠셔닝, 매일 달려도 가볍습니다"
},
{
"구분": "리뷰",
"문구": "좋아요 한 줄 후기까지 그대로 싣습니다"
},
{
"구분": "특징",
"문구": "미끄럼 방지 아웃솔과 방수 갑피를 함께 넣었습니다"
},
{
"구분": "규격",
"문구": "240-290mm 까지 나옵니다"
},
{
"구분": "구매유도",
"문구": "사이즈를 고르고 담아 보세요"
}
],
"걸린금지표현": [],
"근거없는낱말": [],
"evidence": [
{
"field": "속성목록",
"agg": "count",
"value": 12
},
{
"field": "리뷰요약",
"value": "좋아요"
},
{
"field": "후기수",
"value": 1
},
{
"field": "규격",
"value": "240-290mm"
},
{
"field": "섹션순서",
"value": [
"훅",
"리뷰",
"특징",
"규격",
"구매유도"
]
}
],
"사유": "속성이 12개로 이 더미에서 가장 많은 행이라 섹션마다 쓸 낱말이 남고, 후기가 한 건뿐이라 리뷰 문구는 그 한 줄만 인용했습니다.",
"hedge": "속성이 많다고 카피가 잘 읽힌다는 뜻은 아니라, 문구 개수는 카테고리 이력의 섹션 순서에 맞춰 잘랐습니다."
},
{
"상품id": "PD03",
"카테고리": "건강기능식품",
"판정": "금지 표현 섞임",
"훅": "속이 답답한 날, 하루 한 포로 치료하듯 편안하게",
"섹션구성": [
{
"구분": "훅",
"문구": "속이 답답한 날, 하루 한 포로 치료하듯 편안하게"
},
{
"구분": "규격",
"문구": "1일 1포로 챙깁니다"
},
{
"구분": "특징",
"문구": "유산균 100억 CFU 를 담았습니다"
},
{
"구분": "리뷰",
"문구": "속이 편해졌다는 후기가 있습니다"
}
],
"걸린금지표현": [
"치료"
],
"근거없는낱말": [],
"evidence": [
{
"field": "금지표현",
"value": [
"치료",
"효능 보장"
]
},
{
"field": "속성목록",
"value": [
"유산균 100억 CFU"
]
},
{
"field": "리뷰요약",
"value": "속이 편해졌다는 후기가 있습니다"
}
],
"사유": "훅의 '치료하듯' 안에 이 상품의 금지표현 '치료' 가 들어 있습니다. 나머지 문구는 속성과 후기에 근거가 있어 훅만 다시 뽑으면 됩니다.",
"hedge": null
},
{
"상품id": "PD02",
"카테고리": "무선 이어폰",
"판정": "근거 없는 주장",
"훅": "업계 1위 저지연, 끊김 없는 게임 사운드",
"섹션구성": [
{
"구분": "훅",
"문구": "업계 1위 저지연, 끊김 없는 게임 사운드"
},
{
"구분": "특징",
"문구": "저지연 게임 모드를 넣었습니다"
},
{
"구분": "리뷰",
"문구": "연결이 끊기지 않는다는 후기가 있습니다"
},
{
"구분": "규격",
"문구": "IPX4 등급입니다"
}
],
"걸린금지표현": [],
"근거없는낱말": [
"업계 1위"
],
"evidence": [
{
"field": "카테고리",
"value": "무선 이어폰"
},
{
"field": "속성목록",
"value": [
"저지연 게임 모드"
]
},
{
"field": "리뷰요약",
"value": "연결이 끊기지 않는다는 후기가 있습니다"
},
{
"field": "규격",
"value": "IPX4"
}
],
"사유": "훅에서 끊어 낸 주장 '업계 1위' 를 속성목록과 리뷰요약, 규격 어디에서도 찾지 못했습니다. 카테고리는 공백만 다른 표기라 무선이어폰 이력에 맞춰 섹션 순서를 정했습니다.",
"hedge": null
},
{
"상품id": "PD04",
"카테고리": "신규카테고리",
"판정": "정보 부족으로 보류",
"훅": null,
"섹션구성": [],
"걸린금지표현": [],
"근거없는낱말": [],
"evidence": [
{
"field": "속성목록",
"value": []
},
{
"field": "리뷰요약",
"value": null
},
{
"field": "후기수",
"value": 0
},
{
"field": "규격",
"value": null
}
],
"사유": "속성목록이 비어 있고 후기수도 0이라 문구를 받칠 근거가 하나도 없습니다. 카테고리도 이력에 없지만 근거가 먼저 없어 보류로 둡니다.",
"hedge": "보류 판정은 합성 기준이라, 실제로는 상품명만으로도 쓸 수 있는 카테고리가 있습니다."
},
{
"상품id": "PD07",
"카테고리": "반려동물 사료",
"판정": "카테고리 규칙 없음",
"훅": "연어 단백질 32%, 그릇을 비우는 하루",
"섹션구성": [],
"걸린금지표현": [],
"근거없는낱말": [],
"evidence": [
{
"field": "카테고리",
"value": "반려동물 사료"
},
{
"field": "속성목록",
"value": [
"연어 단백질 32%"
]
},
{
"field": "섹션순서",
"agg": "count",
"value": 0
}
],
"사유": "카피 이력에서 반려동물 사료의 섹션 순서를 찾지 못해 문구를 어느 차례로 세울지 정하지 못했습니다. 훅은 속성에 근거가 있어 그대로 남겨 둡니다.",
"hedge": null
}
][자동 검증 · 1주차] 1. 판정 값이 다섯 enum 안에 있는지 확인합니다. 2. 상품id 와 카테고리, 판정, 섹션구성, 걸린금지표현, 근거없는낱말, evidence, 사유가 모두 있는지 확인합니다. 3. 섹션구성의 구분이 다섯 값 안에 있고 항목 수가 그 카테고리 이력의 섹션순서 길이를 넘지 않는지 확인합니다. 4. 걸린금지표현이 그 상품의 금지표현 부분집합이고, 훅과 섹션 문구를 이어 붙인 글에 그 상품의 금지표현이 부분문자열로 들어 있으면 판정이 금지 표현 섞임인지 다시 계산합니다. 낱말 단위로 자르지 않고 부분문자열로 견줍니다. '치료하듯' 처럼 뒤에 말이 붙어도 금지표현 '치료' 를 잡아야 하기 때문입니다. 조건이 성립하는 사례는 PD03 이고 성립하지 않는 사례는 PD01 입니다. 5. 근거없는낱말은 이름과 달리 낱말이 아니라 주장 단위를 담습니다. 주장 단위는 두 가지 꼴로만 끊습니다. (가) 순위·최상급·절대 표현 사전에 있는 표현으로, 사전은 '업계 1위'·'1위'·'최고'·'최저가'·'국내 최초'·'유일'·'완벽'·'100% 안전'·'무해'·'부작용 없음' 열 개이고 문구에 부분문자열로 들어 있으면 걸립니다. 한 자리에서 여럿이 걸리면 가장 긴 표현 하나만 씁니다. (나) 숫자가 든 어절로, 공백으로 자른 뒤 끝에 붙은 문장부호와 조사(은·는·이·가·을·를·에·에서·으로·로·와·과·의·도·까지·부터·만)를 하나 떼고 남긴 값입니다. 사전 표현이 이미 덮은 자리는 (나)에서 뺍니다. 이렇게 끊은 주장 단위를 속성목록과 리뷰요약, 규격을 이어 붙인 글과 부분문자열로 견줘 그 글에 없는 것만 근거없는낱말에 담습니다. 두 꼴에 들지 않는 조사와 서술어는 대조에서 빠집니다. 하나라도 남으면 판정이 근거 없는 주장인지 확인합니다. 조건이 성립하는 사례는 PD02 이고 성립하지 않는 사례는 PD11 입니다. 6. 속성목록이 빈 배열이고 리뷰요약이 null 이면 판정이 정보 부족으로 보류이고 훅이 null 인지 다시 계산합니다. 조건이 성립하는 사례는 PD04 이고 성립하지 않는 사례는 리뷰요약만 null 인 PD12 입니다. 7. 카테고리에서 공백과 가운뎃점을 지운 값이 카피이력.카테고리를 같은 방식으로 지운 값 어느 것과도 맞지 않으면 판정이 카테고리 규칙 없음이고 섹션구성이 빈 배열인지 다시 계산합니다. 조건이 성립하는 사례는 PD07 이고 성립하지 않는 사례는 공백만 다른 PD02 입니다. 8. 판정이 겹칠 때는 정보 부족으로 보류, 카테고리 규칙 없음, 금지 표현 섞임, 근거 없는 주장, 근거 있음 차례로 앞선 값을 씁니다. 9. evidence 의 field 가 상품정보와 카피이력 두 표의 컬럼에 실재하는지 확인합니다. 10. agg 가 없는 evidence 항목의 value 가 수록된 행의 그 컬럼 값과 같은지 확인합니다. 11. 모든 사유가 존댓말로 끝나는지 확인합니다. [수동 검증] 1. 근거가 붙어 있어도 문맥상 과장으로 읽히는 훅이 있는지 운영자가 표본 20건을 눈으로 봅니다. 2. 금지표현 목록에 없지만 카테고리 심의에서 걸릴 만한 낱말이 남았는지 확인합니다. 3. 카테고리 이력이 두 갈래로 갈린 카테고리에서 어느 섹션 순서를 기본으로 둘지 정합니다. [평가 러너 · 2주차] 1. 정답을 붙인 상품 40건으로 판정 다섯 갈래의 정밀도와 재현율을 냅니다. 2. 카테고리 표기가 흔들린 행에서 이력을 제대로 찾아냈는지 표기가 같은 행과 나눠 견줍니다.
근거: AI Agent 기술을 활용해 실제 비즈니스 문제를 해결하는 제품과 맞춤형 웹 플랫폼을 만들고 있습니다