AI 협업 EP02의 콘티를 처음 받아봤을 때, 내용에는 별다른 불만이 없었다. 금융도 파이썬도 모르는 개발자가 MyStock을 시작하고, 요구사항을 정하면 ChatGPT가 분석과 설계를 보완하고 Codex가 구현하는 이야기였다. 마지막에는 세 캐릭터가 서로 반응하는 장면까지 들어갔다. 내가 전달하려던 메시지인 ‘코딩은 AI가, 방향은 내가’도 살아 있었다. 문제는 이 콘티를 실제 MyShorts 영상으로 옮기면서 시작됐다. 콘티에서 말하고 싶은 내용이 무엇인지는 알겠는데, 정작 1080×1920 세로 화면에서 어떻게 배치하고 움직이게 할지에 대한 기준이 부족했다. 결과적으로 기획 단계에서 보이지 않던 문제가 YPUB 패키지로 발행하고 실제 화면을 확인하는 순간 드러났다.1차 콘티와 1080×1920 제..
클리앙에 재밌는 글이 하나 올라왔다. ChatGPT에게 빈 방이미지를 하나 보여주고...네가 나에 대해 아는 모든 것으로 이 방을 가득 채워봐... 좀 과장해서 ChatGPT한테 빈 방을 보여주고.... : 클리앙“네가 나에 대해 아는 모든 걸로 이 방을 가득 채워봐, 좀 과장해서” 이렇게 적으니... . . 평소 관심있거나 요청했던 일들이 다 튀어나와서 방을 장식해버리네요... 개인정보(?)까지 나와서 일www.clien.net위와 같이 프롬프트를 전달하면 진짜 그동안 내가 ChatGPT에게 지시한 작업 사항이나 물어본 내용을 기반으로 나에 대한 것을 적나게 보여준다... ㅎㅎㅎ다행스럽게도...? 나는 ChatGPT에게 사적 대화는 많이 안한 것 같지만... 그래도 이건 넘하는데... ㅎㅎㅎ 누가보면 ..
이 글은 필자의 실제 투자 계좌를 바탕으로 작성한 시장 분석 및 개인 투자 기록입니다. 특정 종목이나 ETF의 매수·매도를 권유하거나 투자 수익을 보장하기 위한 글이 아닙니다. 모든 투자 판단과 그에 따른 책임은 투자자 본인에게 있습니다. ETF 적립을 시작한 지 이번 달로 꼭 1년이다. 내 기억으로는 7~8월까지만 해도 전체 수익률이 10% 안팎을 유지했는데, 10월에 들어 계좌의 분위기가 많이 달라졌다. 물론 그 시점의 계좌 성과를 동일한 방식으로 재계산한 기록은 아니므로 정확한 최고 수익률이라고 할 수는 없다. 중요한 건 지난 수익률을 아쉬워하는 것보다 지금 시장이 무엇을 다시 평가하고 있는지 살펴보는 일이다. 10월 적립은 마쳤다. 11월 급여도 이체됐지만 당장 추가로 매수하기보다는 당분간 지켜볼..
2026년 10월 24일, MyStock에 드디어 1.0.0 태그를 붙였다. 첫 Git 커밋은 8월 9일이고, 개발을 시작한 건 아마 8월 7일쯤이었을 것이다. 0.4.7을 약 2주 동안 직접 사용해 봤는데 큰 문제를 발견하지 못했다. 그래서 기능을 더 붙이기보다, 일단 여기서 하나의 안정적인 기준점을 남기기로 했다.시작은 주식 계좌를 한눈에 보자는 마음작년 11월에는 주식 공부에 도움이 될까 싶어 ChatGPT 유료 플랜에 가입했다. 하지만 정작 질문 몇 개 던져보는 정도로만 사용하다가 한동안 방치했다. 그러다 AI 코딩 이야기가 자꾸 들리던 무렵, 평소 불편했던 주식 계좌 화면이 생각났다. 윈도우 HTS는 너무 복잡했고, MTS는 화면이 작았다. 계좌별 수익률을 확인하려면 이 화면 저 화면을 돌아다녀..
MyShorts에서 만든 첫 영상을 YouTube에 올리는 기능을 붙이기로 했다. YPUB 패키지로 장면과 대사, 제목까지 정해 두고, Python 프로그램에서 Typecast 음성과 MP4를 생성하는 흐름은 이미 갖춰져 있었다. 이제 완성된 영상을 업로드하기만 하면 되는 단계였다. 내가 기대한 화면은 단순했다. 패키지와 제작 기록에 저장된 게시 정보를 기본값으로 불러오고, 수정할 것만 고친 뒤 업로드 버튼을 누르는 화면. 이미 한 번 결정한 내용을 다시 입력하게 만들 이유는 없었다. 그런데 첫 업로드 확인창을 열었을 때, 정작 자동화하려던 일이 사용자에게 돌아와 있었다.업로드 기능이 아니라 입력 양식영상 제목과 소개는 어느 정도 들어가 있었지만, 재생목록은 기본적으로 선택되지 않았고 아동 대상 여부와 ..
MyShorts에 BGM 관리 기능을 추가하면서 사용하기로 한 음악은 YouTube 오디오 라이브러리에서 다운로드한 MP3다. 기존에도 로컬 파일을 골라 영상에 넣을 수 있었지만, 쇼츠를 계속 제작하려면 곡의 분위기뿐 아니라 어디서 받은 음원인지, 저작자 표시가 필요한지까지 관리해야 했다. Google Drive에 MP3와 곡 정보를 올려놓고 MyShorts에서 가져오면 될 것 같았다. 그런데 이 방식을 실제 제작 흐름에 넣으려니 인증, 다운로드, 라이선스 처리에 대한 판단이 하나씩 필요해졌다.기존 YouTube OAuth 클라이언트 재사용가장 먼저 확인한 것은 Google 인증이었다. MyShorts에는 이미 YouTube 채널 조회용 Google OAuth가 있는데, Drive를 연결하려고 OAuth..
지난 글에서 YPUB ZIP을 MyShorts에 불러오고 JavaScript로 만든 장면을 Preview에서 확인하는 단계까지 진행했다. Typecast 음성의 실제 길이로 화면 시간을 보정하는 구조도 마련해 둔 상태였다. 이제 남은 건 그 기능들을 이어서 실제 MP4 한 편을 만드는 작업이었다. 그런데 막상 사용해 보니 영상 파일 하나를 만드는 과정이 생각보다 번거로웠다. WAV를 어느 폴더에 두었는지, 어떤 대사와 연결할지, 시간표를 어떻게 적용할지 사용자가 직접 챙겨야 한다면 자동 제작 프로그램을 만든 의미가 별로 없었다. 내가 원한 건 단순했다. YPUB ZIP을 제출하고, 화면을 확인한 다음, MP4 인코딩 버튼 하나만 누르는 것.수동 WAV 연결의 불편함앞서 구현한 JS Preview와 WAV..
Typecast 음성을 기준으로 대사와 장면 전환 시간을 자동 보정하는 구조를 정리한 뒤, MyShorts의 실제 영상 제작 기능을 연결하기 시작했다. ChatGPT가 YPUB 패키지의 화면 연출을 작성하고 Python이 시간표를 보정한다는 원칙은 정해졌지만, 이를 데스크톱 프로그램 안에서 확인하고 MP4로 만드는 과정은 별개의 문제였다.JavaScript Canvas와 FFmpeg 렌더링 구조YPUB는 단순한 대본 파일이 아니다. 장면별 JavaScript와 GIF·PNG 자산을 포함하고, 어느 시점에 무엇을 보여줄지 정의하는 제작 패키지다. 화면 구성을 Python에서 다시 구현하면 제작자가 결정한 연출과 결과물이 달라질 수 있어, 작성된 JavaScript를 그대로 실행하고 Canvas 프레임을 F..
MyShorts의 첫 번째 쇼츠는 개발자와 ChatGPT가 대화를 주고받는 짧은 상황극이다. 영상 길이도 길지 않아 처음에는 오픈소스 TTS로 충분할 거라고 생각했다. 그런데 실제 음성을 붙여보니 단순히 한국어를 읽는 것과 상황에 맞게 대화하는 것 사이에는 차이가 있었다. 상용 TTS를 검토하고 Typecast Smart Emotion으로 방향을 바꾼 뒤에는 음성 자체보다 더 중요한 문제가 남았다. ChatGPT가 예상한 대사·장면 시간과 실제 WAV 재생시간을 어떻게 맞출 것인가. 이번 작업에서는 그 문제에 대한 구조를 내가 제안하고, ChatGPT와 검토한 다음 Codex로 구현·검증하는 순서로 진행했다.오픈소스 TTS의 한계첫 에피소드에는 “야, ChatGPT! 너 코딩 잘해?”라는 질문에 “당근!..
MyShorts 프로젝트의 쇼츠 콘티를 ChatGPT와 검토하다 보니 어느 순간부터 코드보다 캐릭터의 표정과 대사를 더 많이 따지고 있다. 놀라는 표정은 조금 늦게 보여줘야 하고, PDF가 이동하는 동안 개발자가 말해야 하며, 대사가 끝난 뒤 화면을 몇 초나 유지할지도 직접 확인하고 있다. Python으로 YouTube Shorts 제작 프로그램을 개발하는 중인데, 콘티 기획자 겸 감독 업무까지 맡게 생겼다. ㅡㅡ;;ChatGPT 쇼츠 콘티의 밋밋한 연출이번 쇼츠의 소재는 AI와 개발하다 발생한 인수인계 사고다. 긴 대화방을 떠나 새로운 대화방에서 작업을 이어가기 위해 전체 개발 계획 PDF를 전달했는데, ChatGPT가 참고 문서와 실제 작업 지시의 범위를 구분하지 못해 예정하지 않은 단계까지 진행된 ..
이 글은 필자의 실제 투자 계좌를 바탕으로 작성한 시장 분석 및 개인 투자 기록입니다. 특정 종목이나 ETF의 매수·매도를 권유하거나 투자 수익을 보장하기 위한 글이 아닙니다. 모든 투자 판단과 그에 따른 책임은 투자자 본인에게 있습니다. 10월 셋째 주 시장을 보고 있자니 실적과 주가가 꼭 같은 방향으로 움직이지 않는다는 사실을 다시 생각하게 된다. 삼성전자와 SK하이닉스의 업황 기대가 나쁘지만은 않은데 반도체 관련 주가는 크게 흔들렸고, 금요일 미국 시장에서도 AI·기술주 매도가 이어졌다. 처음에는 하락폭에 시선이 갔지만, MyStock 데이터를 살펴보고 이야기를 이어가면서 더 궁금해진 건 따로 있었다. AI에 이렇게 많은 돈을 투자하는데, 그 투자금은 도대체 언제 회수할 수 있는 걸까?실적보다 앞서..
개인 프로젝트에서 AI를 사용하기 시작했을 때의 목적은 단순했다. Python을 모르는 상태에서 구현에 단 1%도 관여하지 않고 프로그램을 어디까지 개발할 수 있을지 확인하는 것이었다. 요구사항과 설계 방향을 내가 결정하고, ChatGPT가 이를 Codex용 작업 지시로 정리한 뒤, Codex의 구현 결과를 다시 설명받는 방식이었다. 작은 프로젝트에서는 이 구조가 꽤 잘 작동했다. 그런데 MyStock에 데이터베이스와 클라우드 동기화 등 익숙하지 않은 기술이 쌓이면서 문제가 달라졌다. AI가 작성한 코드가 실행되는 것과 그 구조가 올바른지는 별개의 일이었고, 정작 구현을 모르는 내가 내부 판단을 확인하기는 쉽지 않았다. 반면 회사의 임베디드 개발 업무에 AI를 적용하자 전혀 다른 결과가 나왔다. 내가 코..
앞선 글에서는 블로그 내용을 YouTube Shorts로 만드는 방법을 고민했다. 단순히 원문을 요약해 TTS로 읽어주는 영상보다는 캐릭터의 대사와 움직임으로 사건을 전달하고 싶었다. 이번에는 그 구상을 실제 화면으로 옮겨보기 위해 ChatGPT와 레이아웃을 정하고 샘플 제작을 진행했다.YouTube Shorts 화면 레이아웃과 캐릭터 구성ChatGPT는 1080×1920 세로 화면을 상단 220px, 중앙 1240px, 하단 460px으로 나누는 구성을 제안했다. 상단에는 제목과 핵심 메시지를, 중앙에는 캐릭터 애니메이션과 문서·코드·차트 같은 주요 장면을 배치하고, 하단에는 현재 대사하는 캐릭터 한 명의 이미지와 말풍선을 보여주는 방식이다. 개발자, ChatGPT, Codex의 기본 디자인도 함께 잡..
앞선 MyShorts 개발 이야기에서는 ChatGPT가 JavaScript로 모션 이미지를 생성해 YouTube Shorts에 사용하는 방식을 소개했다. 결과물은 깔끔했지만, 숏츠를 만들 때마다 스크립트를 생성하고 결과를 확인해야 한다는 점이 걸렸다. 작업 시간과 토큰 비용이 계속 발생하는 데다, 캐릭터의 표정과 움직임도 조금 아쉬웠다. 그래서 자주 등장할 장면은 미리 GIF 애니메이션으로 제작해 두고, 숏츠를 만들 때 필요한 것을 골라 재사용하기로 했다. ChatGPT가 열심히 작업하거나 결과를 설명하는 장면처럼 여러 영상에 반복해서 쓸 수 있는 동작부터 준비할 생각이었다. 그런데 캐릭터가 두 명으로 늘어나면서 예상하지 못한 문제가 시작됐다.ChatGPT 단일 캐릭터 GIF 제작과 두 캐릭터의 차이처음..
블로그에 작성한 개발 경험을 짧은 영상으로 만들기 위해 MyShorts를 구상하면서 처음에는 ChatGPT가 대본부터 이미지, 캐릭터 파츠와 모션까지 제작하는 방식을 생각했다. 실제로 이미지 파츠와 JavaScript를 이용해 5초짜리 로봇 애니메이션을 만드는 실험도 진행했다. 움직이는 캐릭터를 만들 수 있다는 가능성은 확인했지만, 다음 질문이 남았다. 영상마다 새로운 장면과 캐릭터가 등장한다면 제작에 필요한 자료를 매번 같은 방식으로 준비해야 할까? 이미지와 모션 파츠를 AI로 만드는 작업에도 생성 비용과 사용량이 들어간다. 유료 영상 생성 서비스를 추가로 구독하지 않고 영상을 제작하고 싶었던 만큼, ChatGPT가 모든 결과물을 직접 만드는 구조가 적절한지도 따져 볼 필요가 있었다. 그래서 제작 작업..