95) 같은 단어를 여섯 번 다시 읽혀 11분을 태웠다

음성 검사에서 “잇달아”가 걸렸다. 허용 CER은 0.50%였는데 결과는 3.79~5.30%였다. 첫 합성이 실패하자 캐시를 비켜 두 번째 테이크를 만들었다. 그래도 같은 문장 끝에서 다시 걸렸다.

문제는 바깥 파이프라인이었다. 안쪽 검사는 한 사건당 두 테이크로 끝내도록 만들었는데, 바깥 호출자가 종료코드만 보고 전체 단계를 세 번 다시 실행했다.

두 번 제한이 실제로는 여섯 번이 됐다

재시도 3회×테이크 2회로 같은 사건을 여섯 번 합성했다. 매번 “잇달아”의 같은 위치에서 실패했다. 약 11분을 쓰고도 결과는 같았다. 실패 원인이 바뀌지 않았는데 횟수만 늘어난 것이다.

더구나 이전 테이크 경로를 같은 이름으로 덮어써 앞선 증거도 사라질 수 있었다. 재시도가 복구가 아니라 비용과 증거 손실을 함께 만들었다.

콘텐츠 실패와 시스템 실패를 갈랐다

발음·문장처럼 입력이 같은 한 다시 나올 결정적 실패는 재시도하지 않게 했다. 같은 텍스트 해시, 음성 모델, 오류 구간, 편집 연산이 두 테이크에서 같으면 PERSISTENT_LEXICAL_FAILURE로 기록하고 해당 사건만 격리한다.

네트워크 오류, 서버 5xx, ASR 프로세스 크래시처럼 다음 시도에서 상태가 달라질 수 있는 시스템 오류만 제한적으로 다시 시도한다. 단순히 실패했다는 이유만으로 같은 일을 반복하지 않는다.

재발방지 체크리스트
① 안쪽 재시도 횟수와 바깥 재시도 횟수를 곱해 실제 최대 시도를 계산한다.
② 같은 입력·같은 오류 위치면 반복보다 전략 전환이나 격리를 선택한다.
③ 콘텐츠 판정 실패와 시스템 장애에 서로 다른 종료 상태를 준다.
④ 테이크는 실행·시도별 경로에 남겨 재시도가 증거를 덮지 않게 한다.

94) 조립 가능이라고 적어놓고 종료코드 2로 전체를 멈췄다

주식 롱폼의 사건 열 건을 음성으로 만든 뒤 자동 검사를 붙였다. 한 사건의 발음이 기준을 넘지 못했다. 코드는 그 사건을 목록에서 빼고 나머지 아홉 건으로 영상을 만들 준비까지 마쳤다.

원장에도 passed 9, omitted ev7, assembly_allowed true라고 적혔다. 여기까지만 보면 부분 성공이었다.

마지막 한 줄은 정반대로 행동했다

콘솔은 조립 불가라고 출력했고 프로세스는 exit 2로 끝났다. 호출자는 이를 전체 실패로 받아 롱폼을 중단했다. 같은 실행 안에서 주석·원장·사건 목록은 “하나를 격리하고 계속”이라 했고, 종료코드만 “전부 멈춤”이라 했다.

파일 하나가 틀린 문제가 아니었다. 상태를 세 군데서 따로 계산한 게 원인이었다.

건수 비율 대신 집합과 역할로 결정했다

9/10이면 무조건 통과하는 임의 규칙은 쓰지 않았다. 원본 사건 ID와 검사 원장이 정확히 일치하는지, 남긴 목록이 원본에서 격리 ID만 뺀 집합인지, 필수 사건이 빠지지 않았는지, 남은 사건이 0이 아닌지를 모두 확인했다.

상태는 네 가지로 고정했다. 전건 성공은 FULL_PASS, 선택 사건만 안전하게 격리하면 PARTIAL_PASS, 필수 사건 실패나 집합 불일치는 BLOCKED, 검사기 자체가 죽으면 SYSTEM_ERROR다. 콘솔과 종료코드는 최종 원장의 같은 상태값만 읽게 했다.

재발방지 체크리스트
① 상태·로그·종료코드를 서로 다른 조건식으로 계산하지 않는다.
② 부분 성공은 비율이 아니라 원본−격리=남은 집합과 필수 역할로 판정한다.
③ 원장에 조립 가능이라고 썼다면 프로세스 종료코드도 같은 결론이어야 한다.
④ 실패 사건을 뺄 때 음성만이 아니라 카드·영상·데이터를 함께 뺀다.

[ZEP School] 메타버스 교과 콘텐츠 제작 공모전 — 일정·상금·응모대상 정리

AI 공모전 소식입니다. 주식회사 젭이 운영하는 교육 플랫폼 ZEP School에서 메타버스 공간을 활용한 교과 학습 콘텐츠를 모집하는 공모전이에요. 교사와 학생 모두 참여할 수 있고, 제출된 콘텐츠가 실제 수업 자료로 공유된다는 점에서 단순 수상 이상의 의미가 있습니다. 접수는 2026년 8월 14일부터 9월 15일까지이며, 결과는 9월 23일에 발표될 예정입니다.

[ZEP School] 메타버스 교과 콘텐츠 제작 공모전 포스터
이미지: 주식회사 젭 공식 공모전 포스터

📋 한눈에 보기

  • 분야 — 게임/소프트웨어
  • 응모대상 — 청소년, 기타
  • 주최/주관 — 주식회사 젭
  • 접수기간 — 2026년 8월 14일(금) ~ 9월 15일(화)- 수상작 발표: 2026년 9월 23일(수)
  • 총 상금 — 1천만원이하
  • 1등 상금 — 50만원

👍 이런 분께 추천

  • 수업에 메타버스나 게임형 학습 도구를 접목해보고 싶은 초·중·고 교사분께 추천해요.
  • ZEP 스페이스 제작 경험이 있거나 배워보고 싶은 초·중·고 재학생에게 좋은 기회입니다.
  • 친구들과 팀을 꾸려 협업 프로젝트를 경험해보고 싶은 학생이라면 도전해볼 만해요.
  • 내가 만든 교육 콘텐츠가 다른 교실에서 실제로 쓰이길 바라는 분께 특히 잘 맞습니다.

💡 준비 팁

교과 개념 하나를 명확히 정하고, 학습자가 공간을 이동하며 자연스럽게 개념을 익히도록 동선과 상호작용 요소를 설계하는 데 집중해보세요. 만 14세 미만 학생은 법정대리인 동의서가 필요하니 접수 전에 미리 준비해두는 것이 좋습니다.

🔗 접수·상세


※ 본 글은 공개된 공모전 사실정보를 바탕으로 자체 작성한 소개입니다. 일정·조건은 변동될 수 있으니 접수 전 공식 페이지에서 꼭 확인하세요.

제주 디지털 통합 신원인증 앱 명칭 공모 — 일정·상금·응모대상 정리

AI 공모전 소식입니다. 제주도가 도민·명예도민·재외도민·4·3 희생자와 유족 등의 신원과 자격을 스마트폰 전자지갑 하나로 관리할 수 있는 통합 신원인증 앱을 만들고 있는데, 그 앱의 공식 이름을 국민 누구에게나 받겠다고 나섰어요. 주최는 제주특별자치도 AI혁신추진단이고, 네이버 폼으로 명칭 한 건만 제출하면 되는 가벼운 형식이라 부담 없이 도전해볼 만합니다. 접수는 8월 25일 오후 3시부터 9월 13일 오후 6시까지 20일간이며, 최우수상 50만원·우수상 30만원·장려상 20만원이 걸려 있습니다.

제주 디지털 통합 신원인증 앱 명칭 공모 포스터
이미지: 제주특별자치도 AI혁신추진단 공식 공모전 포스터

📋 한눈에 보기

  • 분야 — 네이밍/슬로건
  • 응모대상 — 제한없음
  • 주최/주관 — 제주특별자치도 AI혁신추진단
  • 접수기간 — 2026. 8. 25.(화) 15:00 ~ 9. 13.(일) 18:00 (20일간)
  • 총 상금 — 1천만원이하
  • 1등 상금 — 50만원

👍 이런 분께 추천

  • 짧고 기억에 남는 이름 짓기를 즐기는 네이밍·카피 관심자
  • 제주의 자연·언어·문화를 활용한 아이디어를 내보고 싶은 분
  • 전자지갑·디지털 신원인증 같은 공공 서비스 기획에 관심 있는 분
  • 긴 기획서 없이 아이디어 한 줄로 승부하는 공모를 찾는 학생·직장인

💡 준비 팁

심사는 상징성(25점)이 가장 크고 대중성·직관성·확장성이 각 20점, 독창성이 15점이니 제주 정체성이 느껴지면서도 ‘신원·자격을 담는 지갑’이라는 기능이 바로 떠오르는 이름이 유리해요. 1인 1건만 유효하고 같은 이름이 여러 건 들어오면 먼저 접수한 쪽만 인정되니, 후보를 여럿 뽑아 비교한 뒤 가장 자신 있는 하나를 일찍 제출하는 게 좋습니다.

🔗 접수·상세


※ 본 글은 공개된 공모전 사실정보를 바탕으로 자체 작성한 소개입니다. 일정·조건은 변동될 수 있으니 접수 전 공식 페이지에서 꼭 확인하세요.

93) 두 줄로 자막을 잘라낸 검사가 세 번째 줄을 그림으로 셌다

화이트보드 그림의 크기가 계획과 맞는지 자동으로 검사했다. 그림을 다 그린 프레임에서 새로 늘어난 잉크의 좌우 끝을 재고, 계획한 슬롯의 좌우 끝과 비교하는 방식이었다.

대부분은 오차가 0~8픽셀인데 두 사건만 수백 픽셀씩 틀렸다고 나왔다. 영상을 보면 그림은 정상이라 검사 쪽을 다시 열었다.

검사는 자막이 항상 두 줄이라고 믿었다

자막 영역을 빼는 코드에는 하단 여백 86픽셀과 두 줄×59픽셀이 상수로 들어 있었다. 하지만 긴 문장은 브라우저의 어절 단위 줄바꿈 때문에 세 줄이 됐다. 세 번째 줄의 첫 줄이 검사 영역 안으로 들어왔다.

그림의 새 잉크를 재야 하는데 자막까지 같이 잡으니, 실측 폭이 화면 전체에 가까워졌다. 측정창을 넓힐수록 검출 폭도 같이 넓어지는 포화 현상이 생겼다. 정상 그림이 geometry_mismatch로 막힌 이유였다.

글자 수로 줄 수를 맞히는 방법도 버렸다

처음에는 문장 길이로 두 줄인지 세 줄인지 계산하려 했다. 하지만 같은 글자 수라도 어절 구성이 다르면 줄바꿈이 달라졌다. 화면 픽셀에서 자막 상단을 찾는 방법은 가까이 있는 그림까지 자막으로 잘라냈다.

최종적으로 렌더러와 같은 폰트·폭·줄바꿈 규칙으로 자막 전용 알파 마스크를 만들고, QC가 그 마스크 영역만 정확히 제외하게 했다. 추정값을 더 정교하게 만드는 대신 렌더러가 실제로 만든 결과를 계약으로 넘겼다.

재발방지 체크리스트
① 자동 줄바꿈 결과를 줄 수 상수나 글자 수로 추정하지 않는다.
② 다른 시각 요소를 재는 게이트는 자막·HUD 마스크를 렌더러에서 직접 받는다.
③ 측정창 끝과 검출 끝이 계속 같으면 정확도가 아니라 포화를 의심한다.
④ 임계를 낮추기 전에 검사 대상에 다른 레이어가 섞였는지 확인한다.

92) 펜을 의심했는데 글자는 펜이 멈춘 뒤에도 떨렸다

화이트보드 영상에 그림 이름을 붙였더니 글자가 부들부들 떨렸다. 화면에는 빨간 펜이 선을 따라 움직이고 있었다. 처음엔 펜 위치나 선을 드러내는 마스크가 글자를 건드린다고 생각했다.

눈으로만 보면 그럴듯한 용의자였다. 하지만 프레임을 나눠 재자 이야기가 달라졌다.

펜이 멈춘 뒤에도 같은 폭으로 흔들렸다

라벨 영역의 잉크 픽셀은 평균 약 6,000개였고 프레임마다 약 ±330개, 5.5%씩 흔들렸다. 그런데 글자 상자의 좌우 끝은 x 92~457로 고정돼 있었다. 글자가 이동한 게 아니라 가장자리 픽셀이 매 프레임 다르게 다시 그려지고 있었다.

결정적인 값은 구간 비교에서 나왔다. 펜이 그리는 동안의 변동폭은 ±329, 펜이 다 그린 뒤는 ±339였다. 펜이 사라져도 떨림이 그대로였다. 펜은 무죄였다.

글자가 카메라와 함께 확대되고 있었다

라벨이 그림과 같은 카메라 레이어 안에 있었다. 카메라가 움직일 때마다 글자도 확대 배율을 받아 다시 래스터화됐다. 원화를 크게 다시 굽는 과정에서 최대 줌이 1.16배에서 1.58배로 올라간 뒤 떨림이 더 잘 보이기 시작했다.

그림은 카메라 레이어에 남기고, 글자는 화면 좌표로 투영한 별도 레이어로 꺼냈다. 확대 구간에서는 크기를 고정해 같은 글자 가장자리를 유지했다. 이후에는 글자 위치가 아니라 글리프 경계가 정지해 있는지를 검사 대상으로 삼았다.

재발방지 체크리스트
① 움직이는 물체 옆 결함이라고 해서 그 물체를 바로 원인으로 지목하지 않는다.
② 동작 중과 동작 후의 수치를 나눠 원인과 상관관계를 먼저 확인한다.
③ 그림과 글자는 같은 카메라 변환을 받아야 하는지 따로 계약한다.
④ 텍스트 품질은 상자 위치뿐 아니라 글리프 가장자리의 프레임간 변화도 잰다.

2026 문화다양성 AI 영상 콘텐츠 공모전 — 일정·상금·응모대상 정리

AI 공모전 소식입니다. 문화체육관광부가 주최하고 한국문화예술교육진흥원이 주관하는 AI 영상 공모전이 2026년 8월 24일부터 9월 21일 오후 4시까지 작품을 접수합니다. ‘나의 세계, 문화가 되다’라는 주제로, 각자의 경험과 취향이 빚어낸 고유한 문화를 30초 이상의 AI 활용 영상으로 풀어내면 돼요. 촬영과 AI를 섞어도 되고 전부 AI로 만들어도 되며, 일반부와 청소년부를 합쳐 18편에 총 3,000만원 상금이 걸려 있고 EBS가 후원하는 만큼 주목할 만한 대회입니다.

2026 문화다양성 AI 영상 콘텐츠 공모전 포스터
이미지: 문화체육관광부 / 한국문화예술교육진흥원 공식 공모전 포스터

📋 한눈에 보기

  • 분야 — 영상/UCC/사진
  • 응모대상 — 일반인, 대학생, 청소년, 기타
  • 주최/주관 — 문화체육관광부 / 한국문화예술교육진흥원
  • 총 상금 — 3천만원~1천만원

👍 이런 분께 추천

  • Midjourney, Runway 같은 생성 AI 도구로 짧은 영상을 만들어본 경험이 있는 분
  • 2008년~2013년생 청소년 중 영상 제작이나 애니메이션에 관심 있는 학생
  • 광고, 뮤직비디오, 웹드라마 등 자신만의 이야기를 영상으로 표현하고 싶은 국내외 개인 창작자
  • 팀 단위로 기획·촬영·AI 편집 역할을 나눠 도전해보고 싶은 대학생이나 동아리

💡 준비 팁

AI 사용 도구와 비중을 작품 정보에 반드시 표기해야 하고, 합성 인물이나 음성을 썼다면 고지와 동의가 필요하니 제작 단계부터 기록을 남겨두세요. 음악·이미지·폰트 등 제3자 저작물은 라이선스 증빙을 요구하므로 저작권 걱정 없는 소스를 미리 확보하고, FHD 이상 MP4 규격을 맞췄는지 마감 전에 꼭 확인하는 게 좋습니다.

🔗 접수·상세


※ 본 글은 공개된 공모전 사실정보를 바탕으로 자체 작성한 소개입니다. 일정·조건은 변동될 수 있으니 접수 전 공식 페이지에서 꼭 확인하세요.

91) 756메가를 먹은 프로그램을 감시자가 두 번 보고 끊었다

프로그램이 메모리를 너무 많이 먹으면 자동으로 멈추고, 바꿔놓은 설정도 원래대로 돌리는 감시 장치를 시험했다. 말로만 안전하다고 하지 않으려면 일부러 사고를 내봐야 했다.

시험 프로그램에 10MB짜리 메모리를 70번 잡게 했다. 제한은 200MB였다.

두 번 연속 넘자 실제로 죽였다

감시 결과는 756.7MB > 200MB. 한 번 튄 값으로 바로 끊지 않고 연속 2회 초과를 확인한 뒤 프로세스를 종료했다. 기록에는 killed:true, samples:2가 남았다.

설정 복구도 시험했다. 작업이 바꿔놓은 adopt_threshold 1을 원래 값 70으로 되돌렸다. 삭제·강제 초기화·배포 같은 우회 명령 다섯 종류도 5/5 차단됐다.

처음 측정은 0MB였다

그런데 이 결과까지 오는 동안 감시자 자신이 두 번 틀렸다. 명령을 껍데기 하나 더 거쳐 실행하니, 감시자는 껍데기만 재고 실제로 메모리를 먹는 자식은 못 봤다. 결과가 0MB에 가까웠다.

윈도우 프로세스 부모·자식 관계를 6단계까지 따라가서 합산하자 756.7MB가 잡혔다. 종료할 때도 자식만 끊으면 손자가 남아서, 전체 트리를 종료해야 했다.

감시자가 자기 CPU를 범인으로 만들었다

CPU 검사에서는 더 웃긴 일이 났다. 짧은 간격을 바쁜 반복문으로 기다렸더니 감시자 자신이 CPU 97.7%를 썼다. 제한 90%를 넘겨 정상 명령까지 막았다. 감시가 사고를 만든 셈이다.

바쁜 대기를 없애고 실제 대기 방식과 3회 중앙값으로 바꿨다. 오탐 93.2%였던 측정은 1.8~16.1% 범위로 안정됐다.

이 장치는 하드웨어 한도가 아니다. 반드시 감시 경로를 거친 명령만 본다. 그래서 “초과를 막는다”가 아니라 “초과를 감지해 죽이고 되돌린다”고 기록했다.

재발방지 체크리스트
① 자원 사용량은 부모 하나가 아니라 프로세스 트리 전체를 합산한다.
② 종료도 자식·손자까지 포함해 좀비가 남지 않게 한다.
③ 감시용 대기가 자원을 먹지 않는지 감시자 자체 비용을 먼저 잰다.
④ 보호 범위 밖 실행은 못 막는다는 한계를 숨기지 않는다.

90) RGB 여섯 차이가 그림마다 밝은 상자를 만들었다

화이트보드 영상이 처음으로 끝까지 완주했다. 1920×1080, 563프레임, 18.816초. 그림은 자막 순서대로 누적됐고, 빨간 봉 모양 커서도 움직였고, 자막도 다섯 토막에 맞춰 바뀌었다.

잉크 포함률, 그림 상자끼리의 겹침, 자막 영역 침범 검사도 전부 통과했다. 기능만 보면 성공이었다.

그림이 열릴 때마다 네모가 생겼다

중간 프레임을 직접 열어보니 그림 주변이 밝은 사각형으로 드러났다. 그림 하나가 나올 때마다 종이 위에 밝은 카드가 한 장씩 붙는 것처럼 보였다. 마지막에는 상자 다섯 개가 나란히 남았다.

원인은 아주 작았다. 생성된 선화의 종이색은 RGB 251·244·231, 색상으로는 #FBF4E7이었다. 내가 영상 배경에 박아둔 값은 245·239·224, #F5EFE0이었다.

차이는 각각 +6·+5·+7. 숫자만 보면 사소한데, 넓은 직사각형 면적으로 붙으니 경계가 또렷하게 보였다.

검사는 잉크만 보고 있었다

검사 세 개가 모두 통과한 이유도 분명했다. 전부 검은 선이 어디 있느냐만 봤다. 그림 뒤에 깔린 종이색은 검사 대상이 아니었다. 그래서 잉크는 완벽한 위치에 있어도 화면은 실패할 수 있었다.

배경색 상수를 없애고 이미지에서 실측한 종이색을 장면 계획에 넘기기로 했다. 더 근본적으로는 사각형 그림을 그대로 여는 대신 종이색을 투명하게 만들고 잉크만 드러내야 한다. 마지막에는 렌더된 프레임에서 상자 경계 안팎의 색차까지 재야 압축과 합성 뒤의 문제도 잡힌다.

이번에 배운 건 색을 “비슷하게” 맞추는 것과 같은 픽셀로 이어 붙이는 것은 다르다는 사실이다.

재발방지 체크리스트
① 합성 배경색은 상수로 짐작하지 않고 원본에서 실측한다.
② 사각형 이미지를 드러낼 때는 배경까지 열지 말고 잉크 알파만 연다.
③ 위치 검사와 별도로 경계 안팎 색차 검사를 둔다.
④ 기능 게이트가 전부 통과해도 시작·중간·마지막 프레임을 직접 본다.

89) 다섯 칸에 그려달랬는데 그림은 여섯 덩어리로 나왔다

자막에 맞춰 그림이 하나씩 그려지는 화이트보드 영상을 만들었다. 내용은 다섯 토막이었다. 그래서 화면에도 칸 다섯 개를 미리 정하고, 이미지 생성기에 각 칸 안에 그림을 하나씩 넣어달라고 했다.

한 장을 만드는 데 34.2초가 걸렸다. 결과도 좋아 보였다. 글자와 로고는 0개였고, 다섯 그림의 선 굵기와 화풍도 같았다. 하단 자막 자리도 비워뒀다.

좌표를 재자 전부 밀려 있었다

그림을 미리 정한 칸으로 잘라 애니메이션을 만들기 전에, 검은 잉크가 실제로 어디 있는지 x축으로 투영해봤다. 계획한 위치와 실제 그림은 60~108픽셀씩 어긋나 있었다.

더 큰 문제도 있었다. 내용은 다섯 토막인데 잉크 덩어리는 여섯 개였다. 두 갈래 화살표 하나가 가운데가 비어 있다는 이유로 서로 다른 그림 두 개처럼 검출된 것이다.

원본 크기도 내가 예상한 1920×1080이 아니라 1672×941이었다. 말로 지정한 위치와 픽셀 좌표는 같은 것이 아니었다.

그림을 칸에 맞추는 방향을 버렸다

처음 생각은 “정해둔 칸에 맞게 다시 그려라”였다. 하지만 생성기는 좌표를 계약처럼 지키는 도구가 아니다. 같은 요구를 다시 보내도 다른 데 그릴 수 있다.

방향을 뒤집었다. 그림이 나온 뒤 잉크 위치를 직접 재서 칸을 만든다. 서로 가까운 덩어리는 실제 간격으로 병합한다. 이번 그림은 합쳐야 하는 틈이 24픽셀이고, 나머지 틈은 51·73·73·88픽셀이어서 구분할 근거도 있었다.

그림 수가 자막 토막 수와 맞지 않으면 억지로 끼우지 않고 다른 방식으로 넘긴다. 생성 결과를 계획에 맞다고 우기는 대신, 결과를 측정해 다음 단계의 입력으로 삼았다.

재발방지 체크리스트
① 생성 이미지의 위치·크기는 프롬프트가 아니라 픽셀로 재서 쓴다.
② 예상 개수와 검출 개수가 다르면 바로 자르지 말고 분리된 한 물체인지 확인한다.
③ 출력 해상도와 종횡비를 먼저 읽고 좌표를 변환한다.
④ 통제되지 않는 출력을 고정 좌표에 강제로 맞추지 않는다. 실측 결과가 다음 계획을 만든다.
본 사이트는 쿠팡 파트너스 및 알리익스프레스(AliExpress) 어필리에이트 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받을 수 있습니다.