해결: 수집 작업을 여러 개 동시에 실행하도록(병렬 처리) 바꾸고, 예약 실행 프로그램(스케줄러) 운영(실행 시간 조정), 카카오 토큰 재발급, 데이터 정합성 확인·재적재, 반복 장애 긴급 수정(광고성과 첫행 누락 해결, 소재 다운로드 데이터 불일치 점검, 크롤러 요소 수정)로 안정 운영 체계를 만들었습니다.
Build
운영·대응 활동
스케줄러·수집 모니터링 — 작업별 성공/실패·다음 실행
데이터 정합성 점검·재적재 (지연 감지 → 자동 재적재)
* 광고주명·사내 데이터·화면은 보안상 익명화 및 샘플/목업으로 재구성했습니다.
안정화·성능
수집 작업 여러 개 동시 실행(병렬 처리)
스케줄러 실행 시간 조정·운영
카카오 연동 인증(토큰) 재발급·연동 유지
데이터 정합성
데이터 누락·불일치 점검 및 재적재
광고성과 리포트 첫행 누락 등 핫픽스
크롤러 요소 변경 대응·코드 점검
Results
성과
정량적
장애 평균 복구 1시간 이내 유지
데이터 정합성 이슈 월 3건 미만 관리
정성적
장애 대응 절차 표준화
4개 광고주 대상 무중단 운영
TechPythonasynciohttpxPostgreSQL스케줄러카카오 알림tmux
01
Emoticon Studio
스케치·아이디어 → 플랫폼 규격 이모티콘·인스타툰 · 유료 이미지 API 없이 완전 무료 · 개인 프로젝트
Background
왜 이 프로젝트를 시작했나?
이모티콘 창작은 플랫폼마다 규격(크기·개수·용량)이 제각각이고, AI 이미지 생성은 유료 API라 개인 창작자에겐 진입장벽이 큽니다. "돈 안 드는 창작 파이프라인을 끝까지 무료로 붙일 수 있을까?"에서 출발했습니다.
문제: 카카오 32장·360×360·150KB, OGQ 24장·740×640, 라인·텔레그램… 플랫폼마다 규격이 다르고, Gemini·GPT 이미지 생성 API는 무료 사용 한도가 없어(요청해 보면 유료 전용이라 막힘) 비용이 든다.
해결:프롬프트 내보내기 방식 — 서버는 무료 Gemini(텍스트·비전)로 스케치를 분석해 규격 맞춤 프롬프트를 만들고, 그림은 사용자가 무료 ChatGPT·Gemini 웹에서 생성 → 다시 올리면 규격 PNG·ZIP으로 자동 정리. 전 구간 비용 $0.
Service Depth
스케치 → 규격 세트 · 인스타툰 · 검수
✨ 스케치로 세트 만들기 — 스케치 업로드 + 플랫폼 선택(10종·5×2 칩). 무료 Gemini 비전이 캐릭터를 분석해 상황별 프롬프트 생성
📖 인스타툰 만들기 — 이야기를 적으면 AI가 컷(최대 10장)으로 나누고 컷별 프롬프트 생성 → 4:5 슬라이드로 합성(말풍선 자리 가이드)
🖼️ 이미지 만들기 — 주제 + 17종 예술 화풍(사실적·유화·연필·에나멜핀·사이보그…) → 단일 이미지 프롬프트 생성
🧼 배경 제거 — 단색 배경은 글자를 남기고 가장자리부터 채워 지우기, 복잡한 배경은 AI로 투명 처리(rembg)(라이트·다크 미리보기). 이미지 도구(시트 컷 분리·흰 테두리·규격 변환·움직이는 변환)의 대표 화면
🔍 검수 · 미리보기 — 규격·중복·미채색을 브라우저 캔버스에서 자동 점검 + 카톡풍 메신저 미리보기로 가독성 확인
🔖 가이드 · 바로가기 — 플랫폼별 공식 링크 + “카카오 기준 = 상위 호환” 등록 전략(도메인 리서치 기반 추천 순서)
💡 정보 · 도구 — 예상 수익 시뮬레이터(배분율·수수료 반영) + 제출 전 체크리스트·승인 팁
스케치 → 규격 세트
무료 Gemini 비전으로 캐릭터 DNA + 상황별 프롬프트
10개 플랫폼 규격 PNG·ZIP(그리드 시트 자동 분리)
인스타툰 · 이미지 만들기
이야기 → AI 컷 분할 → 4:5 캐러셀 합성
주제 + 17종 예술 화풍 단일 프롬프트
이미지 도구
배경 제거(단색은 텍스트 보존)·흰 테두리·규격 변환
움직이는 이모티콘 변환(움직임 효과 선택 → 반복 재생 이미지)
검수 자동화
대표색·중복(비슷한 그림 자동 감지)·미채색·규격 자동 점검
메신저 미리보기(라이트·다크·투명 배경)
Results
핵심 성과
정량적
플랫폼 규격 10종·예술 화풍 17종 지원
이미지 생성 비용 $0(프롬프트 내보내기)
무(無)API 자체검증 3종(규격·프롬프트 생성·이미지 처리)
엔지니어링
FastAPI + 무빌드 정적 프론트(프레임워크 0)
Pillow 파이프라인: 배경제거·모션 WebP·캐러셀 합성
PWA(앱처럼 설치되는 웹·오프라인)·보안 헤더·요청 폭주 방지(rate limit)·논리 단위 6커밋으로 분리
Decisions
기술 선택 · 트레이드오프
‘프롬프트 내보내기’ 아키텍처로 비용 0 유지 — 유료 이미지 생성 API(무료 티어 없음)를 정면으로 우회. 서버는 무료 텍스트·비전만 쓰고 픽셀 생성은 사용자의 무료 웹으로 넘겨, 완전 무료라는 제약을 아키텍처로 지킴.
specs.py 단일 소스(캘리브레이션 노브) — 픽셀 값을 어디에도 하드코딩하지 않고 플랫폼 규격을 한 파일에서 관리. 프론트도 /api/specs로 같은 값을 읽어 규격이 코드 전체에 한 번에 전파.
배경 제거에서 텍스트 보존 — rembg(AI 세그멘테이션)가 이모티콘 텍스트를 배경으로 오분할. 코너가 단색이면 flood-fill로 가장자리에 연결된 배경만 투명 처리해 내부 글자 픽셀을 그대로 보존.
카카오-우선 등록 전략(도메인 리서치) — “카카오 기준 = 상위 호환”이라 판단해 가장 빡센 카카오 규격으로 먼저 만들고 OGQ·라인으로 확장하도록 가이드·기본값 설계.
북극성 — 업로드 1장(캐릭터·손그림) → 프롬프트가 아닌 ‘완성’ 이모티콘·인스타툰 자동 생성 (현재 ‘프롬프트 내보내기’ → ‘완성본 생성’으로 확장)
말풍선·캐릭터 효과(흐림·강조 등) 편집 기능 추가
배포 전: 완성본 생성 파이프라인의 실현 가능성(무료·유료 생성 경로) 재검토 후 개선
Render 배포 + 카톡 큰·움직이는 WebP 최종 납품 · 업로드 이미지 드래그 재정렬
유저별 대시보드(후속 단계) — ① 로그인 없이 localStorage ‘내 작업’ 패널(무료·무계정) → ② 재방문 수요 검증 후 계정 기반(DB·OAuth). 완성본 생성 이후 단계
02
DoXA — Enterprise AI Search
DoXA = Doc + AI · 그리스어 doxa(δόξα) ‘공통 지식’ — 흩어진 문서를 공유 지식으로 사내 문서 검색 + RAG(문서 근거 기반 AI 답변) 시스템 · 전 구간 로컬·비용 0 · 개인 프로젝트
Background
왜 이 프로젝트를 시작했나?
Python 자동화·Streamlit 경험은 있었지만 문자 인식(OCR)·검색엔진(Elasticsearch)·문서 해석기(Document Parser)·문서 근거 AI 답변(RAG)는 직접 다뤄본 적이 없었습니다. 실무 엔터프라이즈 검색의 핵심 4가지인데, 튜토리얼만으로는 "왜 이렇게 설계하는지"가 잡히지 않았습니다.
퍼스널컬러 컨설팅 1회 5~15만원. MZ세대 수요는 폭발적인데 무료로 즉시 진단받을 수 있는 서비스가 없었습니다.
문제: 높은 진입 장벽 (비용+시간) vs 폭발적 수요. 올리브영/무신사도 퍼스널컬러별 추천을 하지만 유저 대부분이 자기 컬러를 모름.
해결: AI Vision API로 사진 1장 → 10초 분석. 실제 판매 제품 연결. 운영비 $0. 원래 계획의 30%만 실행해서 MVP(첫 실사용 버전) 출시.
Service Depth
서비스 화면 (탭 8개 + 세부 화면)
랜딩페이지 - 사진 업로드 + 촬영 가이드 + 프로필 입력
프로필 입력 + 분석 결과 - 4계절 매칭률 + 확신도 등급
컬러 드레이핑 - 4계절 비교 + BEST/WORST 시뮬레이션 + 추천 컬러
얼굴 인상 분석 - 피부/눈동자/대비감 + 레이더 차트 + 강점/보완
컬러 팔레트 - 4분류 (베이스/메인/포인트/뉴트럴) + Best/Worst Colors
스타일링 - 메이크업/헤어/패션 색 조합 + 악세사리 + 4분류 팔레트
뷰티 추천 - 립/아이 메이크업 맞춤 제품 + 구매 링크
패션 추천 - 상의/하의 맞춤 아이템 + 구매 링크
상세 분석 - 언더톤 근거 + 분석 로직 + 비슷한 연예인
옷 매칭 분석 - 옷 사진 업로드 + AI 색상 분석 중
옷 매칭 결과 - A등급 88점 + 착용 효과 + 코디 제안
결과 공유 - 리포트 미리보기 + 카카오톡/Threads/X/Facebook/URL 공유
전체 리포트 - 8서브타입 드레이핑 + 아이섀도/립 진단 + 패션&악세사리
AI 분석
4계절 비교 + 별점 + S/A/B/C 등급
레이더 차트 (밝기/채도/대비/온기/선명도)
4분류 팔레트 (베이스/메인/포인트/뉴트럴)
아이섀도/립 컬러 진단
추천 + 액션
뷰티 80개 + 패션 37개 실제 제품
옷 매칭 (S/A/B/C) + UTM 추적(유입 경로 추적)
리포트 다운로드 + SNS 5채널 공유
Architecture
기술적 챌린지
모델 폴백 체인
Gemini(구글 AI) 서버 과부하로 응답 실패 잦음
4개 모델 순차 시도 + API 키 2개 자동 전환
무료 API로 하루 최대 3,000건 처리하도록 설계(용량)
$0 인프라
Render Free + UptimeRobot + Supabase
GA4(방문자 분석) + UTM 추적 + Google Sheets 문의
카카오 SDK + SNS 5채널 공유
성과: 실서비스 배포 완료 | 운영비 $0/월 | Google 검색 등록 | 8개 탭 + SNS 5채널 공유 + 리포트 다운로드
Decisions
기술 선택 · 트레이드오프
Streamlit → Vanilla JS 전환 — Streamlit이 iframe 한계로 4계절 비교·레이더 차트 등 커스텀 UI의 HTML이 깨져, 순수 JS 프론트로 피벗.
OpenCV·2코드베이스 거절 → Gemini Vision + FastAPI 단일 — OpenCV 피부톤은 정확도가 낮고 Next.js+FastAPI 2코드베이스는 과해서, 무료·고정확도 Gemini Vision으로 통합.
쉽게: 무료 AI 서버가 자주 먹통(과부하·요청 초과)이 돼, 여러 개를 자동으로 번갈아 쓰게 만든 것.Gemini 4모델 폴백 + API 키 프로젝트 분리 — 무료 Gemini의 503/429가 빈번해 가용성 확보가 필요했고, 같은 프로젝트 키는 할당량을 공유하므로 프로젝트를 분리해야 일 3,000회 분석이 가능.
확신도 ‘0.90 기본값 금지’ 프롬프트 강제 — Gemini가 확신도를 늘 ~90%로 부풀려, 사진 조건별(자연광 0.8~0.92 / 조명 불량 0.45~0.65) 기준을 프롬프트에 강제 주입해 신뢰도 확보.
캐주얼 게임에서 감정을 건드리는 게임이 바이럴 효과가 가장 큽니다. "결국 죽는" 컨셉으로 유저가 자발적으로 결과를 공유하게 만들면, 광고비 $0으로 성장이 가능하다고 판단했습니다.
가설: 감정 유발 게임 결과(추모카드+칭호)를 SNS에 공유하고 싶게 만들면 바이럴 성장 가능.
설계: 연쇄 붕괴(스탯 하나 떨어지면 나머지 급락) + 피로도(같은 행동 효과 감소) → 전략적 긴장감. 게임오버 시 추모카드+칭호 → SNS 5채널(X·페이스북·카카오·인스타·네이버블로그) 공유·복사.
Service Depth
게임 구성
5종 동물 선택 + 이름·난이도 설정
게임 플레이 - 3스탯 관리 + 행동 선택
위기 상태 - 스탯 경고 + 표정 변화 + 연쇄 붕괴
게임 오버 - 추모 화면 + SNS 공유
게임 메커닉
3스탯 (배고픔/행복/청결) × 4성장단계
연쇄 붕괴 + 피로도 + 랜덤 이벤트
칭호: 학대범(0턴)→전설의 집사(100+)
바이럴 설계
게임오버 추모카드 자동 생성
SNS 5채널 공유 + 챌린지 텍스트
칭호 수집 경쟁 → 재방문 유도
Results
핵심 성과
개발
MVP 완성 + 26개 테스트 100% 통과
동물 5종×4기분=20변형 레트로 픽셀아트 렌더링 엔진(픽셀 그리드 맵 → SVG 자동 변환)
구버전 세이브 호환 100%
비즈니스 계획 (출시 전)
4단계 성장 전략 수립($0 바이럴→광고)
미출시 — 하루 사용자(DAU) 1,000명 도달 시 월 15~45만원 예상(추정치)
배포 옵션 6종 비교 + 로드맵
Decisions
기술 선택 · 트레이드오프
쉬운 요약: 화면은 직접 코딩하고, 파이썬은 데이터 관리만 맡김. UI는 순수 HTML/CSS/JS 커스텀, Python은 상태관리만 — 다마고치식 상호작용을 기본 화면 제작 도구(Streamlit)로는 만들 수 없어 역할을 분리, 향후 정적웹/PWA(앱처럼 설치되는 웹) 이식까지 대비.
저장은 서버 데이터베이스(DB) 대신 브라우저 자체 저장소(localStorage·다중 슬롯) — 바이럴 테스트용 프로토타입이라 서버·인증 부담을 피하고 무료 정적 호스팅 배포를 가능케 하려는 선택.
쉬운 요약: 앱을 업데이트해도 예전 저장 기록이 깨지지 않게 함. 세이브 version 필드 + 누락 필드 기본값 복원 — 브라우저 저장(localStorage)이라 유저 기기의 옛 세이브를 강제 무효화할 수 없어, 후속 추가 필드를 기본값으로 채워 업데이트 시 세이브가 깨지지 않게 함.
난이도 상수 튜닝(부정이벤트 15%→45%, 연쇄붕괴 1.5배 등) — ‘아무리 잘해도 결국 죽는다 = 공유 욕구’ 가설을 성립시키려 후반부로 갈수록 무너지는 곡선을 의도적으로 설계.
투자 종목 스크리닝에는 전종목 데이터가 필요한데, KRX(한국거래소) 정보데이터시스템이 전면 로그인 필수로 전환돼 공식 경로 수집이 막혔습니다. HTTP·로그인·암호화 분석을 학습하며 우회 경로를 찾는 과정으로 진행했습니다.
문제: KRX(data.krx.co.kr) 로그인 전환(alert·LOGOUT 반환) → 전종목 직접 수집 불가.
해결: 웹 접속 유지·보안 토큰(CSRF)·자바스크립트단 암호화(Base64·AES·RSA) 기술을 단계별로 학습한 뒤, 정작 차단된 KRX 대신 로그인이 필요 없는 네이버 금융 시가총액 순위 페이지(자바스크립트 없이 고정된 웹페이지)를 읽어들여 KOSPI+KOSDAQ 4,000+ 전종목을 수집.
초기 타겟 KRX 포기 → 네이버 금융 피벗 — KRX가 로그인 필수로 전환돼(LOGOUT/alert만 반환) 비회원 수집이 원천 차단 → 동일 데이터를 공개하는 네이버 시총순위로 대체 경로.
Selenium 대신 requests + BeautifulSoup — 무거운 브라우저 자동화 도구 대신 가벼운 데이터 수집 방식을 택함. 대상이 로그인 불필요한 정적 HTML(자바스크립트 없이 고정된 웹페이지)이라 헤드리스 브라우저(화면 없이 도는 브라우저) 없이 87페이지를 ~36초에 수집(가벼움·속도 우선).
User-Agent 위장 + 0.3초 딜레이 + 재시도 — 일반 브라우저처럼 보이게 하고 요청 간격을 둬 차단을 피함. UA(브라우저 식별 정보)가 없으면 접근 거부(403)로 차단되고, 연속 요청 시 부하·차단을 피하려 딜레이·점증 백오프(점점 간격을 늘려 다시 시도) 재시도를 넣음(안정성을 속도보다 우선).
전일비를 정규식 + img alt로 파싱, 구분행 필터 — 셀이 ‘<img alt="상승">13,500’ 형태라 그대로 변환하면 실패(‘0종목 수집’ 버그) → 사이트 마크업 제약에 맞춰 파싱 방식을 강제당한 결정.
TechPythonrequestsBeautifulSoup4PyCryptodome
06
Stock Signal AI
반도체 7종목 LSTM 매매신호 예측 · 학습용 개인 프로젝트
Background
왜 이 프로젝트를 시작했나?
시계열 딥러닝(LSTM)과 백테스트·리스크관리 방법론을 직접 구현하며 학습하기 위한 실험 프로젝트입니다. 국내 반도체 7종목 3년 데이터로 매매 신호를 예측하고 백테스트했습니다.
⚠️ 한계(정직하게): 학습·연구용 실험으로 실제 수익을 보장하지 않습니다. 7종목·3년의 제한된 표본, 모델이 거의 모든 날을 「매수」로 찍어(재현율 100%·실제 맞힌 비율 정밀도 47%) 과적합 가능성이 있으며, 백테스트는 거래비용이 단순화된 과거 시뮬레이션입니다.
접근: 증권 시세 수집 도구로 7종목 3년(5,110레코드) 수집 → 27개 기술지표·최근 60일 흐름(시퀀스) → 2층 딥러닝 모델(LSTM, 128) → 과거 데이터로 모의 검증(백테스트) + 규칙 기반 리스크관리. 데이터 서버(FastAPI)와 화면 대시보드(Streamlit)로 신호 조회.
손절 -5%/익절 +10%/고점 대비 -20% 자동청산(트레일링)/신호 흔들림 완충(히스테리시스)
FastAPI 신호 API + Streamlit 대시보드
SQLite + pykrx 데이터 파이프라인
Results
성과 (학습 관점)
모델·실험
F1 64.2% (Threshold 1%p 조정이 핵심)
시계열 분할로 미래 데이터 누수 방지
리스크관리 도입 시 거래 1회→57.7회(능동 대응)
백테스트(과거 시뮬)
3년 백테스트 평균 약 150% (실투자 수익 아님) · 종목별 편차 큼
※ 거래비용·체결오차(슬리피지) 단순화, 표본 제한 → 참고용
Decisions
기술 선택 · 트레이드오프
글로벌 14종목·앙상블·90% 목표 → 반도체 7종목·LSTM 단독·F1 64%로 축소 — ‘주식 90% 예측은 비현실적(효율적 시장 가설=EMH)’이라 결론, 1인·단기 제약상 상관 높은 한 섹터·단일 모델로 좁혀 ‘저점 동시 포착’ 검증에 집중(앙상블은 설계 단계, Transformer는 미구현).
Threshold 0.02→0.01 + WeightedBCELoss — 매수 신호가 희소(불균형 6:1)해 F1 0% → 임계값을 1%p 낮춰 양성 36→64개(불균형 3:1)로 F1 64.2% 급변, 남은 불균형은 손실 가중치로 보정.
시간 순서 7:1.5:1.5 분할(랜덤 셔플 X) — 랜덤 분할 시 미래 데이터 누수(look-ahead)로 성능이 부풀려져, 순차 분할로 누수를 차단(워크포워드 검증은 향후 과제로 인정).
Buy&Hold → 규칙기반 리스크관리(손절·익절·트레일링) — 보유는 평균 189%지만 거래 1회·MDD(최대 손실폭) −55%로 손실 방어가 없어, 리스크관리로 수익 150%·승률은 낮아져도 거래 57.7회로 능동 대응(수익 일부를 손실 통제와 맞바꾼 트레이드오프).
TechPythonPyTorchLSTMFastAPIStreamlitSQLitepykrx
04
JobMate AI
채용공고 자동 정리·마감 알림 도구 · 개인 프로젝트
Background
왜 이 프로젝트를 시작했나?
여러 채용 사이트의 공고를 일일이 스프레드시트에 정리하고, 마감일을 놓쳐 지원을 못 하는 번거로움을 자동화하려 만들었습니다.
문제: 사이트마다 공고를 수동 정리 + 마감일 추적 누락.
해결: URL 입력 → 사이트별 전용 추출기(원티드/사람인/잡코리아/그룹바이)로 회사·포지션·자격·마감일을 자동으로 뽑고, 점핏·기타 사이트는 AI(Gemini)가 대신 읽어 채움 → Google Sheets에 저장 → 마감 2일 전 Slack 알림(정해진 시각에 자동 실행).
Build
구현
대시보드 — 총 수집 94건·플랫폼별 현황·직군/상태 분포 (Gemini·Sheets·Slack 연동)
대시보드 — 최근 수집 공고·마감 임박(D-7) 리스트 한눈에
공고 수집 — URL 직접 입력 + 키워드 자동 수집(원티드·사람인·잡코리아, cron 연동)
저장 목록 — 로컬 캐시 / Google Sheets 전환, 회사·포지션·마감·상태 관리
마감 임박 알림 — D-2 이내 공고 조회 후 Slack 발송
지원 상태 변경 — 관심·지원·서류·면접·최종 단계 관리
멀티사이트 파싱
원티드 전용 파서(추출 7/7), 사람인(5~7/7)
잡코리아·그룹바이는 페이지 안에 숨어 있는 채용정보 데이터를 곧바로 읽어와 AI 없이 정확히 추출
점핏·기타 사이트는 전용 추출기가 없어 AI(Gemini)가 대신 읽어 추출
버튼·스크롤 뒤에 뒤늦게 뜨는 내용까지 자동으로 불러와 수집
저장·알림 자동화
Google Sheets 자동 저장(15개 항목) + 중복 캐시
마감 2일 전 Slack 알림(cron)
상태 관리: 관심/지원/면접/마감
Results
성과
정량적
공고 항목 자동 추출·Sheets 저장 + 마감 자동 알림
전용 파서 + AI 폴백으로 다중 사이트 커버
정성적
사이드바 기반 Streamlit 웹 UI(대시보드·수집·목록·마감·상태) + 연동 상태 모니터링
구직 공고 관리·마감 누락 방지 자동화
Decisions
기술 선택 · 트레이드오프
AI SaaS 구상 접고 로컬 Streamlit 앱으로 피벗 — $0 예산에서 무료 서버(Render 512MB)로는 Playwright Chromium(300MB+)을 못 띄워 ‘무료+크롤링’이 물리적으로 불가 → ‘나만 쓰는 도구’로 바꾸자 서버·인증·과금·법적 제약이 모두 사라짐.
저장은 Google Sheets(전문 데이터베이스 대신) — 개인용 수십~수백 건엔 DB가 과하고, 무료에 시트에서 데이터를 바로 확인·수정할 수 있어 운영이 편리.
전용 파서 + Gemini 폴백 하이브리드, 본문만 전달 — 쉽게 말해 ‘사이트마다 맞춤 추출기를 기본으로, 안 되는 곳만 AI로 보완’한다는 뜻. 전용만으론 신규 사이트 불가·AI만으론 정확도/비용 부담이라 균형. 잡코리아는 초기엔 셀렉터가 불안정해 Gemini 폴백을 썼으나 ld+json(JobPosting)+iframe 전용 파서로 전환해 Gemini 의존을 제거. 폴백 경로에선 HTML 전체가 노이즈라 trafilatura+BS4로 본문만 전달(잡코리아 543→1,048자).
로켓펀치는 우회 대신 ‘미지원 + 명확한 안내’ — 사이트의 자동 접속 차단(봇 차단)을 우회 기술로 뚫는 건 불안정·과해서, 우회보다 사용자에게 상태를 명확히 안내하는 쪽을 택함.
코로나 이후 의료 보험 가입이 촉진되면서 업계는 성장 중이지만, 높은 인플레이션과 의료비 상승으로 정확한 보험료 책정이 필수가 되었습니다. 보험 가입자의 특성(연령/BMI(체질량지수)/흡연 여부 등)이 보험료에 미치는 영향을 데이터로 분석하여 적정 보험료를 산출하고, 마케팅 전략을 수립했습니다.
문제: 보험료 책정에 영향을 미치는 요소의 가중치가 불명확. 리스크 기반 맞춤 보험료 산출 근거 필요.
접근: SQL(데이터 조회·집계 언어)로 각 요소(연령/성별/BMI/자녀수/흡연/지역)와 보험료의 상관성 분석 → 흡연 여부를 고정 변수로 교차 분석 → 가중치 산출 → 마케팅 기획안 제안.
Key Insights
분석 결과 & 인사이트
주요 발견
흡연 여부가 보험료에 가장 큰 영향 (비흡연자 대비 3배+)
연령↑ = 보험료↑ (고연령 건강 리스크)
BMI 비만 단계 진입 시 보험료 급등
성별/자녀수는 상대적으로 낮은 영향
보험료 산정 요소별 가중치 모델 도출
기여도 & 역할
데이터 집계·분류 SQL 쿼리 작성 (조건별 분기·그룹 집계·피벗)
흡연 여부 × 타 변수 교차 분석 설계
분석 결과 기반 마케팅 기획안 공동 작성
금연 프로모션 전략 제안
TechSQLCASE WHENGROUP BYAVG데이터 시각화
B2
배너 광고 성과 분석 & 최적 운영 전략
온라인 스토어 배너 광고 데이터 · Python 분석 · 팀 프로젝트 (4인)
Background
왜 이 프로젝트를 진행했나?
온라인 스토어에서 내부 배너 광고와 외부 배너 광고의 효과 차이를 분석하여, 비용 대비 최적의 배너 운영 전략을 수립하는 것이 목표였습니다. CPC(클릭당 광고비) 단가(내부 100원 vs 외부 500원)와 CTR(클릭률)을 기반으로 수익성을 비교했습니다.
가설: "내부 광고가 외부 광고보다 수익률이 높을 것이다"
결과(실측): 내부 수익 8,300만원 vs 외부 7,400만원. 제안: 고객 세그먼트 기반 혼합 운영 시 최대 8,800만원(+약 7%)까지 개선 가능할 것으로 추정(제안 시나리오·미실행).
Key Insights
분석 결과 & 인사이트
주요 발견
Clothes 카테고리: CTR/CVR(구매전환율) 모두 최고 → 내부 광고 유지
Company 광고: CVR 0% → 외부 전환 또는 폐지
모바일: CTR 우수 but CVR 저조 → 결제 간소화 필요
데스크톱: CTR 낮음 but CVR 우수 → 배너 퀄리티 개선
5월 CVR 급락: 광고 타겟 미스 + 시즌 변경 추정
기여도 & 역할
행동 기반 고객 세그먼트 분류 설계
RFM(최근성·빈도·구매액) 분석으로 구매 세그먼트 도출
세그먼트별 마케팅 전략 제안
내부/외부 혼합 운영 최적화 시나리오 설계
도메인 이해와 인사이트 도출의 중요성 체감
TechPythonPandasCTR/CVR 분석RFM고객 세그먼트시각화
B3
은행 고객 이탈 예측 & 방지 전략
은행 고객 160,000건 데이터 · 머신러닝 · 팀 프로젝트 (5인)
Background
왜 이 프로젝트를 진행했나?
기업의 안정적 수익 확보를 위해 기존 고객 유지가 중요합니다. 은행 고객 데이터(신용점수/연령/잔고/가입기간 등)를 기반으로 이탈을 예측하는 머신러닝 모델을 개발하고, 예측 결과를 활용한 고객 맞춤형 유지 전략을 제안했습니다.
목표: ① 고객 이탈을 예측하는 ML(머신러닝) 모델 개발 ② 예측 결과 기반 맞춤형 유지 전략 제안
결과: LightGBM 최종 모델 Recall 80.3% 달성 (이탈 고객 5명 중 4명 정확 예측). K-means 군집화(비슷한 고객끼리 묶기)로 4가지 이탈 유형 분류 → 유형별 방지 전략 제안.
Key Insights
분석 결과 & 인사이트
모델 성과
6개 모델 비교 (Logistic/KNN/GBM/XGB/LGBM/CatBoost)
LightGBM 최종 선택 (Recall 80.3%)
파생변수(기존 데이터를 가공해 새로 만든 지표) 생성: 가입1년이하 여부, 잔고0원 여부, 고객가치지수
일본 화장품 시장은 코로나 이후 회복 중이며, K-뷰티에 대한 관심이 지속 증가하고 있습니다. 이상 기후로 한·일 모두 UV 케어 중요성이 부각되는 상황에서, 한국 선케어 제품의 일본 시장 진출 기회를 데이터로 분석했습니다. 한국 4개 플랫폼(올리브영/화해/무신사/네이버쇼핑) + 일본 2개 플랫폼(LIPS/Q10)에서 크롤링(웹에서 자동 수집)한 약 1,500건의 데이터를 Tableau 대시보드로 분석하여 틈새시장을 공략하는 전략을 수립했습니다.
목표: 한·일 선케어 시장 비교 분석 → 고객 페르소나(대표 고객상) 작성 → 나이대별 최적 K-선케어 제품 추천 및 일본 시장 입점 전략 수립
접근: 6개 플랫폼 크롤링(1,490건) → 파생변수(기존 데이터를 가공해 만든 지표) 생성(최종점수) → Tableau 대시보드로 한·일 트렌드 비교 → STP(시장 세분화·타깃 선정·포지셔닝) 전략 도출
Key Insights
분석 결과 & 인사이트
한·일 트렌드 비교
한국: 선크림 > 선스틱 > 선스프레이 순 인기
일본: 여드름/모공/건조 피부타입 중심 수요
한국: "자극 없는, 수분, 톤업" 키워드 (일본과 다른 차별점)
일본 10대 저가, 20대 중고가, 30대 고가, 40대 중고가 선호
일본 TOP 제품(라로슈포제) 이미 시장 장악 → 틈새 공략 필요
STP 전략 & 제품 추천
IQR(가격 상·하위 극단을 뺀 중간 구간) 상위 25~75% 브랜드를 타겟 (TOP은 이미 진출)