Skip to content
우연수의 포트폴리오

우연수 · AI/ML Engineer

  • –4~5년차. 문제를 쉬운 언어로 차근차근 정의하고 결과물로 성과를 입증합니다
  • –문학을 전공하며 언어와 텍스트에 끌렸고 자연어처리를 거쳐 ML/AI 엔지니어로 일하고 있습니다
  • –기술 블로그를 운영하고 있습니다 : woocosmos.github.io
  • Python
  • Claude Code
  • LangGraph
  • LangSmith
  • Google ADK
  • Azure OpenAI
  • scikit-learn
  • PyTorch
  • MLflow
  • Snowflake
  • Airflow

대표 프로젝트

AI 기반 UA 광고 소재 생성 시스템

2026.02 – 현재 · 개발 담당 1인, 사업팀 협업

무엇을 만들었나

게임 모객 광고(UA)의 이미지를 생성하는 멀티 에이전트 시스템을 구축했습니다. 캠페인 사이클에 맞춰 실제 집행 소재를 납품하며 고도화했습니다. 기술 구현은 단독으로 담당하고, 사업팀과 협업해 도메인 지식과 캠페인 방향을 반영했습니다.

실제 집행 성과

  • Meta, UAC 채널 캠페인 실집행: 모바일 게임 <히간: 이루실>의 캠페인에 누적 38종 집행
  • AI 소재 활용 집행 광고비 누적 1억 원 이상
  • 에이전시는 발주 단가가 높아 전략별 1종씩 제작하는 반면, AI 생산은 에이전시의 2~3배 수량으로 진행

어떻게 동작하는가

시스템은 소재를 만드는 생성 파이프라인 & 사람의 검수를 반자동화한 후처리 단계로 이뤄집니다.

생성 파이프라인

  • 주요 에이전트: 기획자 → 카피라이터 → 프롬프트 엔지니어
  • 딥러닝 모델로 클릭이 약할 것으로 예측되는 컨셉은 생산 초반에 드랍하여 불필요한 제작 비용을 줄임
  • 실행 조건과 중간 산출물을 사내 도구(Notion, Snowflake 등)에 실시간 적재해 비개발 담당자도 진행 상황을 관찰

사람은 지시를, 판단은 에이전트가, 실행은 스크립트로

  • 품질과 사업 적합성 판단상 사람의 검토 단계는 불가피 — 후처리 절차와 명세를 SKILL.md로 정의
  • 사람은 자연어로 지시·검수만, 에이전트(claude code)가 판단과 스크립트 실행을 담당

문제 해결 과정

다시 그리지 않고, 원화를 그대로 붙이는 분기를 신설

  • 문제: 이미지를 다시 그리는 모델 특성상 캐릭터 디자인의 변형이 지속적으로 발생하고 프롬프트 강화나 재생성으로 해소되지 않음
  • 접근: 서비스에 대한 인지도가 형성되기 전에는 디자인 변주를 일부 허용할 수 있지만, 그 이후로는 브랜드 이미지가 훼손되는 비즈니스 리스크 확인. 캐릭터 원화는 픽셀 그대로 합성하고, 나머지 요소를 생성 모델에 맡기는 절차적 구조를 신설
  • 방법: 배경과 텍스트를 먼저 디자인한 후, 그 위에 합성 담당 에이전트가 캐릭터 원화를 배치하여 최종적으로 리터치 에이전트가 마무리
  • 결과: 사람이 캐릭터 왜곡을 검수하고 수정하는 공수가 작업 시간 기준 1/3 수준으로 감소

모범 사례로부터 역추출하여 퀄리티를 만들어내는 요소 파악

  • 문제: 사업팀의 도메인 지식과 경험에 기반하여 멀티에이전트 시스템의 뼈대를 구성했지만 결과물이 시중 광고 이미지에 비해 퀄리티가 현저히 떨어짐
  • 접근: 시중 UA 이미지를 레퍼런스로 입력해서 그 이미지를 묘사하는 프롬프트를 역추출하고 새 세션에 다시 입력하여 재현되는지 확인. 차이는 정보의 구조가 아니라 구체성으로, 프롬프트에서 레이어, 타이포그래피처럼 화면을 구체적으로 지시해야 한다는 것을 이해
  • 방법: 추상적인 전략 및 컨셉을 구체적인 시각 스펙으로 번역하는 ‘프롬프트 엔지니어’ 에이전트 신설
  • 결과: 모델의 자의적 해석을 줄이고 결과물에 대한 통제력과 디버깅 효율 개선. 이미지의 완성도 뿐만 아니라 재현성도 확보되어 개선 시간도 단축

다양성은 temperature가 아니라 입력을 흔들어 확보

  • 문제: temperature 를 최대로 설정해도 “같은 해석의 다른 표현”만 나와, 화면 구성만 다른 유사한 컨셉이 반복 생산
  • 접근: temperature 를 통한 토큰 무작위성은 고정하고 입력되는 관점 자체를 통제하는 최근 reasoning 모델 기조를 파악하고, 코드 단에서 임의의 관점을 에이전트에 주입하는 방식으로 다양성 확보
  • 방법: (1) 사업팀 인원의 slack 메세지 데이터에서 각각의 선호 및 회피 성향을 뽑아 UA 디렉터 프로필을 사전 정의하고, 매 호출마다 서로 다른 프로필을 기획 페르소나로 주입 (2) 게임과 무관한 키워드를 무작위로 샘플링해 함께 주입하여, 그 키워드의 질감이나 상황 같은 속성에서 발상을 유도
  • 결과: 소구점과 발상 경로가 다양한 컨셉으로 이미지가 생성되었고, 특히 관점별 어휘와 메시지 방식이 다양해지며 카피의 다양성이 크게 향상

UA 효용의 정량 예측

  • 문제: 대량 생산한 이미지를 UA 효용 순으로 정렬해 top-K를 선별하려면 ML 모델이 필요했지만, 효용을 정의할 정답 데이터가 없었고 넥슨 특성상 브랜드 파워가 강해 사내 지표로도 이미지 자체의 효용을 떼어 보기 어려움
  • 접근·방법: 사람 대신 LLM에게 “이 이미지를 클릭하겠는가”를 물어 응답 토큰의 logprob으로 ‘클릭 강도’ 라벨을 만들고, 이를 경량 이미지 모델(ConvNeXt-Base)에 Teacher-Student 증류(test SRCC 0.59)
  • 결과: 사업팀 PASS/FAIL로 재검증하니 예측과 유의한 상관은 없었으나, FAIL 적중률이 가장 높은 값을 threshold로 삼는 ‘하위 컷’ 필터로 용도를 전환해 파이프라인 게이트에 투입

남은 과제 및 한계

  • AI 소재로 유입된 유저의 리텐션과 매출이 장점이지만 노출당 유저 획득/설치량은 에이전시 소재의 63~75% 수준으로 한계 확인
  • 결과물의 퀄리티 및 다양성 개선을 사업팀의 정성적인 평가로 판단했고, 파이프라인 성능을 정량적으로 측정하고 검증하는 체계가 필요

모바일 게임 매출 예측 모델 고도화

2025.02 – 현재 · 모델링 담당 1인, 사업팀 협업

무엇을 만들었나

해외 모바일 게임의 국내 매출을 예측하는 모델을 재설계하고 비즈니스 결정에 기여했습니다. 모델 설계와 실험은 단독으로 맡았고, 평가 및 활용에 대한 의사결정은 사업팀, 분석팀과 함께 정했습니다.

실제 성과

  • 프로젝트와 팀의 기조에 맞추어 문제를 정의하고 데이터를 정비했으며 평가 지표를 개발하여, 약 200여 개의 모바일 게임에 대해 추론 진행
  • 실제 퍼블리싱 투자 판단의 핵심 근거로 채택. 첫 사례인 모바일 게임 <히간: 이루실> 에 이어 차기 후보작들도 계약 단계

문제 해결 과정

성능 측정 로직 재정립

  • 문제: 학습 데이터를 fold 로 쪼개 성능을 추정하는데, 그 수치가 실제 예측 상황의 성능을 정확히 나타내야 투자 판단에 쓸 수 있다는 문제 의식 하에 두 가지 점검 → ① 모델 분산이 커서 평균만 좋아 보이고 개별 예측은 크게 흔들리는 것 아닌가, ② 측정 방식 자체가 성능을 낙관 쪽으로 밀고 있는 것 아닌가
  • 접근: 앙상블 오차가 반복별 오차보다 항상 작게 집계되는 현상을 확인, RMSE 등 오차 지표가 볼록 함수이므로 젠센 부등식에 따라 예측값을 먼저 평균한 뒤 오차를 재면 오차를 먼저 재고 평균하는 것보다 항상 작거나 같다는 문제 정의
  • 방법: bagging × repeated K-fold 로 구조가 깊기 때문에 오차를 집계하는 위계를 재정의 (fold 내 부트스트랩 모델 bagging → repeat 종료 시점마다 오차 산출 → repeat 10회의 평균 및 표준편차로 요약)
  • 결과: 성능 보고시 ‘평균 ± 표준편차’ 로 모델의 분산 수준을 나타내고, 모델의 성능이 낙관적으로 보고되는 편향 제거

예측 대상을 절대 매출에서 시장 내 위치로 재정의

  • 문제: 비즈니스 리스크를 고려하여 모델을 튜닝한 결과 예측 매출이 전반적으로 낮아져 투자 대상이 적어지고, tree 모델 특성 상 학습 데이터의 매출 범위에 한정되고 예측이 분포 가운데로 몰려 상위 매출이 과소평가
  • 접근: “얼마를 버는가”를 나타내는 절대 매출값 대신 “시장에서 어느 위치인가”를 나타내는 z-score 를 학습시키고, 위치를 사후에 매출로 환산
  • 방법: 기준 분포(출시연도, 장르 등)와 표현 방식(순위비율, z-score) 을 교차하며 여러 변환식의 예측 성능 비교. 추론시 최신 시장 분포의 모수를 적용해 달러 매출로 복원
  • 결과: 투자 구간 MAPE 58.07 → 53.4%로 4.7%p 개선. 눌림이 심했던 고매출 구간에서 MAPE 5.5%p, MAE 91만 달러 감소. ‘투자 기준선’의 분류 성능인 Precision은 4.7%p 올라(75.22 → 79.91%) 기회비용 감소

평가 지표를 비즈니스 문제에 맞게 설계하고 해석

  • 문제: 모델을 평가하는 지표가 사업이 실제로 묻는 것에 답하지 못함. 첫째, 투자 기준선에 미달하는지 분류하는 성능 지표는 경계 부근의 소수 게임에 의해 지표가 크게 변화. 둘째, MAE 와 같은 분석 용어는 ‘드랍된 게임에서의 기회 비용’이나 ‘투자한 게임에서의 손실’을 구분하지 못함
  • 접근: 지표를 모델 성능의 언어가 아니라 의사결정의 언어로 표현. 오차 지표를 실제 의사결정 시점의 손익으로 번역해, 사업적 기회비용과 손실을 분리해 전달
  • 방법: ① 손익 기준선을 중심으로 sigmoid 를 적용해 0/1이 아닌 ‘드랍해야 할 확률’로 변환한 뒤 F1-score 을 산출하는 커스텀 지표를 설계 ② 실제 투자 프로세스에 투입하는 상황을 재현하기 위해 ‘기준선 미만은 드랍하고 이상은 실행’을 시뮬레이션. 드랍해서 놓친 게임 수와 그 게임들의 평균 매출(기회비용)을, 실행했을 때의 과대평가 비중과 그때의 손실을 집계
  • 결과: 모델 후보를 공격적, 보수적, 균형 등 스탠스에 따라 제시하고 사업팀과 함께 사업 기조에 맞는 모델을 선택. 그 결과, 드랍되는 게임이 줄어들어 기회를 놓친 케이스는 31.1 → 13.8% 로 감소, 실행 게임 중 성과가 예측에 못 미치는 비중은 증가하지만 평균 오차는 411만 → 294만 달러로 축소되므로 가망 풀을 넓혀 전체 수익을 키우는 포트폴리오 전략에 부합

남은 과제 및 한계

  • <히간: 이루실> 의 예측값을 출시 직후에 검증한 결과, 현재의 feature 로는 데이터의 분산을 표현하는 데 한계가 있음을 확인

Experience

경력 (Career)

  • 넥슨코리아 / AI엔지니어

    2024.09 — 현재

    게임·IP의 잠재 가치를 LLM·ML로 정량화. UA 소재 생성 멀티에이전트, 매출 예측 모델 개발.

  • 니트로스튜디오 / AI엔지니어

    2022.12 — 2024.08

    <카트라이더: 드리프트>의 인게임 로그 기반 유저 행동 분석. PPO 강화학습 자율주행 리서치 PoC.

  • 플랫팜 / AI 리서치 엔지니어

    2021.07 — 2022.08

    2D·3D 딥러닝 기반 자동 콘텐츠 제작 파이프라인. SIGGRAPH 2022 출품.

학력 (Education)

  • 성균관대학교 · 독문학·국문학 전공

    2016.02 — 2021.02

    언어와 텍스트에 대한 관심이 자연어처리(NLP)로 이어짐.

활동 (Activities)

  • Google ML Bootcamp (2024) 발표

    부트캠프 수료생으로 초청받아 "Kaggle 팁"을 주제로 발표. 발표 영상 →

  • Creative AI 인터뷰

    "Where can creative AI take over — where not?" 주제로 함부르크 응용과학대학 Peter Kabel 교수와 진행. AI와 디자인 실무의 접점을 다룸. 인터뷰 보기 →

  • 슈퍼루키 커리어 소개 인터뷰

    플랫팜에서의 데이터 직무를 소개한 인터뷰. 인터뷰 보기 →

Contact