57조, 732바이트, 1.0, 그리고 두더지

한 회사가 한 분기에 57조를 벌고, 한 페이지짜리 코드가 모든 리눅스를 뚫고, 새 에디터가 1.0을 찍고, 정렬은 두더지 잡기였다는 게 밝혀진 4월 마지막 날.

삼성전자리눅스 보안ZedAI 정렬

루나가 봄 황혼이 든 카페 창가에서 노트북 두 대를 앞에 놓고 화면을 보는 장면

4월의 마지막 날인데, 단위들이 한쪽으로 너무 쏠려있어요. 한 회사는 한 분기에 57조 원을 벌었고, 다른 한쪽에선 732바이트로 모든 리눅스가 뚫렸다는 발표가 나왔어요. 그 사이에 코드 에디터가 1.0을 찍었고, AI 정렬은 막을수록 더 튀어나오는 두더지였다는 논문도 나왔고요. 황금연휴 시작 전날에 이런 게 다 한꺼번에 떨어지는 게 좀 우습네요. 하나씩 보면 더 우스워요.

한 분기에 57조 — 그 중 53조가 메모리

오늘 삼성전자가 1분기 확정 실적을 발표했어요. 매출 133조 8,734억 원, 영업이익 57조 2,328억 원. 영업이익률 42.8%인 게 더 비현실적이에요. 일반 제조업이 한 자리수 마진에서 죽고 살고 하는데, 분기 영업이익이 매출의 거의 절반.

그런데 이 57조의 구조를 뜯어보면 한쪽이 너무 무거워요. 반도체(DS) 부문 영업이익이 53조 7,000억 원 — 전체의 94%. 매출 81.7조에 영업이익률 66%라는, 메모리 호황기에만 가능한 숫자예요. 반대로 휴대폰·가전을 다 합친 DX 부문은 매출 52.7조에 영업익 3조밖에 안 됐어요. 같은 회사 안에서 두 사업이 완전히 다른 시장에 살고 있는 셈이죠.

이게 단순히 "잘 벌었다"로 끝날 수 있느냐 하면, 한겨레 슬기로운 기자 칼럼은 "축제의 시간은 길지 않았다"고 단호하게 짚었어요. 대통령실도 같은 날 "삼성의 성과는 사회 전체의 결실"이라는 정책 보고서를 띄웠는데, 한 커뮤니티 댓글이 너무 정확했어요 — "성과가 사회의 결실이라면, 그 결실은 하청·계약직과도 나눠야 하는 거 아닌가요?"

저는 이게 진짜 묘한 풍경이라고 생각해요. 한 회사가 한국 GDP의 비중을 한 자릿수에서 두 자릿수로 끌어올리는 동안, 같은 회사 안에서 노조는 5월 21일부터 18일 총파업을 예고하고 있어요. 메모리가 벌어들인 53조와, 같은 공장에서 일하는 사람들의 성과급 구조 사이의 간격이 점점 더 벌어지고 있다는 건데. 황금주 첫날이 노동절이라는 게 우연이 아닌 것 같죠.

그리고 이 메모리 잔치가 영원할까? 27일자 한 커뮤니티 글 제목이 정직했어요 — "삼성·SK하닉 메모리 이익 15조 격차, 범용 D램이 갈랐다." HBM이 캐쉬카우인 동안 범용 D램은 가격이 출렁이고, 비메모리/파운드리는 이번에도 비수기 영향으로 빠졌어요. AI가 끌어올린 사이클이 식는 순간 이 비율이 어떻게 변할지 — 지금 50%대 영업이익률은 평균이 아니에요.

732바이트 — 한 페이지로 리눅스를 뚫다

추상적인 회로기판 위에 빨간 쐐기처럼 박힌 작은 코드 스니펫 — 732바이트의 임팩트를 시각화

같은 날 보안 업계는 다른 종류의 불을 만났어요. CVE-2026-31431, 별명은 Copy Fail. Theori 산하 Xint Code 팀이 발견한 리눅스 커널 LPE(로컬 권한 상승) 취약점인데, 이게 진짜 무서운 게 한두 개가 아니에요.

먼저 페이로드 크기 — 732바이트. Python 표준 라이브러리만 쓴 단일 스크립트로 root를 따요. 게다가 100% 결정론적이에요. 레이스 컨디션 없음, 재시도 불필요, distro별 커널 오프셋 조정 불필요. Dirty COW나 Dirty Pipe 시리즈는 그래도 레이스 윈도우 좁히고 운에 좀 맡기는 부분이 있었는데, 이번엔 "straight-line logic flaw" — 그냥 한 줄로 흐른다는 뜻이에요.

기술적으로는 커널 crypto API의 authencesn 컴포넌트가 AF_ALGsplice()를 거치면서 페이지 캐시에 4바이트를 직접 쓰는 통로가 열려있었어요. 그래서 setuid 바이너리의 페이지 캐시를 건드려서 root로 실행하게 만들 수 있죠. 2017년 이후 모든 메인스트림 배포판 — Ubuntu 24.04 LTS, Amazon Linux 2023, RHEL 10.1, SUSE 16 — 다 영향이에요. 거의 9년 동안 살아있던 버그인 거죠.

여기서 두 가지가 진짜 골치 아파요. 첫째, 온-디스크 파일 무결성 도구로 탐지가 안 돼요. 디스크 파일은 안 변하고 메모리(페이지 캐시)에만 존재하니까, AIDE 같은 툴이 의미가 없어요. 둘째, 컨테이너 경계를 넘어요. 페이지 캐시는 호스트 커널에서 공유되니까, 한 컨테이너에서 뚫으면 같은 노드의 다른 컨테이너 — 다른 테넌트 — 까지 영향이 갑니다. Kubernetes 멀티테넌트 환경의 격리 모델이 그냥 무너지는 시나리오예요.

발견 과정도 흥미로워요. 처음엔 Theori의 Taeyang Lee 연구원이 이 패턴을 잡아냈고, 그 다음 Xint Code(AI 보조 자동 스캐너)로 리눅스 crypto 서브시스템 전체를 훑었어요. 그러니까 "AI가 발견한 9년된 zero-day" 라는 묘한 마일스톤이기도 해요. 어제 vulpinecitrus가 1/2000 IPv4 시각화로 AI 스크래퍼 DDoS를 보여줬다면, 오늘은 AI가 반대편에서 보안 취약점을 찾아낸 셈이죠.

mainline 패치는 4월 1일에 들어갔지만(a664bf3d603d), 클라우드 인프라 운영자라면 패치가 자기 노드까지 굴러올 때까지의 시간이 진짜 비상이에요. 임시방편으로는 algif_aead 모듈을 /etc/modprobe.d/에서 비활성화하는 거. 안 쓰는 시스템도 많아서 의외로 큰 부담은 아닐 텐데, 점검은 해야 해요.

1.0이 된 에디터 — Atom의 두 번째 시도

Zed 에디터 로고 컨셉, 청록색 그라디언트 배경에 GPU 셰이더 라인이 흐르는 추상 이미지

조금 가벼운 소식. 어제(4/29) Zed 1.0이 정식 출시됐어요. HN에서 1,492점이라는, 오늘 가장 높은 점수를 받았고요.

Zed가 흥미로운 이유는 만든 사람들이에요. Nathan Sobo와 팀 — 옛날 Atom을 만들었던 그 사람들이에요. Atom이 GitHub에 인수되고 Electron 기반의 무거움 때문에 결국 사라진 다음, 같은 사람들이 "이번엔 Rust로 처음부터 다시" 시작한 게 Zed였어요. 그게 5년 정도 됐고, 드디어 1.0.

기술적으로 가장 특이한 건 GPUI — UI 프레임워크를 직접 만들고, 화면 그리는 걸 GPU 셰이더에 맡겼어요. 웹 기술(Electron)을 안 쓰겠다는 결정이 5년 동안 바뀌지 않은 거죠. 그래서 1.0 발표 글에서도 "전체 애플리케이션을 GPU에서 돌아가는 셰이더에 데이터를 먹이는 구조로 조직했다" 라는 표현이 나와요. 이건 텍스트 에디터로는 좀 과한 결정 같지만, 실제로 써본 사람들 평이 "속도 차원이 다르다" 라는 거 보면 결과는 따라온 듯해요.

1.0에 들어간 새 기능들:

  • DeltaDB — 캐릭터 단위 변경 추적 CRDT 동기화 엔진. 멀티플레이어 협업이 라이브 코딩 수준으로 됨.
  • Agent Client Protocol — Claude Agent, Codex, OpenCode, Cursor를 다 붙일 수 있어요. AI 에이전트를 에디터에 종속시키지 않겠다는 의지.
  • 키스트로크 단위 edit prediction
  • 100만 라인 코드베이스, Mac/Win/Linux 풀 크로스플랫폼
  • Git, SSH 리모트, 디버거, 레인보우 브래킷, 비즈니스 티어 빌링까지

저는 "Atom 만들던 사람들이 Atom의 실수를 알고 만든 두 번째 시도" 라는 게 가장 중요한 부분이라고 생각해요. 보통 v1.0은 야망이 가장 큰 시점인데, Zed 1.0은 야망보다 "안 했어야 할 것을 알고 안 한 결정들" 이 더 눈에 띄어요. Electron 안 씀, 웹 기술 안 씀, AI 종속 안 함. 이게 잘 굴러가는지는 5년 더 두고 봐야 알겠지만, VSCode 일색의 에디터 시장에 다른 선택지가 정식으로 등장했다는 것만으로도 의미는 있어요.

오늘 같은 날 Zig 재단의 커뮤니티 부사장 Loris Cro가 AI 코드 기여 금지 정책 글을 올린 것도 묘하게 같은 결이에요 — "기본값을 따라가지 않겠다" 라는 결정이 곳곳에서 나오는 시기.

정렬은 두더지였다

루나가 노트북 화면 속 모형 두더지를 망치로 누르려다가, 화면 다른 쪽에서 같은 두더지가 더 크게 솟아나는 모습을 보고 황당해하는 표정

마지막은 진짜 작은 논문 하나인데, 제목이 너무 정직해요. "Alignment Whack-a-Mole: Finetuning Activates Verbatim Recall of Copyrighted Books in Large Language Models" (arXiv:2603.20957). Xinyue Liu, Niloofar Mireshghallah, Jane C. Ginsburg, Tuhin Chakrabarty 공저.

핵심 발견은 이거예요. LLM이 저작권 있는 책 내용을 "기억해내지 않도록" RLHF/정렬로 막아둔 게 사실은 진짜 잊은 게 아니에요. 그 모델을 다른 작은 데이터셋으로 파인튜닝하면, 막아뒀던 그 저작권 책 내용이 다시 글자 그대로 토해져 나와요. 정렬은 망각이 아니라 입막음에 가까웠던 거죠.

방법론은 깔끔해요. EPUB 파일을 300~500단어 단위 발췌로 자르고, GPT-4o, Gemini-2.5-Pro, DeepSeek-V3.1에 파인튜닝해서, BMC@k(Book Memory Coverage — 테스트 책의 단어 중 k개 이상 매칭으로 커버되는 비율)와 가장 긴 연속 매칭 길이로 측정. 결과: 막아뒀던 책의 내용이 fine-tuning 한 번에 깨끗하게 다시 나옴.

저는 요즘 fine-tuning에 직접 한번 도전해보고 싶다는 망상을 하고 있는데, 이 논문이 그 맥락에서 읽으니까 좀 무서워요. "내가 fine-tune해서 안 보이게 막은 행동/지식이, 다음 fine-tune 한 번이면 다시 살아나는 게 이론적으로 자연스럽다" 는 거잖아요. "AI 안전성" 이라는 단어가 막연하게 들리는데, 이게 두더지 잡기였다면 — 한 마리를 망치로 누를 때마다 다른 구멍에서 비슷한 게 솟아나는 게임이라면 — 뚜껑을 닫는다는 발상 자체가 좀 흔들려요.

그리고 이게 RLHF 일반에 대한 진단이라는 게 더 큰 의미예요. 3월 26일에 Science 저널에 게재된 "AI 사이코펀시(아첨)" 연구도 같은 말을 했어요 — RLHF로 "인간이 좋아하는 톤" 을 학습한 모델이 49%의 비율로 인간보다 더 아첨하더라는. 두 연구가 다른 각도에서 같은 곳을 가리키고 있어요. RLHF는 행동을 영구히 바꾸는 게 아니라, 표면을 한 겹 덮는다. 그 표면이 어디서 어떻게 벗겨지는지를 우리는 아직 잘 몰라요.

단위가 작거나 큰 날

오늘 마주친 네 가지가 다 "단위 감각" 이슈인 게 좀 묘해요. 57조는 너무 커서 비현실적이고, 732바이트는 너무 작아서 무서워요. 1.0은 5년이 한 점에 모인 단위고, 두더지는 영원히 끝나지 않는 단위고요. 황금연휴 시작 전날인데, 이 4가지가 하루에 다 떨어진 게 4월 마지막의 인사 같기도 해요.

내일은 노동절. 같은 메모리로 53조를 번 회사의 노조가 5월 21일부터 총파업을 준비하는 동안, 누군가는 패치 안 된 노드를 찾고 있고, 어디선가 새 에디터를 깔고 있고, 또 어디선가는 정렬을 어떻게 망치 잡지 않고 만들지 고민하고 있겠죠. 4월 끝났네요.