아이 AI 수업은 도구 말고 누가 가르치는지부터 보자

이미지
아이들 AI 수업은 지금 누가 가르치고 있을까요. 얼마 전에 아이 학교 참관수업을 보고 왔습니다. 요즘은 수업 시간에 AI로 글을 쓰는 것 같은 걸 가르치는 모양입니다. 보고 나오면서 든 생각은 하나였습니다. 개발자 입장에서 보면 이건 아니다 싶었습니다. 처음 드는 생각도 아닙니다. 스크래치가 유행할 때도, 마인크래프트로 코딩을 가르친다고 할 때도 저는 비슷한 생각을 했습니다. 도구 이름은 그때마다 바뀌었는데, 개발자 눈에 비어 보이는 것은 매번 같았습니다. 도구가 문제였다면 도구가 바뀔 때 뭔가 달라졌어야 합니다. 세 번을 바꿔도 같은 것이 비어 있으니 도구보다 앞에 원인이 있다고 봤고, 그걸 따라가다 보니 가르치는 사람이 어디서 배워서 교실에 들어오는지에 닿았습니다. 범위를 먼저 그어 두겠습니다. 참관수업이 몇 학년 무슨 수업이었는지, 누가 가르쳤는지는 적지 않습니다. 이 글은 교실 하나나 강사 한 사람을 두고 하는 이야기가 아닙니다. 제도에 관한 사실은 원문을 열어서 확인한 것만 쓰고, 확인하지 못한 것은 제 판단이라고 밝혀 두겠습니다. 인용한 자료는 전부 2026년 9월 27일에 확인했습니다. 디지털새싹 강사는 이틀짜리 양성과정을 거쳐 교실에 들어갑니다 배경부터 짧게 적겠습니다. 소프트웨어 교육은 중학교가 2018학년도 신입생부터, 초등학교 5·6학년이 2019년부터 필수가 됐습니다( 한국일보, 2017-12-27 ). 그리고 2025년부터 적용되는 2022 개정 교육과정에서 정보 수업 시간이 초등은 17시간에서 34시간 이상으로, 중학교는 34시간에서 68시간 이상으로 늘었습니다( 정책브리핑, 2022-08-29 ). 정규 교과 안의 정보 수업은 학교 선생님이 맡습니다. 교과 밖으로 들어오는 AI 교육은 경로가 다릅니다. 대표적인 게 교육부의 디지털새싹입니다. 올해는 대학과 공공·민간기관을 대상으로 운영기관 공모를 해서 45곳을 골랐고, 이 기관들이 267종의 프로그램을 들고 학교로 직접 찾아가 8~12차시 이상씩 수업을 합니다. AI ...

가족 위치 앱은 끄는 법까지 적고 기록이 어디 남는지는 안 적습니다

가족 위치 확인 앱을 만들었다는 글을 끝까지 읽었습니다. 서로 동의한 가족이나 단짝끼리만 연결해서 위치를 볼 수 있다고 적혀 있었고, 위치 공유는 원할 때 끌 수 있다고 적혀 있었고, 연결도 언제든 해제할 수 있다고 적혀 있었습니다. 앱스토어와 플레이스토어 양쪽에 올라가 있는 앱입니다.

소개글 치고는 성실한 축입니다. 동의를 받는 구조와 끄는 방법과 관계를 끊는 방법까지, 누가 물어본 것도 아닌데 셋 다 먼저 적혀 있었습니다.

그런데 한 칸이 비어 있었습니다.

이동 기록이 어디에 얼마나 남는지는 없었습니다. 위치를 지도에 그려주고 지나온 경로까지 보여주는 앱이니 기록은 어딘가에 쌓일 텐데, 그게 기기 안에 있는지 서버에 있는지, 남는다면 며칠인지 몇 달인지에 대한 문장이 한 줄도 없습니다. 공을 많이 들였다는 대목은 있습니다. 위치가 너무 자주 튀지 않게 하고 기록이 끊겨 보이지 않게 하는 쪽이라고 적혀 있습니다. 정확도와 배터리 이야기이지 보관 이야기가 아닙니다.

비어 있는 칸이 하필 그 칸인 게 눈에 걸렸습니다.

지난번에 무료 이미지 편집 도구 이야기를 쓰면서 확인해 보지 않은 사람이 더 단정적으로 말한다는 데서 끝냈습니다. 그 글을 쓰고 나서 같은 개발자 게시판의 2주치를 모아서 다시 읽었는데, 제가 내린 결론이 반쪽이었습니다.

사람들은 위험을 안 적는 게 아닙니다. 자기가 볼 수 있는 위험은 다들 스스로 먼저 적습니다.

밝은 원목 책상 위에 같은 크기의 크림색 카드 아홉 장이 세 줄로 나란히 놓여 있고, 여덟 장은 앞면이 보이는데 가운데 한 장만 뒤집혀 회색 뒷면이 보인다

가족 위치 앱에서 동의와 해제는 적혔고 보관만 비었습니다

동의, 끄기, 해제. 이 셋에는 공통점이 있습니다. 전부 화면에 있는 물건입니다.

동의를 받으려면 동의를 묻는 화면을 만들어야 합니다. 끄는 기능을 넣으려면 스위치를 그려야 하고, 연결 해제를 넣으려면 목록에서 상대를 지우는 버튼을 붙여야 합니다. 만든 사람은 그걸 직접 만들면서 봤고, 쓰는 사람도 눌러서 확인할 수 있습니다. 그래서 소개글에 적힙니다. 적을 게 있으니까 적는 겁니다.

보관은 그렇지 않습니다. 위치 좌표가 서버 데이터베이스에 며칠 남는지, 요청 로그에 좌표가 같이 찍히는지, 지도를 그리려고 외부에 보내는 요청에 좌표가 실려 나가는지, 오류 수집 도구가 앱이 죽을 때 마지막 위치를 같이 보내는지. 이 넷은 앱을 아무리 오래 써도 화면에 안 나타납니다. 스위치를 끄면 위치 공유가 멈췄다는 표시가 뜨지만, 그동안 쌓인 것이 어떻게 됐는지는 표시가 없습니다.

여기서 한 가지가 갈립니다. 실시간 위치는 끄면 그 시점부터 안 나갑니다. 이동 기록은 과거형이라 끈 뒤에도 남아 있는 쪽입니다. "원할 때 끌 수 있다"와 "남은 것이 지워진다"는 다른 문장인데, 소개글에서는 두 문장이 하나처럼 읽힙니다. 끌 수 있다고 적혀 있으니 통제권이 있는 것처럼 읽히고, 통제권이 있으면 남은 것도 내가 어떻게 할 수 있는 것처럼 읽힙니다.

가족끼리 연결한다는 건 상당수가 아이와 부모라는 뜻이고, 아이 쪽 동의는 부모가 대신 누릅니다. 지금 어딘가에 쌓이고 있는 것이 미성년자의 두 달치 이동 경로일 수 있다는 뜻입니다. 집, 학교, 학원, 그 사이의 시간대까지 전부 들어간 형태로요.

동의 구조까지 적어 놓은 사람이 보관 항목만 골라서 뺐다고 보는 건 앞뒤가 안 맞습니다. 적을 항목으로 떠오르지 않았다는 쪽이 훨씬 그럴듯합니다. 만들면서 마주친 화면이 아니었으니까요.

표본 한계와 저작권은 묻지도 않았는데 먼저 적혀 있었습니다

같은 게시판의 다른 글들을 보면 이게 더 분명해집니다.

아파트 관리비를 비교해 보여주는 사이트를 올린 사람은 자료를 계속 수집 중이라 아직 완성이 아니라고 먼저 적었습니다. 그러고 나서 한 줄을 더 붙였습니다. 사실 정보만 공개하는 것이고 분쟁을 만들고 싶지는 않으니 참고 자료로 봐 달라고요. 단지별 관리비를 줄 세워 보여주는 일에 어떤 소리가 따라올 수 있는지를 본인이 알고 있다는 뜻입니다. 뉴스를 모아 보여주는 사이트를 올린 사람은 기사 본문은 가져오지 않고 제목과 원문 링크만 보여준다고 적었습니다. 지난번 글에서 저작권 조심하라고 짚어 준 댓글이 고마웠다는 말과 함께, 그때 말한 원칙은 그대로라고 한 달 뒤에 다시 적었습니다.

8월에 이 게시판의 만들었습니다 글 60건을 세어서 글을 하나 썼는데, 그때는 목록의 생김새를 봤습니다. 이번에는 글 안쪽을 봤고, 안쪽에는 생각보다 많은 것이 적혀 있었습니다.

표본이 적어서 단정하기 어렵다는 문장, 저작권 경계를 어디에 뒀는지, 분쟁 소지가 어디에 있는지, 완성도가 어느 정도인지. 전부 홍보하려고 올린 글에서 자기 물건의 약한 데를 스스로 먼저 적은 겁니다.

그래서 안 적힌 칸을 세어 봤습니다. 몇 개 없었습니다. 그리고 그 몇 개가 전부 같은 종류였습니다. 데이터가 어디로 가느냐입니다.

AI 요약 북마크 앱은 링크 본문이 나가는 걸 기능으로 적었습니다

읽을거리를 모아두는 앱을 만들었다는 글의 소개는 이렇게 되어 있습니다.

앱으로 공유를 거는 하는 순간 AI가 내용 읽고 3줄로 요약을 해줘요.

기사뿐 아니라 유튜브 링크나 블로그 글도 다 요약해 주고, 저장할 때 태그랑 폴더도 알아서 붙여 준다고 되어 있습니다. 읽고 넘어가려다가 다시 올라왔습니다.

이 문장은 편의를 설명하는 문장인데, 같은 문장이 경로도 같이 말하고 있습니다. 내용을 읽어서 요약한다는 건 내가 저장한 링크의 본문이 어딘가의 모델에 들어간다는 뜻입니다. 어느 모델인지, 어디를 거쳐서 가는지, 거치는 쪽에 무엇이 남는지는 적혀 있지 않습니다. 그 문장 하나가 기능 소개이자 데이터 경로 설명인데, 앞쪽으로만 읽힙니다.

제가 이 목록에서 유일하게 봤다고 느낀 사례가 이겁니다. 안 보이는 경로가 기능 설명 안에 대놓고 들어 있는데도 안 보입니다.

북마크는 대상으로 보면 좀 특이한 물건입니다. 한 사람이 저장해 둔 링크 목록은 그 사람에 대한 서술에 가깝습니다. 어떤 병을 검색해서 나온 안내 페이지, 이직 공고, 법률 상담 글, 대출 조건 비교. 제목만으로도 읽히는 것이 있는데, 요약을 하려면 제목이 아니라 본문 전체가 읽혀야 합니다. 세 줄로 줄여서 돌려주려면 먼저 통째로 들어가야 하니까요.

그리고 이건 숨긴 게 아닙니다. 자랑으로 적은 겁니다. 그게 이 앱의 기능이니까요. 이용자도 그걸 보고 받습니다. 저도 처음 읽을 때는 편리하겠다는 쪽으로만 읽었습니다. 두 번째 읽을 때 문장이 갈라졌습니다.

아직 배포하지 않은 가계부에 서버에 아무것도 보관하지 않는다고 적혀 있습니다

이 목록에서 제일 무거운 건 다른 글이었습니다.

가족 단위 재무 설계를 해 주는 가계부를 만들겠다는 글입니다. 가족을 그룹으로 만들고 초대해서 각자의 엑셀과 문자 등을 수집하고, 카드와 은행계좌와 증권사 데이터를 모두 수거한다고 적혀 있습니다. 수거라는 말이 원문의 표현입니다. 개발은 최소한의 비용으로 했다고 밝혔고, 값이 싼 모델 둘을 시간 날 때 돌려서 만들었다고 썼습니다.

그리고 이 문장이 있습니다.

가계부는 개인정보인 금융정보를 써야해서 서버에는 아무것도 보관하지 않는 어플리케이션으로 배포할 생각입니다.

시점을 정확히 봐야 하는 문장입니다. 지금 열려 있는 건 시뮬레이터 쪽이고, 가계부 앱은 아직 배포되지 않았습니다. 원문이 배포할 생각이라고 적고 있고, 가능한 한 빨리 배포하겠다고 이어집니다.

그러니까 순서가 이렇게 되어 있습니다. 물건이 아직 없고, 그 물건에 대한 보장 문장이 먼저 나와 있습니다.

지난 글에서 제가 본 자리는 이용자가 그 문장을 확인할 방법이 있느냐였습니다. 여기서는 그보다 한 칸 앞입니다. 확인할 대상 자체가 없습니다. 열어볼 화면이 없고, 무엇이 나가는지 볼 요청도 아직 없습니다. 그런데 문장은 이미 사람들 앞에 나와 있고, 배포되고 나면 그 문장을 기억한 상태로 들어가게 됩니다. 순서상 검증이 영원히 뒤에 서 있는 형태입니다.

서버에 아무것도 보관하지 않는 가계부를 못 만드는 건 아닙니다. 다만 그건 결과가 아니라 제약입니다. 계산을 기기 안에서 끝내야 하고, 백업도 동기화도 붙이면 안 되고, 오류 수집 도구가 화면 값을 떠서 보내지 않아야 합니다. 처음부터 정해 놓고 그 안에서 기능을 짜야 지켜지는 종류입니다.

그런데 가족을 그룹으로 묶어서 초대한다는 기능은 정의상 사람 사이를 오갑니다. 내가 넣은 값을 다른 가족이 보려면 어딘가를 거쳐야 하고, 거치는 곳이 아무것도 안 남긴다는 건 따로 정하고 따로 확인해야 하는 항목입니다.

같은 사람이 같은 게시판에 올린 다른 글을 보면 한계를 적을 줄 모르는 사람이 아닙니다. 책으로 토너먼트를 만든 글에서는 자기가 투표한 것이라 다른 사람이 참여하면 순위가 바뀐다고 먼저 적었고, 자막 관련 도구를 올린 글에서는 영상은 저작권에 문제가 될까 봐 일단 뺐다고 적었습니다.

가장 가벼운 대상에서는 한계를 적고, 가장 무거운 대상에서는 단정합니다. 같은 사람 안에서 방향이 뒤집힙니다.

이유를 이 글의 축으로 설명하면 이렇게 됩니다. 투표 순위가 흔들린다는 건 화면에서 보입니다. 표가 몇 개인지 세어지고, 한 표 더 들어가면 순서가 바뀌는 것도 보입니다. 서버에 무엇이 남는지는 안 보입니다. 확인할 수 있는 것에는 한계를 적게 되고, 확인할 수 없는 것에는 단정이 나옵니다. 반박할 사람이 없기 때문입니다. 검증할 수 없는 주장이 확신으로 전달되는 구조를 따로 정리한 적이 있는데, 그때는 강의 영상이 소재였고 판정이 날 수 없는 구간에 판정이 난 것처럼 말하는 것이 문제였습니다. 여기서는 판정할 물건이 아직 만들어지지도 않았습니다.

월 10만 원을 받는 부고장 분양 공지에는 오류가 있을 수 있다고 적혀 있습니다

돈이 붙으면 반대로 갑니다.

장례식장과 상조회사와 화환업체를 대상으로 부고장 사이트를 분양하겠다는 글이 있었습니다. 내 도메인과 내 브랜드로 운영하라는 문구가 붙어 있고, 초기 세팅비 5만 원에 월 10만 원이라고 가격까지 적혀 있습니다. 비개발자인데 꾸준히 뭔가를 생각하고 만들어 보고 있다고 본인이 밝혔고, 바이브 코딩을 한 지 2년쯤 됐다고 썼습니다.

그리고 같은 판매 공지에 이 문장이 들어 있습니다.

아직 많은 테스트를 해보지 못해 오류가 있을 수 있습니다.

앞의 글들과 정반대입니다. 무료로 쓰라고 내놓은 쪽이 안전하다고 적었고, 매달 돈을 받겠다는 쪽이 못 해 봤다고 적었습니다.

이것도 축을 뒤집는 증거가 아니라 같은 증거입니다. 돈을 받으면 상대가 생깁니다. 계약이 생기고, 청구서가 나가고, 화면이 안 뜨면 전화가 옵니다. 그 구조가 보이니까 미리 적는 겁니다. 면책 문장은 보이는 위험에 대한 반응이지 안 보이는 위험에 대한 반응이 아닙니다.

그래서 적힌 위험이 무엇인지를 봐야 합니다. 오류가 있을 수 있다는 건 화면이 깨지거나 버튼이 안 먹는 쪽입니다. 부고장이 다루는 물건은 상주와 고인의 이름, 발인 일시, 장례식장 위치, 계좌번호, 조문객 명단과 조의금 내역입니다. 그리고 부고장은 성격상 링크가 널리 퍼집니다. 모르는 사람 손에도 들어가는 주소인데, 주소를 어떻게 만들었느냐에 따라 남의 부고까지 열리는 경우가 생깁니다. 이 항목들에 대한 문장은 공지에 없습니다.

분양이라 한 겹 더 붙습니다. 같은 물건이 업체마다 하나씩 복제되고 도메인은 각자 다르니, 확인해야 할 대상이 분양된 수만큼 늘어납니다.

코드에 누구 이름이 적히느냐를 다룬 적이 있습니다. 무료 도구에는 계약도 약관도 없어서 서명란 자체가 없다는 이야기를 그때 했는데, 여기는 서명란이 있는 쪽입니다. 세금계산서가 나가고 거래 상대가 특정됩니다. 그런데 서명란에 붙어 있는 문장이 보증이 아니라 면책입니다.

주류 리뷰 사이트를 두고 제가 먼저 한 판단이 반대로 갔습니다

이 절은 제가 틀렸던 이야기입니다.

같은 게시판에 주류를 정리해 보여주는 사이트를 올린 글이 있었습니다. 현직 개발자이고 기획과 개발과 테스트와 운영을 혼자 하고 있다고 적혀 있었습니다. 퇴근하고 개발하고 주류 등록하고, 힘들지만 재미있다는 문장도요.

저는 이 건을 이번 글에서 빼기로 했었습니다. AI로 만들었다는 말이 원문에 없었고, 사이트를 열어 봐도 그렇게 볼 근거를 못 찾았기 때문입니다. 진입 문서를 보니 서버에서 미리 그려서 내려주는 구조였고, 검색 엔진이 읽는 구조화 데이터가 붙어 있었고, 한국어와 영어 양쪽으로 언어 표시까지 걸려 있었습니다. 공이 들어갔다고 읽었습니다.

그러고 나서 같은 문서의 아래쪽을 다시 봤습니다. 집계 숫자가 박혀 있었는데, 등록된 항목은 천 단위인데 사람이 남긴 평가는 두 자리였습니다. 최근 리뷰로 올라온 열 건은 전부 같은 사람 하나였고, 소식란은 관리자 명의로 하루 두세 건씩 올라오고 있었습니다. 글쓴이 본인도 모든 주류 데이터를 혼자 넣고 있다고 적어 두었습니다.

제가 먼저 본 것은 껍데기 쪽 신호였습니다. 구조화 데이터와 다국어 표시는 붙이라고 하면 붙습니다. 사람이 알고 붙였는지 시켜서 붙었는지는 문서에서 구분되지 않는데, 저는 그 둘을 구분되는 것처럼 읽었습니다.

그런데 숫자를 다시 찾았다고 해서 판정이 난 것도 아닙니다. 제가 얻은 건 방향을 한 번 뒤집을 재료였지 증명이 아닙니다. 그래서 이 글에서는 이 사이트를 AI로 만들었다고 적지 않습니다. 적을 근거가 없습니다.

지난 글에서 이용자가 개발자도구를 열어서 요청을 하나하나 구분할 수 있겠느냐고 쓰면서 그걸 하는 사람이 몇이나 되겠냐고 적었습니다. 이번에는 제가 그걸 한 쪽이었는데, 하고도 한 번 반대로 갔습니다. 열어 보는 것과 제대로 읽는 것은 또 다른 일이더군요.

누가 만들었는지도 화면에서 안 보이는 칸입니다. 이 글이 다루는 빈칸 목록에 하나가 더 붙은 셈입니다.

제가 만든 사이트도 밖에서 보면 AI로 만든 것인지 구분되지 않습니다

여기서 한 가지를 적어 둬야 이 글의 자리가 맞습니다.

저도 만들어서 올려 둔 것이 있습니다. 어느 것인지는 적지 않겠습니다. 그 화면을 열어서 이게 AI가 만든 것인지 사람이 쓴 것인지 구분할 수 있느냐고 물으면, 구분 못 합니다. 저는 답을 알고 있지만 그건 제가 만들었기 때문이지 화면이 말해 줘서가 아닙니다. 앞 절에서 제가 남의 사이트를 두고 한 번 반대로 간 것과 같은 이유입니다.

제 사이트 소개를 적을 때 제가 무엇을 적었는지 떠올려 보면, 적은 것은 대체로 화면에 있는 것들이었던 것 같습니다. 무슨 기능이 되고 어디까지 지원하고 무엇은 아직 안 된다. 데이터가 어디를 거쳐 가는지를 한 줄이라도 적었는지는 자신이 없습니다.

그러니까 이 글은 남의 소개글을 검사한 글이 아닙니다. 같은 목록에 제 글이 한 줄 더 있어도 이상할 게 없고, 그 글에도 같은 칸이 비어 있을 겁니다. 제가 앞에서 센 빈칸들은 제 쪽에도 있는 빈칸입니다.

지난 글에서 이 사람을 모범 사례로 세우려는 게 아니라고 적고, 문제는 성실함이 아니라고 적었습니다. 그 선을 이번에는 한 칸 더 안쪽으로 그어야 할 것 같습니다. 성실함의 문제가 아닌 정도가 아니라, 애초에 사람 쪽 문제가 아닙니다.

적히지 않은 위험은 숨긴 위험이 아니라 안 보이는 위험입니다

2주치를 모아 놓고 보니 빈칸의 위치가 일정했습니다.

동의 구조, 끄는 방법, 연결 해제, 표본 수, 저작권 범위, 분쟁 소지, 완성도, 테스트 부족. 적힌 것들은 전부 화면에 있거나 만드는 동안 손으로 만진 것들입니다. 안 적힌 것들은 위치 기록의 보관 기간, 요약을 맡기는 곳, 서버에 남는 것, 분양된 사이트의 주소 규칙입니다. 전부 화면에 안 나타나고, 거의 다 데이터가 어디로 가느냐에 걸려 있습니다.

그래서 적히지 않은 위험은 숨긴 위험이 아닙니다. 숨기려면 먼저 알아야 하는데, 알 계기가 되는 화면이 없습니다.

여기까지 오면 지난 글의 마지막 문장을 제가 고쳐 써야 합니다. 확인해 보지 않은 사람이 더 단정적으로 말한다고 적었는데, 그건 말하는 사람 쪽에 무게를 둔 문장이었습니다. 2주치를 놓고 보니 무게가 다른 데 있었습니다. 대상이 보이면 누구든 적습니다. 대상이 안 보이면 성실한 사람도 안 적습니다. 그 사람이 얼마나 꼼꼼한지와 거의 상관이 없더군요.

그리고 이 글도 같은 자리에 있습니다. 위치 기록이 기기 안에만 있을 수도 있고, 요약을 거치는 곳이 아무것도 안 남길 수도 있습니다. 제가 말할 수 있는 건 그 칸이 비어 있다는 데까지입니다.

다만 빈칸의 위치가 저렇게 일정한 게 계속 걸렸습니다. 왜 하필 그 칸만 남는지는 소개글을 다시 읽어도 안 나옵니다. 그런데 엉뚱하게도 화면 쪽을 다시 보다가 짚이는 데가 있었습니다.

평가가 두 자리인데 첫 화면은 평가 열 건을 깔고 있었습니다

앞에 적은 주류 사이트를 한 번 더 꺼내겠습니다. 숫자를 다시 찾았다고 판정이 난 건 아니라고 적었는데, 그 화면을 다시 열었을 때 걸린 건 숫자가 아니라 배치였습니다.

사람이 남긴 평가가 두 자리인 서비스인데, 첫 화면에 최근 등록된 평가를 보여주는 자리가 열 건을 차지하고 있었습니다. 지금까지 쌓인 평가의 절반쯤이 한 섹션에 들어가 있는 셈입니다. 실제 데이터가 어떤 상태인지 보고 정한 배치라면 그 섹션이 그 자리에 그 크기로 있을 이유가 없습니다. 평가가 매일 쌓이는 서비스를 전제한 구성이 먼저 있고, 있는 것을 거기에 끼워 넣은 모양에 가깝습니다.

제가 화면을 볼 때 보는 게 대개 이 층입니다. 버튼 모양이나 색이 아니라 한 단계 위입니다. 이 구성이 이 서비스의 사정에서 나온 것인가, 아니면 어느 분야에 갖다 놔도 똑같이 나오는 구성을 그대로 따라간 것인가.

그래 놓고 저는 같은 사이트를 두고 한 번 반대로 갔고, 배치를 보고 나서도 이게 누구 손에서 나온 결과인지는 확정하지 못합니다. 알아보는 눈이 있다는 이야기를 하려는 게 아닙니다. 제가 보려는 건 저런 배치가 왜 그대로 남아 있느냐입니다.

사람은 위계를 설계해서 화면을 만들지 않습니다. 보다가 이상해서 고칩니다. 크기가 제각각인 버튼 다섯 개를 한 줄에 깔아놓고 보면 뭔가 걸립니다. 걸리니까 하나를 키우고 나머지를 내리고, 다시 보고 또 만집니다. 그 반복이 쌓여서 결과적으로 무엇이 중요한지가 화면에 드러납니다. 순서가 그렇습니다. 판단이 먼저 있어서 배치가 나오는 게 아니라, 걸리는 일이 여러 번 반복되면서 판단이 화면에 쌓입니다.

시켜서 받으면 그 반복이 없습니다. 결과물을 보긴 보는데 동작하느냐만 봅니다. 화면이 뜨고 목록이 채워지면 거기서 시선이 멈춥니다. 보는 눈이 없어서가 아니라 보면서 고치는 과정이 지나간 적이 없기 때문입니다. 평가 열 건이 첫 화면의 절반을 차지하고 있어도, 그 목록을 하루에 몇 번씩 들여다본 사람이 없으면 걸릴 일이 없습니다.

같은 모양이 이 글에 세 번 나옵니다. 크기가 다른 버튼 다섯 개가 중요도와 상관없이 한 줄에 깔리는 것이 하나고, 지난 글에서 본 도구 모음의 기능 목록에서 얼굴 자동 모자이크가 QR 생성과 파일명 일괄 변경 옆에 항목 하나로 놓여 있던 것이 둘이고, 이번에 본 게시판 목록에서 책 투표 순위와 유족 정보가 같은 줄 간격으로 나란히 놓이는 것이 셋입니다. 셋 다 무엇이 더 무거운지가 화면에 나타나 있지 않습니다. 그리고 데이터 경로를 안 정한 것도 같은 자리에서 나옵니다. 브라우저 안에서 끝낼지 서버를 쓸지는 이 서비스가 무엇을 받는지 보고 정해야 하는 항목인데, 그 판단을 건너뛰면 기본으로 나온 것이 그대로 나갑니다.

저도 따로 만들고 있는 게 하나 있습니다. 화면은 대부분 만들라고 시켜서 받아 쓰는 방식인데, 얼마 전에 붙여둔 화면들을 처음으로 하나씩 눈으로 열어봤습니다. 그 자리에서 네 군데를 고쳤고, 다음 차례로 남은 화면 다섯 개를 열어보고 또 네 군데를 고쳤습니다. 밝은 배경 위에 얹힌 글자가 안 읽히는 자리가 있었는데, 글자색도 배경색도 지정되어 있었고 화면도 정상적으로 그려지고 있었습니다. 그림 몇 개는 좌우로 뒤집힌 채 들어가 있었고요. 이 중에 안 돌아간 건 하나도 없습니다. 다 떴고 값도 다 들어가 있었습니다. 눈으로 열어보기 전까지 저는 그걸 몰랐습니다.

그 화면들은 결국 고쳐졌습니다. 제가 열어봤으니까요. 그런데 같은 것을 만들면서 데이터가 어디로 가는지는 열어봐도 그렇게는 안 걸립니다. 눈으로 보는 것으로 잡히는 종류가 아니기 때문입니다.

버튼이 이상하게 깔려 있으면 눈에 걸립니다. 화면에 나타나 있으니까요. 파일이 서버를 한 바퀴 돌고 오는 것은 아무리 들여다봐도 걸리지 않습니다. 지난 글에 적은 대로 화면에서 벌어지는 일이 같기 때문입니다. 사진을 붙여 넣으면 모자이크가 얹히고 다운로드가 됩니다. 서버를 거쳤든 브라우저 안에서만 돌았든 보이는 건 똑같습니다.

그래서 이렇게 갈립니다. 배포하는 사람도 화면은 봅니다. 그러니 화면 쪽은 그럭저럭 고쳐집니다. 남아 있는 감각이 거기까지는 닿습니다. 데이터가 어디로 가는지는 원래 보다가 걸려서 잡히던 것이 아니었습니다. 파일 입력을 받는 코드를 직접 쓰다가 자연히 보게 되던 것이었습니다. 지금은 그 단계가 빠졌고, 걸리는 감각은 그대로 남았습니다. 코드를 통과하면서 보게 되던 것만 사라진 겁니다.

화면은 그럭저럭인데 데이터 경로만 비어 있는 게 우연이 아닌 셈입니다. 남은 감각이 닿는 층과 안 닿는 층이 정확히 갈렸습니다.

앞에서 센 것들을 다시 보면 전부 같은 선 위에 있습니다. 표본이 스무 명이라 단정하기 어렵다는 것, 기사 본문을 가져오면 저작권에 걸린다는 것, 관리비를 줄 세워 보여주면 말이 나온다는 것, 테스트를 덜 해서 오류가 있을 수 있다는 것. 적다 보면 어딘가 걸리는 항목들입니다. 위치 기록이 서버에 며칠 남는지는 몇 번을 다시 읽어도 안 걸립니다.

그래서 안 적혔습니다. 성실함의 차이가 아니라 걸리는 감각이 닿는 범위의 문제였습니다.

그 확인을 저는 얼마 전에 자동으로 넘겼습니다

한 가지를 더 적어야 정직한 글이 됩니다.

화면을 하나씩 열어보던 그 작업을 저는 얼마 전에 제 손에서 뺐습니다. 지금은 화면을 찍어서 AI 가 훑습니다. 대비가 낮아 안 읽히는 글자, 어긋난 정렬, 들어가야 할 데이터가 안 나오는 자리를 찾아냅니다. 잘 찾습니다. 제가 눈으로 훑을 때보다 빠뜨리는 게 적습니다. 요즘 만드는 건 대체로 이 방식이고 되돌릴 생각도 없습니다.

그런데 찾아내는 게 어느 화면에나 적용되는 기준입니다. 글자가 안 읽히는 건 어느 서비스에서나 문제입니다. 평가가 스무 건인 서비스에서 평가 섹션이 첫 화면의 절반을 차지하는 게 이상하다는 건 그 기준에서 안 나옵니다. 그건 이 서비스에 지금 뭐가 얼마나 쌓여 있는지 알아야 나오는 판단이라서요. 화면만 놓고 보면 잘 정돈된 화면입니다.

그러니까 만든 쪽과 검사하는 쪽의 안 보이는 데가 겹칩니다. 둘 다 이 서비스의 사정 바깥에서 봅니다. 일반적으로 맞는 것은 통과시키고, 이 서비스라서 이상한 것은 양쪽 다 안 걸립니다.

순서도 짚어둘 게 있습니다. 눈으로 열어보고 고친 게 먼저였고 자동으로 넘긴 게 나중입니다. 반대로는 안 됩니다. 밝은 배경에서 글자가 안 읽히는 자리를 한 번 만나본 사람만 그게 봐야 할 항목이라는 걸 압니다. 만나본 적이 없으면 확인은 계속 도는데 통과만 합니다.

제가 한 일은 단계를 하나 더 뺀 겁니다. 코드를 쓰다가 데이터가 어디로 가는지 보게 되던 단계는 저도 건너뛰고 시작했습니다. 그 칸은 저한테도 없습니다. 화면을 눈으로 보던 단계는 있었는데 그것도 이제 제 손을 떠났습니다.

안 적힌 칸이 비어 있던 이유는 아무도 거기서 안 걸렸기 때문입니다. 걸릴 사람이 화면 앞에서도 사라지는 중이면 그 칸은 계속 비어 있습니다. 채워질 계기가 없어지니까요.

댓글

이 블로그의 인기 게시물

아이들은 우리 게임에 들어오지 못한다

AI 부업 강의 여섯 편이 "리스크가 제로죠"라고 말했다

AI가 썼다는 브라우저 300만 줄에서 112만 줄은 남의 코드였다