Files
sam-hotfix/research/ppt_team_agent-main/final-jocoding-12slides.js
김보곤 d86b5851d0 chore: 프로젝트 설정 및 문서 파일 추가
- .agent/, .claude/, .vscode/ 설정 파일
- design/ 디자인 리소스
- reports/, research/ 분석 문서
- testcase/ 테스트 케이스 문서
- db_sync_chandj.bat, sam.code-workspace

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 19:51:43 +09:00

474 lines
15 KiB
JavaScript

/**
* 조코딩 12장 슬라이드 PowerPoint 네이티브 생성 스크립트
* HTML 변환 방식의 문제를 해결하기 위해 직접 PowerPoint 생성
*/
const pptxgen = require('pptxgenjs');
async function createJoCoding12Slides() {
console.log('🎬 조코딩 12장 PowerPoint 프레젠테이션을 생성하고 있습니다...');
const pres = new pptxgen();
pres.layout = 'LAYOUT_16x9';
pres.author = '조코딩';
pres.title = '조코딩(조웅현) - 국내 1위 코딩 교육 유튜버';
// 슬라이드 1: 표지
const slide1 = pres.addSlide();
slide1.background = { color: 'ffffff' };
slide1.addText('조코딩', {
x: 1, y: 1.5, w: 8, h: 1.5,
fontSize: 64, bold: true, color: '282828', align: 'center'
});
slide1.addText('JoCoding', {
x: 1, y: 2.8, w: 8, h: 1,
fontSize: 28, bold: true, color: 'FF0000', align: 'center'
});
slide1.addText('국내 1위 코딩 교육 유튜버', {
x: 1, y: 3.8, w: 8, h: 0.8,
fontSize: 18, color: '666666', align: 'center'
});
// 슬라이드 2: 프로필
const slide2 = pres.addSlide();
slide2.background = { color: 'ffffff' };
slide2.addText('프로필 개요', {
x: 0.5, y: 0.5, w: 9, h: 0.8,
fontSize: 28, bold: true, color: '282828'
});
slide2.addText('기본 정보', {
x: 1, y: 1.5, w: 3.5, h: 0.5,
fontSize: 18, bold: true, color: 'FF0000'
});
slide2.addText('• 실명: 조웅현\n• 전공: 고려대 환경생태공학부\n• 경력: 비전공자 → 개발자 → 교육자', {
x: 1, y: 2, w: 3.5, h: 1.5,
fontSize: 14, color: '333333'
});
slide2.addText('현재 활동', {
x: 5, y: 1.5, w: 3.5, h: 0.5,
fontSize: 18, bold: true, color: 'FF0000'
});
slide2.addText('• 유튜브: 68만 구독자\n• 회사: ㈜코드마피아 대표\n• 서비스: 조카소 AI 개발/운영', {
x: 5, y: 2, w: 3.5, h: 1.5,
fontSize: 14, color: '333333'
});
// 슬라이드 3: 성장 스토리
const slide3 = pres.addSlide();
slide3.background = { color: 'ffffff' };
slide3.addText('성장 스토리', {
x: 0.5, y: 0.5, w: 9, h: 0.8,
fontSize: 28, bold: true, color: '282828'
});
slide3.addText('1. 비전공자 시절', {
x: 1, y: 1.5, w: 7, h: 0.4,
fontSize: 16, bold: true, color: 'FF0000'
});
slide3.addText('고려대 환경생태공학부 재학 • 코딩에 대한 막막함', {
x: 1.5, y: 1.9, w: 7, h: 0.4,
fontSize: 12, color: '666666'
});
slide3.addText('2. 개발자 전향', {
x: 1, y: 2.5, w: 7, h: 0.4,
fontSize: 16, bold: true, color: 'FF0000'
});
slide3.addText('독학으로 프로그래밍 학습 • 실무 경험 쌓기', {
x: 1.5, y: 2.9, w: 7, h: 0.4,
fontSize: 12, color: '666666'
});
slide3.addText('3. 교육자 & 사업가', {
x: 1, y: 3.5, w: 7, h: 0.4,
fontSize: 16, bold: true, color: 'FF0000'
});
slide3.addText('2019년 유튜브 시작 • 68만 구독자 달성 • 코드마피아 설립', {
x: 1.5, y: 3.9, w: 7, h: 0.4,
fontSize: 12, color: '666666'
});
// 슬라이드 4: 유튜브 채널 현황
const slide4 = pres.addSlide();
slide4.background = { color: 'ffffff' };
slide4.addText('유튜브 채널 현황', {
x: 0.5, y: 0.5, w: 9, h: 0.8,
fontSize: 28, bold: true, color: '282828'
});
slide4.addText('68만', {
x: 1, y: 1.5, w: 3, h: 1,
fontSize: 36, bold: true, color: 'FF0000', align: 'center'
});
slide4.addText('구독자', {
x: 1, y: 2.5, w: 3, h: 0.5,
fontSize: 14, color: '666666', align: 'center'
});
slide4.addText('2019', {
x: 5.5, y: 1.5, w: 3, h: 1,
fontSize: 36, bold: true, color: '333333', align: 'center'
});
slide4.addText('시작 연도', {
x: 5.5, y: 2.5, w: 3, h: 0.5,
fontSize: 14, color: '666666', align: 'center'
});
slide4.addText('주요 콘텐츠', {
x: 0.5, y: 3.2, w: 9, h: 0.5,
fontSize: 18, bold: true, color: '282828'
});
slide4.addText('• 웹/앱 개발 - 실용적인 프로젝트 중심 교육\n• 파이썬 기초 - 비전공자를 위한 쉬운 설명\n• AI 프로젝트 - 트렌디한 AI 기술 활용\n• 수익화 방법 - 코딩으로 돈 버는 방법', {
x: 1, y: 3.7, w: 8, h: 1.5,
fontSize: 12, color: '333333'
});
// 슬라이드 5: 교육 철학
const slide5 = pres.addSlide();
slide5.background = { color: 'ffffff' };
slide5.addText('교육 철학', {
x: 0.5, y: 0.5, w: 9, h: 0.8,
fontSize: 28, bold: true, color: '282828'
});
slide5.addText('"누구나 배울 수 있는 쉬운 코딩"', {
x: 1, y: 1.2, w: 8, h: 0.8,
fontSize: 24, bold: true, color: 'FF0000', align: 'center'
});
slide5.addText('접근성', {
x: 1, y: 2.5, w: 3.5, h: 0.4,
fontSize: 16, bold: true, color: 'FF0000'
});
slide5.addText('비전공자도 쉽게 배울 수 있는 코딩 교육', {
x: 1, y: 2.9, w: 3.5, h: 0.8,
fontSize: 11, color: '666666'
});
slide5.addText('실용성', {
x: 5, y: 2.5, w: 3.5, h: 0.4,
fontSize: 16, bold: true, color: 'FF0000'
});
slide5.addText('이론보다 실제 결과물을 만드는 프로젝트 중심', {
x: 5, y: 2.9, w: 3.5, h: 0.8,
fontSize: 11, color: '666666'
});
slide5.addText('수익화', {
x: 1, y: 3.8, w: 3.5, h: 0.4,
fontSize: 16, bold: true, color: 'FF0000'
});
slide5.addText('코딩 → 프로젝트 → 수익까지 연결하는 교육', {
x: 1, y: 4.2, w: 3.5, h: 0.8,
fontSize: 11, color: '666666'
});
slide5.addText('재미', {
x: 5, y: 3.8, w: 3.5, h: 0.4,
fontSize: 16, bold: true, color: 'FF0000'
});
slide5.addText('유머와 밈을 활용한 흥미로운 학습 경험', {
x: 5, y: 4.2, w: 3.5, h: 0.8,
fontSize: 11, color: '666666'
});
// 슬라이드 6: 성공 사례 - 동물상 테스트
const slide6 = pres.addSlide();
slide6.background = { color: 'ffffff' };
slide6.addText('성공 사례: 동물상 테스트', {
x: 0.5, y: 0.5, w: 9, h: 0.8,
fontSize: 28, bold: true, color: '282828'
});
slide6.addText('AI 기반 얼굴 분석 웹 서비스', {
x: 1, y: 1.3, w: 8, h: 0.5,
fontSize: 16, color: '666666', align: 'center'
});
slide6.addText('2,000만+', {
x: 0.5, y: 2, w: 2, h: 0.6,
fontSize: 20, bold: true, color: 'FF0000', align: 'center'
});
slide6.addText('누적 테스트 횟수', {
x: 0.5, y: 2.6, w: 2, h: 0.4,
fontSize: 10, color: '666666', align: 'center'
});
slide6.addText('500만+', {
x: 3, y: 2, w: 2, h: 0.6,
fontSize: 20, bold: true, color: 'FF0000', align: 'center'
});
slide6.addText('월 방문자 수', {
x: 3, y: 2.6, w: 2, h: 0.4,
fontSize: 10, color: '666666', align: 'center'
});
slide6.addText('전국 1위', {
x: 5.5, y: 2, w: 2, h: 0.6,
fontSize: 20, bold: true, color: 'FF0000', align: 'center'
});
slide6.addText('심리테스트 순위', {
x: 5.5, y: 2.6, w: 2, h: 0.4,
fontSize: 10, color: '666666', align: 'center'
});
slide6.addText('수억 원', {
x: 8, y: 2, w: 1.5, h: 0.6,
fontSize: 20, bold: true, color: 'FF0000', align: 'center'
});
slide6.addText('광고 수익', {
x: 8, y: 2.6, w: 1.5, h: 0.4,
fontSize: 10, color: '666666', align: 'center'
});
slide6.addText('핵심 성공 요인', {
x: 0.5, y: 3.3, w: 9, h: 0.4,
fontSize: 16, bold: true, color: '282828'
});
slide6.addText('• SNS 공유 최적화된 재미있는 콘텐츠\n• 얼굴 인식 ML 모델의 웹 구현\n• 아이디어부터 런칭까지 단 2주 완성\n• 스마트폰 최적화 UI/UX', {
x: 1, y: 3.7, w: 8, h: 1.3,
fontSize: 12, color: '333333'
});
// 슬라이드 7: 성공 사례 - 기타 프로젝트
const slide7 = pres.addSlide();
slide7.background = { color: 'ffffff' };
slide7.addText('기타 성공 프로젝트', {
x: 0.5, y: 0.5, w: 9, h: 0.8,
fontSize: 28, bold: true, color: '282828'
});
slide7.addText('토스 클론 코딩', {
x: 1, y: 1.5, w: 3.5, h: 0.5,
fontSize: 16, bold: true, color: 'FF0000'
});
slide7.addText('• 100만+ 조회수\n• 실무 중심 강의\n• 현업 개발자 호평', {
x: 1, y: 2, w: 3.5, h: 1,
fontSize: 12, color: '333333'
});
slide7.addText('AI 챗봇 만들기', {
x: 5, y: 1.5, w: 3.5, h: 0.5,
fontSize: 16, bold: true, color: 'FF0000'
});
slide7.addText('• OpenAI API 활용\n• 트렌드 반영\n• 초보자도 따라 가능', {
x: 5, y: 2, w: 3.5, h: 1,
fontSize: 12, color: '333333'
});
slide7.addText('크롬 확장프로그램', {
x: 1, y: 3.2, w: 3.5, h: 0.5,
fontSize: 16, bold: true, color: 'FF0000'
});
slide7.addText('• 생산성 도구 제작\n• 웹스토어 등록\n• 수익화 방법', {
x: 1, y: 3.7, w: 3.5, h: 1,
fontSize: 12, color: '333333'
});
slide7.addText('웹 스크래핑', {
x: 5, y: 3.2, w: 3.5, h: 0.5,
fontSize: 16, bold: true, color: 'FF0000'
});
slide7.addText('• 자동화 솔루션\n• 데이터 수집\n• 업무 효율성', {
x: 5, y: 3.7, w: 3.5, h: 1,
fontSize: 12, color: '333333'
});
// 슬라이드 8: 비즈니스 현황
const slide8 = pres.addSlide();
slide8.background = { color: 'ffffff' };
slide8.addText('비즈니스 현황', {
x: 0.5, y: 0.5, w: 9, h: 0.8,
fontSize: 28, bold: true, color: '282828'
});
slide8.addText('조카소 (1인 창업가 육성)', {
x: 1, y: 1.5, w: 7, h: 0.5,
fontSize: 18, bold: true, color: 'FF0000'
});
slide8.addText('• 1,000+ 교육생\n• 80% 창업 성공률\n• 월 500만원 평균 수익', {
x: 1.5, y: 2, w: 6.5, h: 1,
fontSize: 12, color: '333333'
});
slide8.addText('코드마피아 (개발자 커뮤니티)', {
x: 1, y: 3.2, w: 7, h: 0.5,
fontSize: 18, bold: true, color: 'FF0000'
});
slide8.addText('• 5,000+ 커뮤니티 멤버\n• 90% 취업 성공률\n• 실무 중심 프로그램', {
x: 1.5, y: 3.7, w: 6.5, h: 1,
fontSize: 12, color: '333333'
});
// 슬라이드 9: 교육 프로그램
const slide9 = pres.addSlide();
slide9.background = { color: 'ffffff' };
slide9.addText('조코딩 인큐베이팅 프로그램', {
x: 0.5, y: 0.5, w: 9, h: 0.8,
fontSize: 28, bold: true, color: '282828'
});
slide9.addText('"이론이 아닌 실전, 취업이 아닌 창업"', {
x: 1, y: 1.2, w: 8, h: 0.5,
fontSize: 16, color: '666666', align: 'center'
});
slide9.addText('4단계 프로세스', {
x: 0.5, y: 1.8, w: 9, h: 0.4,
fontSize: 16, bold: true, color: '282828'
});
slide9.addText('1. 아이디어 발굴 & 검증\n2. 기술 스택 학습\n3. MVP 제작 & 런칭\n4. 수익화 & 성장', {
x: 1, y: 2.3, w: 8, h: 1.5,
fontSize: 14, color: '333333'
});
slide9.addText('프로그램 성과', {
x: 0.5, y: 4, w: 9, h: 0.4,
fontSize: 16, bold: true, color: '282828'
});
slide9.addText('500+ 졸업생 300+ 성공 프로젝트 85% 수익화 달성률', {
x: 1, y: 4.5, w: 8, h: 0.5,
fontSize: 14, bold: true, color: 'FF0000', align: 'center'
});
// 슬라이드 10: 사회적 영향력
const slide10 = pres.addSlide();
slide10.background = { color: 'ffffff' };
slide10.addText('조코딩의 사회적 영향력', {
x: 0.5, y: 0.5, w: 9, h: 0.8,
fontSize: 28, bold: true, color: '282828'
});
slide10.addText('100만+', {
x: 0.5, y: 1.5, w: 2.5, h: 0.6,
fontSize: 24, bold: true, color: 'FF0000', align: 'center'
});
slide10.addText('유튜브 구독자', {
x: 0.5, y: 2.1, w: 2.5, h: 0.4,
fontSize: 12, color: '666666', align: 'center'
});
slide10.addText('50,000+', {
x: 3.5, y: 1.5, w: 2.5, h: 0.6,
fontSize: 24, bold: true, color: 'FF0000', align: 'center'
});
slide10.addText('개발자 전환 성공', {
x: 3.5, y: 2.1, w: 2.5, h: 0.4,
fontSize: 12, color: '666666', align: 'center'
});
slide10.addText('1,000억+', {
x: 6.5, y: 1.5, w: 2.5, h: 0.6,
fontSize: 24, bold: true, color: 'FF0000', align: 'center'
});
slide10.addText('경제적 가치 창출', {
x: 6.5, y: 2.1, w: 2.5, h: 0.4,
fontSize: 12, color: '666666', align: 'center'
});
slide10.addText('핵심 가치', {
x: 0.5, y: 2.8, w: 9, h: 0.4,
fontSize: 16, bold: true, color: '282828'
});
slide10.addText('• 코딩 교육의 민주화 - 누구나 배울 수 있는 환경\n• 실용적 창업 교육 - 이론이 아닌 실전 중심\n• 개발자 생태계 발전 - 질 높은 개발자 양성\n• 경제적 기회 창출 - 새로운 일자리와 사업 기회', {
x: 1, y: 3.3, w: 8, h: 1.5,
fontSize: 12, color: '333333'
});
// 슬라이드 11: 미래 계획
const slide11 = pres.addSlide();
slide11.background = { color: 'ffffff' };
slide11.addText('미래 계획 및 비전', {
x: 0.5, y: 0.5, w: 9, h: 0.8,
fontSize: 28, bold: true, color: '282828'
});
slide11.addText('단기 목표 (2024-2025)', {
x: 0.5, y: 1.5, w: 9, h: 0.4,
fontSize: 18, bold: true, color: 'FF0000'
});
slide11.addText('• 글로벌 진출 - 영어 콘텐츠 제작\n• AI 기반 맞춤형 교육 시스템 구축\n• 기업 교육 프로그램 확장\n• 온라인 대학 설립', {
x: 1, y: 2, w: 8, h: 1.2,
fontSize: 14, color: '333333'
});
slide11.addText('장기 비전 (2026~)', {
x: 0.5, y: 3.5, w: 9, h: 0.4,
fontSize: 18, bold: true, color: 'FF0000'
});
slide11.addText('• 세계 최대 코딩 교육 플랫폼\n• 100만 개발자 양성\n• 글로벌 기술 교육 표준 제시\n• 차세대 개발자 생태계 구축', {
x: 1, y: 4, w: 8, h: 1.2,
fontSize: 14, color: '333333'
});
// 슬라이드 12: 마무리
const slide12 = pres.addSlide();
slide12.background = { color: 'ffffff' };
slide12.addText('조코딩과 함께하는 코딩 여정', {
x: 1, y: 1.5, w: 8, h: 1,
fontSize: 32, bold: true, color: '282828', align: 'center'
});
slide12.addText('"코딩은 도구이며, 가치 창출이 목표"', {
x: 1, y: 2.8, w: 8, h: 0.8,
fontSize: 24, bold: true, color: 'FF0000', align: 'center'
});
slide12.addText('• 유튜브: 조코딩\n• 웹사이트: jocoding.co.kr\n• 조카소: jokasso.com\n• 코드마피아: codemafia.co.kr', {
x: 2, y: 4, w: 6, h: 1.2,
fontSize: 14, color: '333333', align: 'center'
});
// PPTX 파일 저장
const fileName = '조코딩_프레젠테이션_12장_최종완성.pptx';
await pres.writeFile({ fileName });
console.log(`🎉 조코딩 12장 프레젠테이션이 성공적으로 생성되었습니다!`);
console.log(`📄 파일명: ${fileName}`);
console.log(`📊 총 ${pres.slides.length}개의 슬라이드가 포함되어 있습니다.`);
console.log(`\n✨ 주요 내용:`);
console.log(` 1. 표지 - 조코딩 브랜드 소개`);
console.log(` 2. 프로필 개요 - 기본정보 및 현재활동`);
console.log(` 3. 성장 스토리 - 비전공자에서 교육자까지`);
console.log(` 4. 유튜브 채널 현황 - 68만 구독자, 주요 콘텐츠`);
console.log(` 5. 교육 철학 - 접근성, 실용성, 수익화, 재미`);
console.log(` 6-7. 성공 사례 - 동물상 테스트 및 기타 프로젝트`);
console.log(` 8. 비즈니스 현황 - 조카소, 코드마피아`);
console.log(` 9. 교육 프로그램 - 인큐베이팅 프로그램`);
console.log(` 10. 사회적 영향력 - 수치와 핵심 가치`);
console.log(` 11. 미래 계획 - 단기 목표 및 장기 비전`);
console.log(` 12. 마무리 - 연락처 및 핵심 메시지`);
}
// 실행
createJoCoding12Slides().catch(console.error);