사용자가 자기 앱을 AI에게 시켜 직접 고쳐 쓰게 하는 판을 보여 줌. 화면 쪽과 서버 쪽을 둘 다 가둬 서로에게만 말하게 만들어 「이 코드에서 나올 수 있는 보안 결함 중 문제 되는 것은 없다」고 주장하는 대목이 뼈대. 발표용 슬라이드를 만드는 앱에 모델이 필요한 기능을 스스로 붙여 가며 만든 사례, 라이브 데모가 실패한 대목, 그리고 오픈소스로 풀겠다던 약속이 발표 며칠 전 회사 결정으로 미뤄진 사정까지 그대로 있음.
한줄 코멘트. 검사해서 막는 대신 새어 나갈 데를 없앤다는 뒤집기가 이 발표의 값이다. 화면 쪽과 서버 쪽을 둘 다 가둬 두면 지어낸 코드에 결함이 있어도 나갈 곳이 없다는 것이다. 다만 그 주장은 바깥 서비스와 아무것도 주고받지 않을 때의 이야기이고, 주고받는 길은 시간이 없다며 넘긴다.
다시 짜기로 하고 끝나지 않는다
워커스를 만들고 지금도 그 팀을 이끈다는 사람이 발표한다. 2017년에 시작했다고 밝힌다.
여는 이야기는 소프트웨어가 만들어지는 순환이다. 한 벌을 지어 내려보내면 사람마다 자기 쓰임에는 이것이 있어야 한다고 청한다. 그 청을 받아 넣다 보면 몇 사람만 쓰는 갈래가 코드에 쌓인다.
그래서 개발자가 결심한다. 다시 짜야겠다. 갈아 끼울 수 있는 얼개를 만들겠다는 것이다.
그다음이 이 발표의 아픈 대목이다. 그 판이 안 끝난다. 그동안 새 청은 미뤄지고, 해가 가도 얼개는 안 나오고 아무 기능도 안 붙는다.
내놓는 대안은 이렇다. 개발자는 첫 판만 만들고, 필요한 기능은 쓰는 사람이 AI에게 시켜 자기 앱에 붙인다.
그러면 각자 필요한 것을 갖고, 남의 기능에 발목 잡히지 않으며, 개발자는 가운데를 깨끗하게 지킨다는 것이다.
문제는 지금 바닥이 그런 쓰임을 조금도 염두에 두고 만들어지지 않았다는 것이다.
두 갈래로 짚는다. 손안의 기기 쪽은 15년째 문을 잠가 둬서 앱을 만들 수 있는 회사가 다섯 곳쯤이라고 말한다. 자기 기기에 서명 안 된 것을 넣기가 얼마나 까다로운지를 과장해 빗댄다.
웹은 그 문을 돌아가는 길이었다고 말한다. 그리고 막는 쪽이 경고하던 보안 재앙은 일어나지 않았다고 짚는다.
그런데 웹에도 문제가 있다. 25년 동안 클라우드가 잘못된 방향으로 달려왔다는 것이다. 웹 앱을 올리면 내 서버에서 한 벌만 돌아 모두에게 같은 것이 간다. 그러니 쓰는 사람이 자기 것으로 고칠 수가 없다.
지난해 쏟아진 말로 시켜 만드는 판들도 결국 그 바닥을 그대로 쓴다고 짚는다.
만든 것은 말로 시켜 만드는 흔한 판과 다르다고 말한다. 문서 대신 작은 물건이 놓인 사무 묶음에 가깝다는 것이다.
물건 하나하나가 저마다 다른 코드를 가진 앱이다. 만들어 본 것으로 함께 그리는 판, 특정 언어로 온 편지를 골라 주는 것, 봐야 할 코드 검토를 정렬해 주는 것을 든다.
나누는 방식도 있다. 쓸 만한 물건이 나오면 자료는 빼고 코드만 떠서 남에게 준다. 받은 사람은 그것으로 자기 것을 새로 세운다.
여기서 설계 판단이 하나 나온다. 나눔과 권한을 앱이 아니라 판이 맡는다. 그래서 그 앱이 그것을 틀리게 만들 수가 없다는 것이다.
새어 나갈 데가 없다
양쪽을 다 가둔다
이 발표의 가운데다.
화면 쪽은 출처가 없는 틀 안, 곧 *샌드박스 안에서 돈다. 바깥에 말을 걸 수 없고 쿠키에도 못 닿는다. 할 수 있는 것은 자기를 감싼 쪽에 메시지를 보내는 것뿐이다.
그 통로로 서버 쪽에 넘어간다. 그리고 서버 코드도 따로 가둔 자리에서 돌며 바깥이 막혀 있다.
그래서 말한 것을 그대로 옮기면 이렇다. 이 코드에서 나올 수 있는 보안 결함 중에 문제가 되는 것은 없다. 지어낸 그림에 스크립트가 섞여 들어와도 새어 나갈 데가 없기 때문이다.
바깥 서비스와 안전하게 주고받는 장치도 만들었다고 말하는데, 그건 발표를 두 번 더 해야 한다며 넘어간다.
이 발표에서 가장 손에 잡히는 사례다.
발표 슬라이드를 그 판 위의 슬라이드 앱으로 만들었다. 모델에게 문서 링크를 주고 만들라고 시키면서 필요하면 슬라이드 앱 자체에 기능을 붙여도 된다고 했다.
그래서 붙은 것이 셋이다. 글자에 줄 긋기, 가운데 맞추기, 그리고 그림을 끼워 넣는 기능이다. 그 마지막 기능을 붙인 뒤 그 기능으로 넣을 그림도 모델이 지어냈다.
바닥도 밝힌다. 모델만 빼면 전부 워커 위에 있고, 컨테이너도 데이터베이스도 없다. 게다가 지금 이 모든 것이 자기 노트북에서 돌고 있다고 말한다. 런타임이 열려 있어 스스로 세울 수 있다는 것이다.
집 지하실에 두고 집 안 장치와 음악 서비스를 물려 쓰고 싶다고 덧붙인다.
정직한 대목이 둘 있다.
하나는 라이브 데모가 실패했다. 간단한 것을 만들어 보라고 넣었는데 오류가 났고, 그 자리에서 그렇다고 말한다.
다른 하나가 더 무겁다. 발표를 제안할 때는 끝나면서 바로 코드를 공개할 계획이었다. 그런데 최근 몇 주 사이 회사 안에서 관심이 커져 더 진지한 일이 됐고, 발표 며칠 전 최고기술책임자가 미루자고 했다. 그래서 오늘은 못 내고 곧 낼 것이라고 말한다.
잰 값이 없다. 이 판이 얼마나 빠른지, 물건 하나를 세우는 데 얼마가 드는지가 나오지 않는다. 규모로 든 수는 회사 전체의 것이지 이 판의 것이 아니다.
「새어 나갈 데가 없다」는 조건부다. 바깥과 아무것도 주고받지 않을 때의 이야기인데, 주고받는 길을 만들었다고 말하면서 그 부분은 넘긴다. 그 길이 열리는 순간 이 주장이 그대로 서는지가 이 발표에서 안 다뤄진다.
쓰는 사람이 실제로 고쳐 썼는지가 없다. 만든 사람 자신과 동료 하나의 사례뿐이고, 보통 사람이 이 방식으로 자기 앱을 고친 기록이 없다.
지어낸 코드가 얼마나 자주 망가지는지 없다. 격리로 감싸면 안전하다는 것과 제대로 도느냐는 다른 문제인데 뒤쪽 값이 없다.
공개가 미뤄져 확인할 수 없다. 지금은 발표에서 본 것 말고 시험해 볼 방법이 없다.
용어