[작성자:] 컴맹 집사

  • 네이버 글 소제목을 앱이 못 읽는다? 점검 오류를 기록한다

    작성자: 컴맹 집사

    번외 편

    이 글에서 얻는 것

    • 이런 분께 블로그 점검 도구의 결과를 그대로 믿어도 되는지 궁금한 분
    • 핵심 답 네이버 글의 시각 강조 점수가 낮게 나온 이유는 소제목을 제대로 읽지 못했을 가능성이 크다. 아직 원인을 확인하는 중이다
    • 바로 쓰는 팁 도구의 점수를 볼 때는 실제 글을 열어서 항목이 맞는지 한 번 확인하자

    무엇이 이상했나

    네이버에 올린 첫 번째 글을 Blog X-ray로 점검했습니다. 총점은 86점이었고, 시각 강조·리듬 항목은 6/20이었습니다. 앱은 “소제목(H2/H3)이 하나도 없다”고 판정했습니다.

    그런데 글을 직접 열어 보면 「Blog X-ray는 어떤 앱인가요?」, 「어떤 항목을 진단할 수 있을까요?」처럼 소제목 역할을 하는 문단이 여러 개 있습니다. 판정과 실제 글이 맞지 않았습니다.

    두 번째 네이버 글과 비교하면

    두 번째 네이버 글은 시각 강조가 17/20이었고, 앱이 소제목을 1개 찾았습니다. 같은 플랫폼인데도 소제목을 찾는 결과가 글마다 다릅니다.

    지금 추정하는 원인

    • 네이버 편집기에서 소제목을 일반 문단과 다른 제목 서식으로 넣었는지, 아니면 글자 크기와 굵기만 바꾼 것인지에 따라 앱이 다르게 읽는 것으로 보입니다.
    • 이 추정은 아직 확인하지 않았습니다. 원문 구조를 확인해야 확실해집니다.

    네이버 글의 판정 카드

    네이버 글 시각 강조·리듬 판정 카드, 6/20점
    네이버 첫 글의 시각 강조 판정. 소제목을 0개로 봤다
    네이버 글 E-E-A-T 판정 카드, 20/20점
    같은 글의 경험 증거 판정. 체험 표현 4회, 사진 5장

    이 오류를 어떻게 다룰까

    앱의 점수를 발표할 때 네이버 글의 시각 강조 점수는 참고용으로만 씁니다. 원인을 확인해 규칙을 고치면 그때 다시 점검해서 결과를 적겠습니다.

  • 강아지 앱에 고양이판까지, 여러 판을 한 저장소로 합친 방법

    강아지 앱에 고양이판까지, 여러 판을 한 저장소로 합친 방법

    작성자: 컴맹 집사

    시즌 2 「비록 작은 왕국이지만, 왕립 개집사협회 앱의 세계관을 넓혀 가는 과정」 5편

    대표 이미지: 나란히 앉은 강아지와 고양이, 한 집에 사는 두 가족 (사진: GiselaFotografie / Pixabay)

    이 글에서 얻는 것

    • 이런 분께 비슷한 파일을 복사해 조금씩 고쳐 쓰다 한쪽만 빠뜨리는 분
    • 핵심 답 한국·미국·일본판과 고양이판을 한 저장소로 합쳤다. 공통 파일은 하나만 두고, 나라마다 다른 글자 파일에만 .ko. .en. .ja. 이름표를 붙였다
    • 바로 쓰는 팁 AI에게 “이 세 파일에서 똑같은 부분과 다른 부분을 나눠 줘. 똑같은 부분은 하나로 합치고 싶어”라고 부탁해 보자

    집사 아카데미를 새로 만든 날, 한국판에서는 잘 보이는 아카데미 버튼이 일본판에는 없었다. 일부러 뺀 게 아니었다. 일본판은 아예 다른 상자에 들어 있어서, 한국판에 넣은 새 기능이 넘어갈 길이 없었던 것이다.

    앞 글에서 세 나라 앱을 한 번에 올리는 자동 배포 이야기를 했다. 그게 가능해진 건 그 전에 먼저 한 일이 있어서다. 흩어져 있던 여러 판을 한 저장소로 모으는 일이었다.

    상자가 여러 개면 생기는 일

    코드를 보관하는 GitHub 저장소를 상자라고 생각해 보자. 처음 일본판을 만들 때 AI에게 “일본어판을 만들어 줘”라고만 했더니, 한국판 상자를 통째로 복사해서 새 상자를 하나 만들었다. 그때는 편했다. 일본어로 바꾸는 것만 신경 쓰면 됐으니까.

    문제는 그다음부터였다. 한국판 상자에 아카데미를 넣어도 일본판 상자에는 그대로였다. 버그를 고쳐도 한쪽만 고쳐졌다. 같은 앱인데 상자마다 조금씩 다른 앱이 되어 갔다. 상자가 둘이면 할 일도 두 배, 셋이면 세 배였다.

    상자 하나, 이름표 세 개

    AI가 제안한 방법은 간단했다. 상자를 하나로 합치고, 나라마다 다른 파일에만 이름표를 붙이는 것이다.

    • 세 나라가 똑같이 쓰는 파일: 화면을 움직이는 코드, 작위증을 그리는 코드, 디자인. 이름표 없이 하나만 둔다.
    • 나라마다 다른 파일: 글자, 질문과 결과 문구, 웹툰 대사. 파일 이름 뒤에 .ko., .en., .ja.를 붙여 나라를 표시한다.

    예를 들어 앱의 글자를 모은 파일은 strings.ko.js, strings.en.js, strings.ja.js 세 개로 나뉜다. 반면 화면을 움직이는 app.js는 하나뿐이다. 이제 버튼 하나를 고치면 세 나라에 똑같이 고쳐진다. 일본판을 만들 때는 정리 프로그램이 .ja. 이름표가 붙은 파일과 공용 파일만 모아서 일본판 사이트를 만든다.

    같은 건물에 간판만 나라별로 바꿔 다는 것과 비슷하다. 건물 수리는 한 번만 하면 된다.

    고양이판도 같은 방법으로

    사실 우리 왕국에는 강아지판만 있는 게 아니다. 고양이를 키우는 집사를 위한 고양이판도 있고, 고양이판 역시 한국판, 일본판, 미국판이 따로따로 만들어져 있었다. 강아지판에서 겪은 문제가 고양이판에도 그대로 생길 게 뻔했다.

    그래서 같은 날 고양이판도 한 상자로 합쳤다. 이때 재미있는 일이 있었다. 미국판 고양이 웹툰은 미국 독자에 맞춰 캐릭터와 그림체를 따로 만든 것이었다. 이런 건 공용으로 묶을 수 없다. 그래서 미국판 전용 웹툰 그림은 별도 폴더에 두고, 나라마다 다른 파일 규칙을 그대로 적용했다. 공용으로 묶을 것과 따로 둘 것을 구분하는 게 합치기의 핵심이었다.

    줄무늬 아기 고양이
    줄무늬 아기 고양이. 고양이판도 강아지판과 같은 저장소에서 만들어진다
    사진: Chiemsee2024 / Pixabay

    합치다가 하마터면 생길 뻔한 사고

    새 사이트를 만드는 과정에서 아찔한 순간이 있었다. Vercel에 새 사이트를 만들면, 자동으로 GitHub 저장소와 연결이 걸려 버리는 경우가 있다. 그대로 두면 나중에 한국판을 올릴 때마다 미국판 사이트에도 한국판이 올라간다. 앞 글에서 말한 “영어 앱을 열었는데 한국어가 나오는” 바로 그 문제다.

    AI가 이 위험을 기록해 두었던 덕분에, 새 사이트를 만들자마자 자동 연결을 바로 끊었다. 이 일은 결정 기록에 “주의사항 재확인”으로 남아 있다. 한 번 겪은 실수를 문서로 남겨 두면, 다음엔 AI가 먼저 챙겨 준다.

    없는 기능은 알아서 숨는다

    한 상자로 합치고 나서 생긴 고민이 하나 더 있었다. 친구 강아지와 궁합 보기 기능은 문구가 한국어로만 준비되어 있었다. 공용 코드는 하나니까 미국판에도 궁합 버튼이 생길 텐데, 누르면 빈 화면이 나올 것이다.

    그래서 규칙을 하나 정했다. 그 나라 글자 파일에 기능 문구가 없으면, 버튼 자체를 보여 주지 않는다. 덕분에 한국판에 먼저 기능을 내놓고, 번역이 준비되는 대로 다른 나라에 하나씩 열 수 있게 되었다. 일본판에 아카데미 문구가 아직 없을 때도 이 규칙 덕에 일본판 화면은 깨지지 않았다.

    옛 상자는 바로 버리지 않았다

    합친 뒤 예전 일본판, 미국판 상자는 어떻게 했을까? 지우지 않고 그대로 두었다. 혹시 합치는 과정에서 빠뜨린 게 있으면 꺼내 볼 수 있게 하기 위해서다. 정리는 나중에 해도 늦지 않다. 되돌릴 수 없는 일은 서두르지 않는다, 이것도 이번에 세운 원칙이다.

    내 일에 가져갈 한 가지

    비슷한 파일을 복사해서 조금씩 고쳐 쓰고 있다면 이 방법을 떠올려 보자. 공통인 부분은 하나로 모으고, 다른 부분에만 이름표를 붙이는 것이다. 엑셀 양식, 블로그 글 틀, 계약서 양식도 마찬가지다. AI에게는 “이 세 파일에서 똑같은 부분과 다른 부분을 나눠 줘. 똑같은 부분은 하나로 합치고 싶어”라고 부탁하면 된다. 시즌 1의 앱과 웹앱의 차이 글에서 웹앱을 고른 이유 중 하나가 “고치기 쉬워서”였는데, 이번에 그 장점을 제대로 누렸다.


    이전 글: 한국판 하나 고쳤는데 미국·일본판까지? 3개국 자동 배포 만든 날
    다음 이야기: 웹툰 한 편으로 세 플랫폼? 네이버웹툰·인스타용으로 나눠 만든 법

  • Blog X-ray 점수, 와우굿앱 글 3편과 네이버 글 2편을 돌려 본 결과

    작성자: 컴맹 집사

    번외 편

    이 글에서 얻는 것

    • 이런 분께 블로그 글을 점검하는 도구가 실제로 어떤 점수를 주는지 궁금한 분
    • 핵심 답 와우굿앱 글 세 편은 72~75점, 네이버 글 두 편은 79~86점이었다. 낮은 점수는 시각 강조와 도입부 후킹, 경험 증거에 몰렸다
    • 바로 쓰는 팁 점수 자체보다 가장 낮은 항목 하나를 고쳐 다시 돌려 보면 점수가 어떻게 변하는지 확인할 수 있다

    점검한 글

    • 와우굿앱 글: 「앱에 미니게임 넣기, 화면이 움직이는 비밀(게임 루프)」 75점
    • 와우굿앱 글: 「영상 자동 제작 프로그램, 무료로 풀면 쓸모 있을까」 72점
    • 와우굿앱 글: 「기능 하나 만들기 전에 ‘기준서’부터 쓰는 이유」 72점
    • 네이버 글: 「블로그 글 진단 앱 Blog X-ray 개발기」 86점
    • 네이버 글: 두 번째 글 79점
    Blog X-ray 진단 결과 화면
    진단 결과 화면, 와우굿앱 미니게임 글 75점

    낮은 항목을 보면

    • 미니게임 글은 시각 강조·리듬이 14/20이었습니다. 굵은 글씨가 없다는 지적이 있었는데, 와우굿앱은 굵은 글씨를 쓰지 않는 원칙이 있어 그대로 두었습니다.
    • 영상 도구 글은 시각 강조가 11/20이었습니다. 이미지 없이 긴 구간이 있다는 지적이 나왔습니다.
    • 기준서 글은 경험 증거가 8/20이었습니다. 체험 표현과 사진 개수만 세기 때문에, 실제 경험이 충분해도 낮게 나올 수 있습니다.
    • 네이버 첫 글은 시각 강조가 6/20이었습니다. 소제목을 0개로 판정했는데, 실제로는 소제목처럼 보이는 문단이 있습니다. 이 항목은 참고만 해 주세요.
    • 네이버 두 번째 글은 도입부 후킹이 5/15였습니다. 첫 3문단에 물음표나 숫자가 없다고 판정했습니다.
    Blog X-ray 입력 화면
    글 주소를 넣고 진단 버튼을 누르는 입력 화면

    점수보다 중요한 것

    앱이 알려 주는 것은 정답이 아니라 기준에 비춰 약한 부분입니다. 그 기준을 따를지는 글쓴이가 정해야 합니다. 저는 굵은 글씨 지적을 따르지 않았고, 그 결정은 글에 그대로 남겨 두었습니다.

  • AI로 과학 쇼츠 만들기, 천만 뷰 영상 뜯어보고 코드로 도면 그린 하룻밤

    AI로 과학 쇼츠 만들기, 천만 뷰 영상 뜯어보고 코드로 도면 그린 하룻밤

    작성자: 컴맹 집사

    번외 편

    대표 이미지: 직접 만든 쇼츠 두 편의 한 장면 (왼쪽 자격루, 오른쪽 생일 역설)

    이 글에서 얻는 것

    • 이런 분께 사진이나 실사 영상 없이도 지식 쇼츠를 만들어 보고 싶은 분
    • 핵심 답 잘된 영상을 먼저 뜯어보고 그 공통점을 ‘AI 작업 설명서’로 묶은 뒤, 화면은 코드로 그린 도면으로 채웠다
    • 바로 쓰는 팁 음성을 먼저 만들고, 그 길이에 맞춰 화면을 그려야 말이 겹치지 않는다

    지난 번외 편에서는 웹툰으로 쇼츠를 자동으로 만드는 이야기를 했습니다. 이번에는 웹툰이 아니라 과학과 수학입니다. 11월 1일 저녁에 “코드로 그린 그림만으로 쇼츠를 만들 수 있을까?”라는 질문으로 시작해, 새벽까지 AI(Claude)와 함께 영상 두 편과 작업 설명서 두 개를 만들었습니다. 그 하룻밤의 기록입니다.

    실사 대신 ‘도면’을 고른 이유

    처음 질문은 단순했습니다. 코드로 그리는 방식으로 어떤 쇼츠를 만들 수 있을까. 답을 들어 보니 강점과 약점이 분명했습니다. 원리, 구조, 변화, 숫자 비교처럼 ‘움직임으로 설명되는 것’은 잘 그리고, 실제 사람이나 풍경처럼 ‘사실감’이 필요한 것은 약했습니다.

    그래서 약점을 메우려 하지 않고 아예 채널의 개성으로 삼기로 했습니다. 짙은 남색 바탕에 한지색 선으로 단면도를 그리고, 지금 움직이는 부품만 주홍색으로 칠하는 ‘먹선 설계도’ 스타일입니다. 그림은 Manim이라는 무료 도구로 그렸습니다. 유명한 수학 유튜브 채널 3Blue1Brown을 만든 사람이 자기 영상용으로 만들어 공개한 도구입니다(Manim 공식 저장소). 채널 이름도 이 방향에 맞춰 ‘이게 왜 돼?’로 정했습니다.

    조회수 1,000만 회 넘은 쇼츠를 먼저 뜯어봤다

    바로 만들지 않고, 크게 성공한 쇼츠부터 살펴봤습니다. Claude가 제 크롬 브라우저로 유튜브를 열어 조회수, 댓글, 그 채널의 다른 영상 조회수까지 모아 정리했습니다. 처음에는 100만 회 이상으로 찾다가, 기준을 1,000만 회 이상으로 올렸습니다.

    영상 주제 조회수(분석 당시) 길이 끝까지 보게 만든 장치
    답이 갈리는 수학 문제 약 2,195만 68초 “나는 이게 답” 논쟁
    건강 제품이 진짜인지 따져 보기 약 1,908만 32초 유사과학 확인
    중력을 1분 만에 납득시키기 약 1,705만 42초 고무막 비유
    뇌의 착각이 만든 사건 약 1,460만 49초 충격 + “마음먹기 나름” 공감
    계산 꿀팁 “이거 나만 몰랐나” 약 1,152만 11초 바로 따라 해 보기

    공통점은 세 가지였습니다. 누구나 아는 것을 다루고, 보는 사람이 속으로 답을 찍거나 직접 해 보게 만들고, 마지막에 공감이나 반전이 있었습니다. 반대로 댓글에서 공격받은 지점도 비슷했습니다. 숫자가 부정확하거나, 출처를 찾을 수 없거나, 남의 영상을 가져다 쓴 경우였습니다. 저는 같은 궁금증 공식을 쓰되, 확인한 사실과 직접 그린 그림으로 가기로 했습니다.

    그걸 ‘AI 작업 설명서’로 묶었다

    Claude에는 스킬이라는 기능이 있습니다. 스킬은 AI에게 주는 작업 설명서입니다. 한 번 저장해 두면 다음부터 “이거 해 줘” 한마디에 같은 순서와 기준으로 일합니다. 이날 두 개를 만들었습니다.

    • 쇼츠 분석 스킬: 유튜브 링크를 주면 조회수, 댓글, 채널 평균 대비 몇 배 터졌는지를 같은 형식으로 정리합니다.
    • 쇼츠 대본 스킬: 위 분석에서 뽑은 제목 공식, 처음 3초 규칙, 비유 쓰는 법, 자막 길이 규칙, 그리고 “확인한 사실만 쓴다”는 원칙을 담았습니다.

    첫 두 편: 자격루와 생일 역설

    첫 편은 장영실의 자격루입니다. 물이 흘러 살대가 떠오르고, 구슬이 굴러 인형이 종을 치는 순서를 도면으로 움직였습니다. 구조는 백과사전 기록대로 따랐습니다(한국민족문화대백과사전, 자격루). 원래 장치는 남아 있지 않아서, 화면 아래에 “작동부는 원리를 보여 주는 단순화 도식”이라고 적었습니다.

    1차본을 보고 제가 처음 한 말은 “장영실이 만들었다는 얘기도 안 해 주나?”였습니다. 정말 장영실 이름이 마지막 질문에만 나왔습니다. 고친 3차본에서는 첫 화면을 “600년 전 조선에 자동 알람시계가 있었다”로 바꾸고, “물이 시곗바늘, 구슬이 알람 버튼” 같은 비유를 앞에 세웠습니다. 길이는 56초에서 46초로 줄였습니다.

    두 번째는 수학입니다. “한 반 30명 중 생일이 같은 사람이 있을 확률은?” 정답은 약 70.6%입니다. 서른 명이 서로 한 번씩 악수하면 435번이라, 생일을 비교할 기회가 생각보다 훨씬 많기 때문입니다. 숫자는 지어내지 않고, 30명짜리 반을 컴퓨터로 1만 개 만들어 직접 확인했습니다. 1만 반 중 7,054반에서 생일이 겹쳤습니다.

    생일 역설 쇼츠 세 장면: 70.6% 정답, 435번의 악수, 1만 반 중 7,054반
    생일 역설 쇼츠의 세 장면. 정답 공개, 악수 선 435개, 1만 반 직접 확인

    막힌 곳 세 가지

    첫째, 말이 겹쳤습니다. 영상에는 자막만 넣고 목소리는 캡컷 자동 음성으로 입히려 했는데, 음성이 자막보다 길어 앞뒤 문장이 포개지는 곳이 생겼습니다. 영상을 먼저 만들고 음성을 나중에 맞춘 순서가 문제였습니다.

    둘째, 숫자를 이상하게 읽었습니다. 435번을 “네백삼십오 번”으로 읽었습니다. 음성용 문장은 “사백삼십오 번”처럼 한글로 풀어 쓰니 해결됐습니다. 화면 글자와 음성용 글자를 따로 두면 됩니다.

    셋째, 작업 공간이 바뀌어 있었습니다. 2026년 10월 6일부터 Pro·Max 등 개인 유료 요금제에서 새로 시작하는 작업은 내 컴퓨터가 아니라 클라우드에서 실행됩니다(Claude 도움말). 클라우드에서는 구글 음성 서버에 접속이 막혀 있어서, 예전에 웹툰 쇼츠용으로 만들어 둔 구글 음성 기능을 쓸 수 없었습니다. 도움말 안내대로, 내 컴퓨터에서만 돌리는 작업은 데스크톱 앱의 Claude Code로 옮기기로 했습니다.

    다음 단계

    순서를 뒤집습니다. 음성을 먼저 만들고, 문장마다 실제 음성 길이를 재서 그 길이만큼 화면을 그린 뒤 합칩니다. 이렇게 하면 말이 겹칠 수가 없습니다. 음성은 웹툰 쇼츠 때 쓰던 구글 음성을 그대로 씁니다(요금 이야기는 무료 AI 목소리 편에 정리해 두었습니다). 이 작업은 내 컴퓨터의 Claude Code에서 이어 가고, 음성까지 들어간 완성본이 나오면 다시 기록하겠습니다.

    내 일에 가져갈 한 가지

    만들기 전에 잘된 것부터 뜯어보는 순서는 쇼츠가 아니어도 그대로 쓸 수 있습니다. 혼자 하기 어렵다면 AI에게 이렇게 맡겨 보세요.

    내 분야에서 조회수가 크게 나온 쇼츠 다섯 편을 찾아서, 채널 평균보다 몇 배 나왔는지, 처음 3초에 무엇을 보여 주는지, 댓글 반응은 어떤지 표로 정리해 줘. 그리고 공통점을 내가 바로 쓸 수 있는 대본 규칙 다섯 줄로 만들어 줘. 숫자는 확인한 것만 쓰고, 확인 못 한 건 확인 못 했다고 적어 줘.

    함께 읽으면 좋은 글: 영상 자동 제작 프로그램, 무료로 풀면 쓸모 있을까?


    이전 글: 쇼츠 한 편을 만드는 데 17분, 새벽 작업 기록으로 본 흐름

  • 작위를 한 단계씩! 앱에 퀴즈 아카데미 넣는 법

    작위를 한 단계씩! 앱에 퀴즈 아카데미 넣는 법

    작성자: 컴맹 집사

    대표 이미지: 작위 승급 시험을 보는 아카데미 첫 화면 (출처: 왕립 개집사협회 앱 2026년 9월 20일 버전 화면, 직접 캡처)

    이 글에서 얻는 것

    • 이런 분께 한 번 하고 끝나는 테스트 앱에 다시 올 이유를 만들고 싶은 분
    • 핵심 답 진단과 따로 ‘왕립 집사 아카데미’ 승급 퀴즈를 만들었다. 문제 10~12개 중 5개를 무작위로 뽑고, 4개 이상 맞히면 한 단계 승급한다
    • 바로 쓰는 팁 퀴즈 규칙과 문제도 코드를 부탁하기 전에 기준서로 먼저 정리해 여러 AI의 검토를 받자

    작위증을 받은 사람들에게서 비슷한 말을 들었다. “나 1단계 수습집사래. 더 올라갈 수는 없어?”

    처음 설계에서 작위는 진단 한 번으로 정해지고 끝이었다. 결과가 마음에 안 들면 처음부터 다시 진단을 받는 수밖에 없었다. 그런데 작위를 노력해서 한 단계씩 올리는 재미가 있으면 좋겠다는 생각이 들었다. 그렇게 만든 것이 왕립 집사 아카데미다.

    진단과는 완전히 따로 만들었다

    가장 먼저 정한 원칙은 성향 진단과 섞지 않는 것이었다. 진단은 “나는 어떤 집사인가”를 알아보는 것이고, 아카데미는 “집사로서 한 단계 올라가는” 도전이다. 둘을 섞으면 진단 결과를 믿기 어려워진다.

    그래서 아카데미는 별도의 미니게임으로 만들었다.

    • 작위증 화면에 “아카데미 도전하기” 버튼을 둔다.
    • 시험에 합격하면 작위가 딱 한 단계 오른다.
    • 1단계에서 2단계, 2단계에서 3단계처럼 시험은 네 번. 마지막 시험에 합격하면 최고 작위인 왕실 총집사가 된다.

    무엇을 묻는 퀴즈인가

    AI와 처음 이야기할 때는 “강아지 보호자가 알면 좋은 상식 퀴즈”도 후보였다. 하지만 이 앱에는 처음부터 정해 둔 원칙이 있다. 재미를 위한 오락용이며, 실제 반려동물 양육 능력이나 건강 상태를 평가하지 않고, 의료·영양 조언을 하지 않는다.

    건강이나 먹이 같은 실제 조언을 퀴즈로 내면, 틀린 정보가 섞였을 때 실제로 강아지가 다칠 수 있다. 정답을 못 맞힌 사람이 “나는 나쁜 보호자인가” 하고 느낄 수도 있다. 그래서 퀴즈는 전부 세계관 안의 왕실 예절 상식으로만 만들었다. 이런 식이다.

    폐하의 밥그릇이 비었다. 신입 집사의 올바른 대응은?
    ① 빈 그릇을 감상한다 ② 내일 채워주겠다고 답한다 ③ 핸드폰부터 확인한다 ④ 즉시 왕실 주방으로 향한다

    정답은 누가 봐도 알 만하게 하나, 나머지 세 개는 웃음이 나는 오답으로 채웠다. 공부가 아니라 왕실 집사 놀이에 가깝게.

    퀴즈 규칙 정하기

    • 시험마다 10~12개의 문제 중 5개를 무작위로 뽑는다. 다시 도전해도 같은 문제만 나오지 않게.
    • 5개 중 4개 이상 맞히면 합격, 한 단계 승급.
    • 불합격하면 점수를 알려 주고 바로 다시 도전할 수 있다.

    이 규칙과 문제들도 게임 때처럼 기준서로 먼저 정리해서 여러 AI의 검토를 거친 뒤 만들었다.

    아카데미 시험 문제 화면
    5문항 중 4개 이상 맞히면 승급한다
    출처: 왕립 개집사협회 앱 2026년 9월 20일 버전 화면, 직접 캡처

    기존 코드를 재활용했다

    퀴즈를 만들려는데, 이미 비슷한 걸 만들었다는 게 생각났다. 진단의 질문 화면이다. 질문을 보여 주고, 보기를 누르면 다음으로 넘어가는 구조가 같았다. 문제들도 질문 목록처럼 데이터 파일에 모아 두었다.

    합격했을 때 주는 인증서도 새로 만들지 않았다. 작위증을 그대로 재활용하고, 사진 옆 빈 자리에 “아카데미 승급” 리본 배지만 더했다. 배지를 어디에 둘지는 실제 배경 그림을 보며 모서리 장식과 겹치지 않는 자리를 골랐다. 마지막 단계인 왕실 총집사가 되면 배경은 그대로 두고 글자 색만 금빛으로 바꿔서 특별함을 줬다.

    한 번 만든 구조를 다른 곳에 다시 쓸 수 있다는 걸 알고 나니, 기능을 만드는 속도가 확 빨라졌다. 코드를 몰라도 “그때 만든 그거랑 비슷하게”라고 말할 수 있으면 충분했다.

    저장은 따로, 이름표도 따로

    아카데미 단계는 진단 결과와 다른 이름표로 저장했다. 아카데미 기록을 저장하다가 기존 작위증 기록을 망가뜨리면 안 되기 때문이다.

    그런데 이렇게 따로 저장한 것이 나중에 뜻밖의 버그로 이어졌다. 시험 한 번에 여러 단계가 오르는 일이 생긴 것이다. 이 버그를 찾아 고친 이야기는 뒤에서 따로 적었다.

    작위증이 없는 사람도 해 볼 수 있게

    처음에는 작위증이 있는 사람만 아카데미에 들어갈 수 있었다. 그런데 첫 화면에 볼거리를 늘리려고 아카데미 버튼을 첫 화면에도 항상 보이게 하면서 고민이 생겼다. 작위증이 없는 사람이 누르면 어떻게 할까?

    그래서 체험판을 만들었다. 작위증이 없으면 1단계 시험을 체험해 볼 수 있고, “체험판이라 합격해도 실제 작위에는 반영되지 않아요”라고 안내한다. 체험판에서는 아무것도 저장하지 않는다. 한 번 해 보고 재미있으면 진짜 진단을 받으러 가면 된다.

    아직 남은 숙제

    직접 여러 번 풀어 보니 아쉬운 점도 있었다. 보기가 전부 문장이라 흥미가 덜하다는 것이다. 이모지로 바꾸면 더 재미있을 것 같았다. AI는 보기를 이모지만으로 바꾸면 문제의 뜻이 흐려질 수 있으니, 문장은 두고 보기 앞에 이모지를 붙이는 방법을 제안했다. 이건 다음에 손보기로 기록해 두었다.


    이전 글: 손가락으로 강아지를 쓱쓱! 터치 게임 만들다 막힌 4가지
    다음 글: 메뉴가 늘어나 복잡해진 앱, 카드와 파일로 정리한 법

  • 한국판 하나 고쳤는데 미국·일본판까지? 3개국 자동 배포 만든 날

    한국판 하나 고쳤는데 미국·일본판까지? 3개국 자동 배포 만든 날

    작성자: 컴맹 집사

    시즌 2 「비록 작은 왕국이지만, 왕립 개집사협회 앱의 세계관을 넓혀 가는 과정」 4편

    대표 이미지: 세계 지도가 그려진 두 손, 세 나라 판을 함께 돌보는 일 (사진: stokpic / Pixabay)

    이 글에서 얻는 것

    • 이런 분께 같은 앱을 여러 나라·여러 곳에 손으로 따로 올리고 있는 분
    • 핵심 답 GitHub 보관소 하나에 세 나라 코드를 두고, Vercel의 나라별 사이트 셋이 새 코드를 동시에 가져가 각자 자기 나라 파일로 만들게 했다
    • 바로 쓰는 팁 AI에게 자동화를 부탁할 때 “한 곳만 고치면 나머지가 따라오게 해 줘”와 함께 “실수도 같이 퍼지지 않게 막는 장치도 알려 줘”를 꼭 묻자

    “어, 미국판은 왜 아직도 옛날 화면이지?”

    한국판에 새 기능을 넣고 뿌듯해하던 날, 미국판을 열어 보다가 혼잣말이 나왔다. 왕립 개집사협회 앱에는 한국판 말고도 미국판과 일본판이 있다. 화면과 기능은 같고 글자와 웹툰만 나라에 맞게 다르다. 그런데 한국판을 고치고 나서 미국판에 반영하는 걸 깜빡한 것이다. 그런 일이 두 번이나 있었다.

    이 글은 그 실수를 다시는 하지 않으려고, 한 번 올리면 세 나라 앱이 함께 바뀌는 구조를 만든 이야기다.

    왜 미국판만 따로 놀았을까

    시즌 1에서 앱을 인터넷에 올리는 과정을 썼다. 내 컴퓨터의 코드를 GitHub라는 보관소에 올리면, Vercel이라는 서비스가 그걸 가져가 자동으로 사이트를 새로 만들어 준다. 한국판은 처음부터 이렇게 자동이었다.

    미국판은 사정이 달랐다. 같은 보관소에 연결했더니 미국판 사이트에 한국판 코드가 그대로 올라가 버리는 문제가 있었다. 영어 앱을 열었는데 한국어가 나오는 셈이다. 급한 대로 미국판은 자동 연결을 끊고, 필요할 때마다 손으로 따로 올렸다. 손으로 하는 일은 언젠가 잊는다. 그게 문제의 시작이었다.

    세 지점, 메뉴판 하나

    AI와 함께 그린 해결책을 식당에 비유하면 이렇다. 본점 하나에 지점이 셋 있다. 예전에는 메뉴가 바뀌면 지점마다 직접 찾아가 메뉴판을 바꿔 달았다. 새 방식은 본점 메뉴판 하나만 고치면 세 지점이 각자 자기 나라 말로 메뉴판을 새로 찍어 거는 것이다.

    실제로는 이렇게 만들었다.

    • GitHub 보관소는 하나다. 한국판, 미국판, 일본판 코드가 모두 여기에 있다.
    • Vercel에는 나라별로 사이트가 셋 있다. 한국판은 app.dogdo209.com, 미국판과 일본판은 각자의 주소를 쓴다.
    • 보관소에 새 코드가 올라오면 세 사이트가 동시에 그걸 가져가서, 각자 자기 나라 파일만 골라 사이트를 만든다.

    “자기 나라 파일만 골라” 만드는 부분은 작은 정리 프로그램이 맡는다. 한국판을 만들 때는 영어 파일을 빼고, 미국판을 만들 때는 한국어와 일본어 파일을 뺀다. 내가 할 일은 보관소에 올리는 것 하나로 줄었다.

    첫 시도는 미국판이 실패했다

    물론 한 번에 되지 않았다. 처음 연결했을 때 한국판은 잘 만들어졌는데 미국판만 실패했다. 오류 메시지를 AI에게 보여 주니 원인은 의외의 곳에 있었다. “Vercel에 올리지 않을 파일 목록”을 적어 둔 설정 파일이 세 나라 사이트에 똑같이 적용되고 있었다. 한국판에 필요 없다고 빼 둔 정리 프로그램 폴더를, 미국판은 꼭 필요로 했는데 그것까지 빠져 버린 것이다.

    그래서 공통 목록에는 정말 어디에도 필요 없는 큰 폴더와 비밀 파일만 남기고, 한국판에서만 뺄 파일은 한국판 정리 프로그램이 따로 처리하게 바꿨다. 바꾼 뒤 한국판 사이트에 올라가는 파일 수가 예전과 똑같은지까지 세어서 확인했다.

    노트북 화면에 띄운 코드
    노트북 화면의 코드. 판마다 다른 문구를 같은 코드로 내보내는 것이 자동 배포의 핵심이었다
    사진: Pexels / Pixabay

    사고를 막는 안전장치

    자동은 편하지만 무섭다. 실수도 자동으로 세 나라에 퍼지기 때문이다. 그래서 안전장치를 두 개 걸었다.

    하나는 섞이면 멈추는 장치다. 미국판을 만들다가 다른 나라 파일이 섞여 들어가면 정리 프로그램이 일부러 실패를 낸다. Vercel은 만들기에 실패하면 이전 사이트를 그대로 두기 때문에, 이용자는 아무 일도 없었던 것처럼 원래 화면을 본다.

    다른 하나는 올리기 전 시험 규칙이다. 이제 보관소에 올리는 순간이 곧 세 나라 사이트가 동시에 바뀌는 순간이다. 그래서 기준서에 이렇게 못 박았다.

    올리기 전에 바꾼 판의 자동 테스트를 먼저 통과시킨다. 세 나라가 같이 쓰는 파일을 고쳤다면 세 판 전체 테스트를 돌린다. 실패가 하나라도 있으면 올리지 않는다.

    세 판 전체 테스트는 한 번 돌리는 데 50분쯤 걸린다. 처음엔 길게 느껴졌지만, 세 나라에 한꺼번에 오류를 내보내는 것보다는 기다리는 게 훨씬 싸다. 사파리 같은 일부 환경에서 이번 변경과 상관없어 보이는 실패가 나도, 다시 돌려서 통과하는 걸 확인한 뒤에 올린다.

    일본판은 마지막에 연결했다

    일본판은 이용자가 아주 적었다. 그래서 먼저 한국판과 미국판을 연결해 안정되는 걸 본 뒤, 일본판을 최신 상태로 맞추고 마지막에 붙였다. 한꺼번에 셋을 바꾸면 문제가 생겼을 때 어디서 났는지 찾기 어렵다. 하나씩 붙이는 게 느려 보여도 결국 빨랐다.

    내 일에 가져갈 한 가지

    여러 곳에 같은 걸 손으로 반영하고 있다면, 언젠가 하나는 빠진다. 블로그 여러 개에 같은 공지를 올리거나, 엑셀 파일 여러 개에 같은 숫자를 고치는 일도 마찬가지다. AI에게 이렇게 물어보자. “지금 이 작업을 세 곳에 손으로 반복하고 있어. 한 곳만 고치면 나머지가 따라오게 할 방법이 있을까? 대신 실수도 같이 퍼지지 않게 막는 장치도 알려 줘.” 자동화를 부탁할 때 안전장치까지 같이 묻는 것, 이번에 얻은 가장 큰 교훈이다. 배포가 처음이라면 시즌 1의 Vercel 쉬운 설명과 배포한 앱 고치는 5단계를 먼저 읽어 보면 좋다.


    이전 글: AI 다섯과 일 나누기, 기획·조사·개발·그림·음악 담당 정하기
    다음 이야기: 강아지 앱에 고양이판까지, 여러 판을 한 저장소로 합친 방법

  • 쇼츠 한 편을 만드는 데 17분, 새벽 작업 기록으로 본 흐름

    작성자: 컴맹 집사

    번외 편

    이 글에서 얻는 것

    • 이런 분께 AI로 영상을 자동으로 만들 때 시간이 얼마나 걸리는지 궁금한 분
    • 핵심 답 대본 한 편을 넣으니 58.3초짜리 세로·가로 영상 두 개가 17분 만에 완성됐다. 대신 한 번의 기록이라 평균은 아니다
    • 바로 쓰는 팁 작업 시간을 재기 전에 절전 방지와 이어하기 설정부터 해 두면 중간에 멈춰도 다시 시작할 수 있다

    무엇을 만들었나

    장면은 14개, 나레이션은 11줄인 대본 파일 하나로 1분짜리 앱 소개 영상을 만들었습니다. 화면은 프로그램이 앱을 직접 열고 필요한 화면을 차례로 찍어서 가져왔습니다. 배경음악은 앱에 쓰는 노래를 썼습니다.

    웹툰 1화 컷 화면
    영상의 재료가 된 웹툰 컷

    기록에 남은 시간

    작업 기록에는 새벽 3시 13분에 시작해서 3시 30분에 완성했다고 적혀 있습니다. 시간으로는 17분입니다. 완성된 영상 길이는 58.3초였습니다.

    그 사이에 두 가지를 미리 설정해 두었습니다. 하나는 컴퓨터가 잠들지 않도록 절전 방지를 켜는 것, 다른 하나는 중간에 멈추면 이어서 하도록 예약 작업을 걸어 두는 것입니다.

    웹툰 회차 목록 화면
    회차 목록처럼 장면 단위로 나눠 두면 영상 장면과 맞추기 쉽다

    이 숫자를 어떻게 읽을까

    • 이 기록은 한 번의 작업입니다. 평균 시간이라고 말할 수 없습니다.
    • 17분 안에 화면 캡처, 자막, 음성, 조립이 모두 들어 있습니다. 단계별 시간은 기록하지 않았습니다.
    • 나중에 대본을 고쳐 다시 만들 때는 음성을 저장해 둔 것을 다시 쓰기 때문에 같은 문장은 요금이 또 나가지 않았습니다.

    17분 안에 프로그램이 한 일

    작업 기록을 다시 열어 보니, 17분 동안 프로그램이 한 일은 크게 네 단계였습니다.

    1. 앱 화면 찍기: 프로그램이 내 컴퓨터에서 앱을 직접 띄우고, 대본에 적힌 화면을 차례로 찍었습니다. 사람이 손으로 캡처하지 않았습니다.
    2. 나레이션 만들기: 대본의 나레이션 11줄을 구글 AI 음성으로 한 줄씩 만들었습니다. 목소리는 여성 해설자 한 명입니다.
    3. 배경음악 깔기: 앱에 쓰는 연주곡을 나레이션 아래에 낮게 깔았습니다.
    4. 조립하기: 장면 14개에 화면, 자막, 음성, 음악을 맞춰 1080×1920 세로 영상 한 편으로 묶었습니다. 완성 파일은 13.9MB였습니다.

    17분 전에 사람이 정해 둔 것

    17분은 프로그램이 돌아간 시간이고, 그 전에 제가 정해 둔 것들이 있습니다. 이 결정이 빠지면 프로그램은 아무것도 만들지 못합니다.

    • 영상의 흐름: “강아지랑 어디 가지?”로 시작해 작위증, 휴양소 고르기, 출처와 확인 등급, 다른 기능을 거쳐 앱 주소로 끝나는 순서
    • 쓰지 않을 재료: 스톡 사진은 쓰지 않고, 우리 웹툰 그림과 앱 화면만 쓰기
    • 밝혀 둘 것: 끝 화면에 “나레이션: AI 음성(Google)”이라고 적기

    이 결정들은 대본 파일 하나에 모두 들어 있습니다. 그래서 문구나 순서를 바꾸고 싶을 때는 대본 파일만 고치고 다시 돌리면 됩니다.

    중간에 멈춰도 이어지게 한 장치

    새벽에 컴퓨터를 켜 두고 맡기는 작업이라, 멈췄을 때를 먼저 대비했습니다.

    • 절전 방지: 10시간 동안 컴퓨터가 잠들지 않게 하는 작은 실행 파일을 켰습니다. 컴퓨터 설정 자체는 바꾸지 않았고, 영상이 완성된 뒤 바로 껐습니다.
    • 자동 이어하기: 새벽 5시 21분에 작업을 다시 확인하는 예약을 걸어 두었습니다. 그 예약은 작업 기록을 읽고 “이미 완성됨”을 확인한 뒤 그냥 끝났습니다.
    • 단계마다 기록 남기기: 한 단계가 끝날 때마다 작업 기록 파일에 진행 상황을 적게 했습니다. 중간에 끊겨도 새로 시작한 작업이 이 파일부터 읽고 남은 단계부터 이어 갈 수 있습니다.

    결과적으로 한 번에 끝나서 쓸 일은 없었지만, 맡겨 두고 잠들 수 있었던 건 이 장치들 덕분이었습니다.

    같은 대본으로 다시 만든 기록

    대본을 파일로 남겨 둔 덕을 그 뒤에 몇 번 봤습니다.

    • 10월 5일: 같은 대본과 나레이션으로 가로(16:9)판을 추가했습니다. 이제 명령 한 번에 세로판과 가로판이 함께 나옵니다.
    • 10월 8일: 앱의 기본 강아지 그림이 바뀌어서, 화면만 다시 찍고 영상 두 개를 다시 만들었습니다.
    • 10월 9일: 휴양소 기능만 따로 소개하는 55.4초짜리 영상을 새 대본으로 만들었습니다.

    처음 한 편을 만드는 시간보다, 고칠 때 다시 만드는 시간이 짧다는 점이 더 크게 다가왔습니다.

    다음에 기록하고 싶은 것

    단계별 시간을 나눠 재면 어디서 오래 걸리는지 알 수 있습니다. 다음 번외 편에서는 단계별로 시간을 재 보겠습니다.

    그 뒤 11월 1일에는 사진 없이 코드로 도면을 그리는 과학 쇼츠도 만들어 봤습니다. 그때 새로 알게 된 것은, 음성을 먼저 만들고 그 길이에 맞춰 화면을 정해야 말이 겹치지 않는다는 점이었습니다. 이 과정은 과학 쇼츠 번외 편에 적었습니다.

    한 줄로 정리하면

    영상 한 편이 17분 만에 나온 것은 프로그램이 빨라서만이 아니었습니다. 무엇을 보여 주고 무엇을 빼고 무엇을 밝힐지 대본에 미리 정해 두었고, 멈춰도 이어지게 준비해 두었기 때문입니다. 시간을 줄이고 싶다면 프로그램보다 대본과 준비부터 챙기는 편이 빠릅니다.

    AI에게 이렇게 맡겨 보세요

    영상 자동 제작을 시작하기 전에, 내가 먼저 정해야 할 것(영상의 흐름, 쓸 재료, 쓰지 않을 재료, 밝혀 둘 표기)을 하나씩 질문해 줘. 내가 다 답하면 그 내용을 대본 파일 하나로 정리해 줘.

    2026-11-02 작업 기록을 다시 확인해 내용을 보강했습니다.

  • 손가락으로 강아지를 쓱쓱! 터치 게임 만들다 막힌 4가지

    손가락으로 강아지를 쓱쓱! 터치 게임 만들다 막힌 4가지

    작성자: 컴맹 집사

    대표 이미지: 손가락으로 강아지를 좌우로 옮겨 떨어지는 간식을 받는다 (출처: 왕립 개집사협회 앱 2026년 9월 24일 버전 화면, 직접 캡처)

    이 글에서 얻는 것

    • 이런 분께 휴대폰 터치로 움직이는 게임을 만들다 막힌 분
    • 핵심 답 손가락을 움직이면 화면이 같이 출렁이는 문제는 게임 화면에만 CSS touch-action: none을 주어 해결했다. 속도는 기기와 상관없이 실제 흐른 시간 기준으로 계산했다
    • 바로 쓰는 팁 느린 휴대폰에서 받았는데 놓친 것으로 나오면, 바닥에 닿은 간식을 지우기 전에 캐릭터와 닿았는지 먼저 확인하도록 순서를 바꾸자

    “손가락으로 강아지를 좌우로 움직인다.”

    왕실 간식 잡기 게임의 조작 규칙은 이 한 줄이다. 가장 간단해 보이는 부분이었지만, 게임 제작 다섯 단계 중에서 가장 오래 걸린 게 바로 이 1단계였다. 컴퓨터에서 마우스로 할 때는 멀쩡한데, 휴대폰 손가락 앞에서는 문제가 줄줄이 나왔다.

    이 글은 그 네 가지 문제와 해결 과정을 적는다. 대부분은 휴대폰으로 직접 해 보고 불편한 점을 AI에게 그대로 전하며 풀었다. 휴대폰용 게임이나 드래그 기능을 만드는 분이라면 비슷한 곳에서 막힐 가능성이 높다.

    먼저 알게 된 것: 마우스와 손가락은 다르다

    AI가 처음 준 코드는 마우스 움직임을 기준으로 되어 있었다. 컴퓨터에서 테스트하니 강아지가 마우스를 잘 따라왔다. 휴대폰에서 열자 강아지가 꿈쩍도 하지 않았다.

    손가락으로 스마트폰 화면을 누르는 모습
    마우스와 손가락은 화면에 닿는 방식이 다르다
    사진: geralt / Pixabay

    브라우저는 입력을 여러 종류로 구분한다. 마우스 이벤트는 마우스를 움직이거나 클릭할 때, 터치 이벤트는 손가락이 화면에 닿거나 움직일 때 발생한다. 이벤트(event)는 “무슨 일이 일어났다”는 신호다. 포인터 이벤트는 마우스, 손가락, 펜을 한꺼번에 다루는 방식이다.

    포인터 이벤트로 바꾸는 게 해결책이 됐다. 하나의 코드로 마우스와 손가락을 모두 처리할 수 있다. 바꾸고 나니 휴대폰에서도 강아지가 움직이기 시작했다. (출처: MDN 웹 문서, 포인터 이벤트)

    문제 1. 강아지를 움직이면 화면 전체가 같이 움직인다

    강아지를 옆으로 끌려고 손가락을 움직이면 게임 화면이 위아래로 출렁거렸다. 손가락이 조금이라도 대각선으로 움직이면 브라우저가 스크롤로 해석해 페이지를 움직였기 때문이다. 심하면 화면이 확대되기도 했다.

    AI가 알려 준 방법은 CSS 한 줄로 끝났다. 게임 화면에 touch-action: none을 적용하면, 그 영역에서는 브라우저가 스크롤이나 확대를 하지 않고 손가락 움직임을 모두 게임에 넘긴다. 이 설정은 게임 화면에만 적용해야 한다. 앱 전체에 적용하면 웹툰처럼 스크롤이 필요한 화면이 멈춘다. (출처: MDN 웹 문서, touch-action)

    문제 2. 손가락이 강아지를 가린다

    내 휴대폰으로 해 보니 게임이 이상하게 어려웠다. 손가락이 강아지를 가리고 있었다. 처음 방식은 손가락이 닿은 자리로 강아지를 바로 옮기는 것이었다. 그러니 강아지를 움직이려면 강아지 위에 손가락을 올려야 했고, 떨어지는 간식과 겹치는 순간을 볼 수 없었다.

    그래서 방식을 바꿨다. 손가락이 움직인 만큼만 강아지를 옮기게 하고, 손가락은 화면 아래쪽 빈 곳에 두고 밀게 했다. 강아지가 화면 밖으로 나가지 않도록 양쪽 끝에는 벽을 두었다.

    문제 3. 그래도 강아지를 먼저 짚어야 움직인다

    바꾼 뒤에도 강아지를 한 번 누른 채 아래로 내려야만 조작이 됐다. 처음부터 빈 곳을 누르면 반응이 없었다. 원인을 찾아보니 두 가지가 겹쳐 있었다.

    원인 하나. 떨어지는 간식이 터치를 끊고 있었다.
    간식은 계속 새로 생기고, 받거나 바닥에 닿으면 사라진다. 손가락이 처음 닿은 곳이 우연히 간식이면, 그 간식이 사라질 때 일부 휴대폰 브라우저에서 진행 중이던 터치가 통째로 끊겼다. 강아지는 사라지지 않으니 강아지를 짚었을 때만 제대로 됐던 것이다. 강아지와 간식은 손가락 감지에서 빼고, 게임판 전체가 모든 터치를 받도록 바꿔서 해결했다.

    원인 둘. 손가락은 생각보다 크다.
    강아지가 게임판 맨 아래에 거의 붙어 있어서, 강아지 아래를 누르려 해도 손가락이 강아지와 겹쳤다. 강아지를 조금 위로 올려 아래쪽에 조작 전용 공간을 만들었다.

    거기에 “여기를 밀어서 조작하세요” 막대를 강아지 바로 아래에 그려 넣었다. 막대는 강아지와 함께 움직이므로, 설명이 없어도 어디를 밀면 되는지 알 수 있다. 문제는 직접 써 보는 사람이 가장 잘 안다.

    같은 날 뼈다귀도 고쳤다. 밝은 배경 위에서 연한 색 뼈다귀가 묻혀 잘 안 보였다. 모든 간식 뒤에 반투명한 흰 동그라미와 그림자를 깔아서 어떤 색이든 도드라지게 했다.

    문제 4. 느린 휴대폰에서 받았는데 놓친 것으로 나온다

    마지막 문제는 닿았는지 판단하는 순서였다. 게임에서는 이것을 충돌 판정이라고 한다.

    간식이 떨어지는 속도는 기기와 상관없이 실제 흐른 시간을 기준으로 계산했다. 최신 휴대폰이든 오래된 휴대폰이든 1초 동안 떨어지는 거리가 같아야 공평하기 때문이다. AI는 이를 델타 타임(delta time) 기준이라고 불렀다.

    하지만 느린 휴대폰에서는 화면이 한 번 늦게 그려지면 간식이 그사이 한꺼번에 바닥까지 내려갔다. 처음 코드는 바닥에 닿은 간식을 먼저 지우고 나서 강아지와 닿았는지 확인했다. 그래서 강아지 바로 위로 떨어졌는데도 놓친 것으로 처리됐다.

    순서를 바꿨다. 바닥에 닿은 간식도 한 번은 강아지와 닿았는지 확인한 뒤, 안 닿았을 때만 지운다. 바뀐 코드는 다섯 줄 정도다. 강아지 아래에 있을 때만 받은 것으로 치니 난이도는 그대로다.

    조작 방법은 세 가지로

    • 휴대폰: 손가락으로 밀기
    • 컴퓨터: 마우스로 끌기
    • 키보드: 왼쪽·오른쪽 방향키

    세 가지 모두 움직인 만큼 이동하는 방식으로 통일해서, 어떤 기기에서든 조작감이 비슷하다.

    게임까지 넣고 나니 앱이 제법 커졌다. 다음에는 집사의 작위를 한 단계씩 올릴 수 있는 아카데미를 만들었다.


    이전 글: 앱에 미니게임 넣기, 화면이 움직이는 비밀(게임 루프) 쉽게 풀기
    다음 글: 작위를 한 단계씩! 앱에 퀴즈 아카데미 넣는 법

  • 블로그 홈 꾸미기, 코딩 몰라도 AI로 뉴스 사이트처럼 만든 방법

    블로그 홈 꾸미기, 코딩 몰라도 AI로 뉴스 사이트처럼 만든 방법

    작성자: 컴맹 집사

    번외 편 · 「멍냥뉴스 동네방네」 홈페이지 제작 기록

    대표 이미지: 멍냥뉴스 동네방네 홈 첫 화면 (2026년 10월 27일, 직접 캡처)

    이 글에서 얻는 것

    • 이런 분께 코딩은 모르지만 AI에게 맡겨서 블로그 첫 화면을 바꿔 보고 싶은 분
    • 핵심 답 첫 화면은 “알아서 채워지는 칸”과 “사람이 직접 쓰는 칸” 두 가지로 이루어져 있다. 이 둘만 구분해도 AI에게 무엇을 시킬지 보인다
    • 바로 쓰는 팁 AI에게 “어디까지 자동이고 어디부터 내가 관리하는지 표로 정리해 줘”라고 먼저 물어보자

    요즘 “바이브코딩”이라는 말을 자주 듣습니다. 코드를 직접 쓰는 대신, 원하는 모습을 말로 설명하고 AI가 만들게 하는 방식입니다. 이 블로그의 연재도 결국 그 기록입니다.

    이번 번외편에서는 앱이 아니라 블로그 첫 화면 이야기를 합니다. 반려동물 공공소식을 풀어 쓰는 멍냥뉴스 동네방네의 홈입니다. 신문처럼 보이는 이 화면이 속에서 어떻게 움직이는지, 그리고 비슷하게 만들고 싶을 때 AI에게 뭐라고 말하면 되는지 쉽게 풀어 보겠습니다. 내용은 2026년 10월 27일 관리자 화면에서 확인한 구조를 기준으로 했습니다.

    첫 화면은 두 종류의 칸으로 되어 있다

    위 사진의 첫 화면을 신문 1면이라고 생각해 보세요. 1면에는 두 종류의 자리가 있습니다.

    • 알아서 채워지는 칸: 새 기사가 들어오면 저절로 바뀌는 자리입니다. 최신 소식 목록이 여기에 해당합니다.
    • 사람이 직접 쓰는 칸: 편집자가 손으로 써 넣는 자리입니다. 가이드북 배너, 마감 임박 카드, 안내 상자가 여기에 해당합니다.

    워드프레스에는 이 두 가지에 딱 맞는 기본 블록이 있습니다. 알아서 채워지는 칸은 “쿼리 루프” 블록이고, 사람이 직접 쓰는 칸은 “사용자 정의 HTML” 블록입니다. 멍냥뉴스 홈은 쿼리 루프 3개와 HTML 블록 5개가 거의 전부입니다. 따로 비싼 플러그인을 쓰지 않았습니다.

    이름이 어렵게 들리지만 걱정하지 않아도 됩니다. 바이브코딩에서 중요한 건 블록 이름을 외우는 게 아니라, “이 자리는 자동인가, 수동인가”를 내가 정하는 일입니다. 그걸 정해 주면 나머지는 AI가 알려 줍니다.

    큰 기사 1개, 작은 목록 10개

    홈 위쪽에는 사진이 큰 기사 1개가 있고, 그 아래로 작은 소식 목록이 이어집니다. 둘 다 알아서 채워지는 칸입니다.

    여기에는 작은 요령이 하나 들어 있습니다. 그냥 두면 가장 최신 글이 큰 칸에도 나오고 목록 맨 위에도 또 나옵니다. 그래서 목록 칸에는 “맨 앞 1개는 건너뛰기”를 설정했습니다. 큰 칸이 1등 기사를 가져가면, 목록은 2등부터 보여 주는 식입니다.

    또 하나, 이 칸들은 소식 분야 다섯 곳(지원금·혜택, 법·제도, 안전·경보, 우리 동네, 행사·축제)의 글만 가져옵니다. 그래서 예전에 쓴 생활 정보 글은 홈 소식 목록에 섞이지 않습니다.

    AI에게는 이렇게 말하면 됩니다. “홈에 최신 글 1개를 크게 보여 주고, 그 아래에 다음 글 10개를 목록으로 보여 줘. 같은 글이 두 번 나오지 않게 해 줘.”

    마감 임박 D-day, 날짜는 작은 비서가 센다

    사진 가운데쯤 “마감 임박” 줄에 D-4, D-34 같은 카드가 보입니다. 지원금 신청이나 행사 접수처럼 마감일이 있는 소식입니다.

    이 카드는 사람이 직접 쓰는 칸입니다. 소식 제목과 마감일만 적어 두면, 화면이 열릴 때마다 짧은 프로그램(스크립트)이 작은 비서처럼 일을 합니다.

    • 오늘 날짜를 보고 마감까지 며칠 남았는지 세어 “D-4″처럼 바꿔 적습니다. 당일이면 “오늘 마감”이라고 씁니다.
    • 마감이 가까운 순서로 카드를 다시 줄 세웁니다.
    • 마감이 지난 카드는 화면에서 숨깁니다.
    • 남은 카드가 하나도 없으면 마감 임박 줄 전체를 숨깁니다.

    날짜 세기를 사람이 매일 하면 언젠가 틀립니다. 그래서 틀리기 쉬운 일만 비서에게 맡긴 겁니다. 다만 새 마감 소식을 넣는 일은 여전히 사람 몫입니다. 지난 카드도 화면에서만 숨겨질 뿐 원본에는 남아 있어서, 가끔 직접 정리해야 합니다.

    AI에게는 이렇게 말하면 됩니다. “마감일을 적어 두면 D-day를 자동으로 계산해서 보여 주고, 마감이 지나면 숨기는 카드 줄을 만들어 줘.”

    분야 버튼은 책상 위 정리다

    소식 목록 위에는 전체, 지원금·혜택, 법·제도 같은 버튼이 있습니다. 누르면 페이지가 바뀌지 않고 그 자리에서 목록이 걸러집니다.

    이건 서랍을 새로 여는 게 아니라, 이미 책상 위에 꺼내 둔 10개를 분야별로 골라 보여 주는 방식입니다. 그래서 빠르지만, 10개 안에 없는 오래된 글은 안 보입니다. 이 한계를 메우려고 목록 아래 “전체 보기” 링크가 누른 버튼에 맞춰 그 분야의 모든 글 페이지로 바뀌게 했습니다. 해당 분야 글이 하나도 없으면 “이 분야의 새 소식은 곧 올라옵니다”라는 안내가 뜹니다.

    지역별 소식, 서랍과 스티커

    공공소식은 “무슨 소식인지”와 “어느 동네 소식인지”를 함께 봐야 합니다. 그래서 두 가지 정리 도구를 나눠 썼습니다.

    • 서랍(카테고리): 지원금, 법·제도처럼 글의 주제를 나눕니다.
    • 스티커(태그): 서울, 경기, 김포, 인천, 충청, 경상, 전라, 강원, 제주, 전국 이렇게 10개 지역을 붙입니다.

    스티커의 좋은 점은 한 글에 여러 장 붙일 수 있다는 겁니다. 서울과 대전 소식을 한 글에 담았다면 서울 스티커와 충청 스티커를 둘 다 붙이면 됩니다. 실제로 가을 광견병 접종 지원 글은 지역별 소식 페이지의 서울 칸과 충청 칸에 함께 나옵니다.

    지역별 소식 페이지는 알아서 채워지는 칸 10개를 위아래로 쌓아 만들었습니다. 칸마다 지역 스티커 하나씩을 맡아 최근 글 6개를 보여 줍니다. 맨 위 지역 버튼을 누르면 그 지역 칸으로 바로 내려갑니다.

    예전 글은 버리지 않고 자료실로

    이 블로그는 원래 강아지 생활 정보를 쓰던 곳이었습니다. 소식 중심으로 바꾸면서도 예전 글 42편은 지우지 않았고, 주소도 그대로 두었습니다. 주소가 바뀌면 검색이나 다른 곳에 걸어 둔 링크가 깨지기 때문입니다.

    대신 자료실 페이지를 만들어 도서관 서가처럼 정리했습니다. 입양·첫 준비, 훈련·행동, 건강 같은 서가마다 최신 글 목록을 두고, 맨 위에 검색 칸을 달았습니다. 홈의 주인공 자리만 소식에 넘겨주고, 예전 글은 서가로 옮긴 셈입니다.

    직접 만든 꾸밈에는 이름표를 붙였다

    배너나 안내 상자처럼 기본 블록으로는 모양을 내기 어려운 부분은 HTML 블록 안에 직접 꾸밈 규칙(CSS)을 넣었습니다. 이때 꾸밈마다 붙는 이름을 전부 “mn-“으로 시작하게 했습니다. mn-due, mn-tabs, mn-gift 같은 식입니다.

    어린이집 가방에 이름을 써 두는 것과 같습니다. 테마에 원래 있던 꾸밈과 이름이 겹치면 엉뚱한 곳 모양까지 바뀔 수 있는데, 앞머리를 정해 두면 그런 일이 줄어듭니다. 나중에 AI에게 고쳐 달라고 할 때도 “mn-으로 시작하는 부분만 손대 줘”라고 범위를 딱 정해 말할 수 있어 편합니다.

    휴대폰 화면도 챙겼습니다. 마감 카드와 분야 버튼은 화면을 넘치면 아래로 쌓이지 않고 옆으로 밀어서 보게 했습니다. 버튼은 손가락으로 누르기 쉽게 크게 잡았습니다. 휴대폰에서 제목이 단어 중간에서 끊기던 문제는 사이트 추가 CSS에 한 줄(word-break: keep-all)을 넣어 해결했습니다. 한국어 제목을 단어 단위로 줄바꿈하게 해 주는 설정입니다.

    앱으로 가는 링크에는 송장을 붙였다

    홈 중간에는 반려견 동반 여행지를 찾는 앱 기능으로 가는 배너가 있습니다. 이 링크 주소 끝에는 “utm_source=dogdo209” 같은 꼬리표를 붙였습니다. 택배 송장처럼 “블로그 홈 배너에서 출발한 방문자”라는 표시입니다. 화면에는 아무 변화가 없고, 통계에서 손님이 어디서 왔는지 가려낼 때만 쓰입니다.

    이 앱을 만든 과정은 이 블로그 연재에 있습니다. 앱 첫 화면을 처음 꾸미던 이야기는 3초 안에 마음을 잡아라! 앱 첫 화면 만드는 법에서 볼 수 있습니다.

    마치며, 자동과 수동부터 나누자

    정리하면 이 홈의 비결은 한 가지입니다. 새 글이 올라오면 알아서 바뀌는 칸과, 사람이 직접 관리하는 칸을 나눈 것입니다. 소식 목록과 지역별 소식은 자동으로 채워지고, 마감 카드와 배너는 사람이 관리합니다. 그중 날짜 세기처럼 틀리기 쉬운 일만 작은 프로그램에 맡겼습니다.

    코딩을 몰라도 이 구분은 할 수 있습니다. 그리고 이 구분만 정해 주면, 바이브코딩으로 AI에게 일을 맡길 때 훨씬 정확하게 말할 수 있습니다.

    AI에게 그대로 복사해 보낼 문장

    “워드프레스로 블로그 홈을 뉴스 사이트처럼 바꾸고 싶어. 나는 코딩을 몰라. 먼저 홈을 ‘새 글이 올라오면 알아서 바뀌는 칸’과 ‘내가 직접 관리하는 칸’으로 나눠서 표로 정리해 줘. 그다음 각 칸을 워드프레스 기본 블록으로 만드는 방법을 한 단계씩 알려 줘.”

  • 무료 AI 목소리, 얼마나 쓸 수 있을까? 쇼츠 한 편 음성 요금 계산해 보기

    작성자: 컴맹 집사

    번외 편

    이 글에서 얻는 것

    • 이런 분께 AI 목소리를 넣은 영상을 만들고 싶은데 요금이 걱정되는 분
    • 핵심 답 같은 음성이라도 어떤 모델을 고르느냐에 따라 무료 범위가 다르고, 쇼츠 한 편 음성 비용은 몇 센트 수준이었다
    • 바로 쓰는 팁 음성 모델을 고르기 전에 무료 범위와 요금 단위(글자 수인지 토큰인지)부터 확인하자

    왜 계산해 봤나

    쇼츠 한 편의 나레이션은 구글 AI 음성으로 만들었습니다. 그런데 요금이 얼마나 붙는지 정확히 몰랐습니다. 무료 프로그램이라고 올려 놓고 음성 요금을 빠뜨리면 받는 사람에게 실례가 되니, 이번에는 숫자로 따져 봤습니다.

    영상 편집 화면 사진
    영상 한 편도 장면을 하나씩 잇는 일이다 (사진: Pixabay)
    웹툰 목록 화면
    영상 재료로 쓰는 웹툰 회차 목록

    공식 페이지에서 확인한 것 (2026년 10월 25일 기준)

    • Chirp 3 HD 음성은 월 0~100만 자까지 무료이고, 그 이후 100만 자당 30달러입니다. (Google Cloud 음성 가격 안내)
    • Gemini 음성 모델은 글자 수가 아니라 토큰으로 과금되고, 가격표에는 무료 한도가 없다고 나옵니다. 오디오 1초는 25토큰입니다.
    • Gemini 3.8 Flash TTS(미리보기)의 오디오 출력은 100만 토큰당 9달러이고, 2027년 1월 1일부터 18달러로 오릅니다.

    출처마다 무료 표기가 조금씩 달라서, 실제로 쓰기 전에는 직접 확인해야 합니다. 이 숫자는 글을 쓴 날의 공식 안내를 기준으로 합니다.

    쇼츠 한 편을 대입해 보니

    지난번 쇼츠 한 편은 58.3초였습니다. 음성만 계산하면 59초 × 25토큰 = 1,475토큰입니다.

    • 지금 가격(100만 토큰당 9달러)으로 한 편은 약 0.013달러, 즉 1.3센트입니다. 100편이면 약 1.33달러입니다.
    • 2027년 1월 이후 가격(18달러)으로 계산하면 한 편은 약 2.7센트, 100편이면 약 2.66달러입니다.
    • Chirp 3 HD 음성으로 나레이션 1,000자를 100편 만들면 10만 자입니다. 무료 범위(100만 자)의 10% 정도입니다. 나레이션 길이는 제 기준이라 실제 대본에 맞춰 다시 계산해야 합니다.

    글자 수 과금과 토큰 과금, 무엇이 다른가

    두 방식은 요금을 정하는 기준이 다릅니다. 글자 수 과금은 내가 보낸 대본이 몇 글자인지로 요금이 정해집니다. 토큰 과금(Gemini 음성)은 만들어진 오디오가 몇 초인지로 정해집니다. 위에서 본 것처럼 오디오 1초가 25토큰이기 때문입니다.

    그래서 같은 대본이라도 천천히 읽게 하면 토큰 과금 쪽 요금이 늘어납니다. 반대로 목소리를 여러 개 들어 보며 고를 때는 두 방식 모두 목소리마다 새로 만들어지니, 시험 삼아 듣는 만큼 무료 범위가 줄어든다는 점을 기억해 두면 좋습니다.

    실제로 써 보니 요금보다 먼저 부딪힌 것

    요금을 계산한 뒤 과학 쇼츠에 캡컷 자동 음성을 먼저 입혀 보니, 돈보다 먼저 부딪힌 문제가 두 가지 있었습니다.

    • 숫자를 엉뚱하게 읽었습니다. 자막에 “435번”이라고 적었더니 “네백삼십오 번”으로 읽었습니다. 음성용 문장에는 “사백삼십오 번”처럼 한글로 풀어 써서 해결했습니다. 화면 자막과 음성용 문장을 따로 두면 됩니다.
    • 말이 화면보다 길었습니다. 영상을 먼저 만들고 음성을 나중에 붙였더니, 일부 문장이 다음 문장과 겹쳤습니다. 음성을 먼저 만들고 그 길이에 맞춰 화면을 정하는 순서가 맞았습니다.

    요금을 아끼는 두 가지 설정

    • 같은 문장은 다시 만들지 않기: 제 영상 프로그램은 목소리, 말투 지시, 문장이 모두 같으면 처음 만든 음성 파일을 저장해 두었다가 그대로 씁니다. 대본에서 한 줄만 고치면 그 한 줄만 새로 만들어지고, 나머지는 요금이 다시 나가지 않습니다.
    • 말하기 속도 정해 두기: 저는 말하기 속도를 1.1배로 정해 두었습니다. 쇼츠에는 조금 빠른 편이 잘 맞고, 같은 문장이면 음성 길이가 짧아집니다. 위에서 본 것처럼 오디오 길이로 토큰을 세는 모델이라면 길이가 짧아질수록 요금도 줄어듭니다.

    정리 확인표

    구글 공식 가격 안내에는 Text-to-Speech를 쓰려면 결제를 사용 설정해야 하고, 무료 범위를 넘으면 자동으로 청구된다고 적혀 있습니다(Google Cloud 음성 가격 안내). 아래 표는 무료 등급 기준으로 정리했습니다.

    확인 날짜 카드 등록 필요? 무료로 되는 것 한국어 그만두기 쉬운가 한 줄 판정
    2026-11-02 필요 (결제 사용 설정) Chirp 3 HD 음성 월 100만 자 됨 직접 해지해 보지 않음 조건부 추천

    그래서 내린 판단

    음성 요금은 한 편에 몇 센트 수준이라 개인이 쓰기에는 부담이 작습니다. 다만 편수가 많아지거나 긴 대본을 쓰면 무료 범위가 빨리 줄어듭니다. 무료라고 소개하는 도구라도 음성 요금이 붙는지는 꼭 밝혀야 합니다.

    숫자 오독과 말 겹침을 겪은 과정은 과학 쇼츠 번외 편에 자세히 적었습니다.

    정리하면, 음성 요금 자체는 작지만 숫자 표기와 말 길이처럼 요금표에 없는 문제가 먼저 나타납니다. 요금표와 함께 실제로 한 편을 만들어 들어 보는 것까지가 확인입니다.

    AI에게 이렇게 맡겨 보세요

    내가 쓰려는 AI 음성 서비스의 공식 가격 페이지를 찾아서, 요금 단위(글자 수인지 토큰인지), 매달 무료 범위, 카드 등록이 필요한지, 가격이 바뀔 예정인지 표로 정리해 줘. 확인한 날짜와 출처 링크도 같이 적어 줘.

    2026-11-02 실제 사용 경험과 확인표를 보강했습니다.