잡소리 쓰는 곳
파일 하나짜리 DB를 복제하겠다고? 분산 SQLite 뒤에 있는 건 결국 로그다

파일 하나짜리 DB를 복제하겠다고? 분산 SQLite 뒤에 있는 건 결국 로그다

SQLite는 파일 하나다. 그런데 12년째 사람들이 그걸 여러 대에 복제하겠다고 달려들고 있고, 방식은 서로 완전히 다르다. 복제의 뿌리는 “데이터 파일을 복사하는 것”이 아니라 “변경 기록(로그)을 옮기는 것”이다. 문장 복제 -> 로그 복제 -> 합의 -> 로그 스트리밍 -> 병합으로 이어진 갈래는 결...

도구만 바꾸고 일은 그대로 두면 돈은 안 번다, 업무 자동화 100년 삽질사

도구만 바꾸고 일은 그대로 두면 돈은 안 번다, 업무 자동화 100년 삽질사

Apollo 수석 이코노미스트가 AI 투자는 넘쳐나는데 빅테크 7개 바깥의 493개 회사에선 매출도 마진도 그대로라고 썼다. 개발자들 댓글은 “원래 이런 건 늦게 나온다”가 대세다. 그 말이 맞는지 보려면 업무 자동화가 예전엔 어떻게 굴러갔는지부터 봐야 한다. 도구를 사다 놓는 것과 일하는 방식이 바뀌는 것은 다른 사건이고, 돈은 뒤쪽에서 나온...

컨텍스트 100만 토큰이라는데, 원래 AI는 직전 두 단어밖에 못 봤다

컨텍스트 100만 토큰이라는데, 원래 AI는 직전 두 단어밖에 못 봤다

Kimi가 K3.1 Pro를 내놓으면서 컨텍스트 윈도우 100만 토큰을 자랑스럽게 적어놨다. 다들 숫자만 보는데, 이 숫자가 왜 자랑거리인지는 “기억”이 원래 얼마나 비싼 물건이었는지 알아야 보인다. 언어 모델의 기억력은 “직전 몇 단어만 본다”에서 시작해서, 요약 하나에 몰아넣기를 거쳐, 필요한 곳을 직접 훑는 attention으로 ...

반경 30분 안의 위키가 어떻게 0.1초 만에 나오냐, 좌표 검색의 뿌리 얘기

반경 30분 안의 위키가 어떻게 0.1초 만에 나오냐, 좌표 검색의 뿌리 얘기

걸어서 30분 안에 있는 위키피디아 항목만 보여주는 사이트가 HN에 올라왔다. 댓글 중에 위키 기본 기능인 Special:Nearby를 감싼 래퍼 같다는 말이 있는데, 내가 직접 확인한 건 아니다. 어쨌든 이 사이트 하나 만드는 데 필요한 진짜 기술은 “내 좌표 근처에 있는 것들을 빨리 찾는 법”이다. 좌표 두 개의 거리는 공식 하나로 구하지만...

전화번호부 회사를 고소했다, DNS 리졸버가 대체 뭐길래 나라 하나를 뜬다

전화번호부 회사를 고소했다, DNS 리졸버가 대체 뭐길래 나라 하나를 뜬다

Quad9가 11월 24일부터 프랑스에서 서비스를 접는다. 법원이 “특정 도메인 몇 개의 조회를 막으라”고 했는데, 그걸 못 하겠다고 나라째 나가는 거다. DNS는 이름을 숫자 주소로 바꿔주는 전화번호부고, 리졸버는 그 번호부를 대신 뒤져주는 심부름꾼이다. 심부름꾼이 “그런 번호 없는데?”라고 거짓말을 해야 차단이 되는데, 그 ...

앱이 하드웨어 주소를 외우던 시절 얘기, 그래서 iOS 커널이 안드로이드 폰에서 돈다

앱이 하드웨어 주소를 외우던 시절 얘기, 그래서 iOS 커널이 안드로이드 폰에서 돈다

iOS 16.5 커널(XNU)을 안드로이드 폰에서 부팅했다는 프로젝트가 올라왔다. 다들 “왜 하냐”부터 묻는데, 진짜 신기한 건 “된다”는 쪽이다. 앱과 커널 사이의 약속이 하드웨어보다 오래 살아남아서 되는 거다. 커널의 진짜 일은 앱이 하드웨어를 몰라도 되게 만드는 것이다. 앱은 syscall이라는 약속만 보고, 하드웨어는 드라이버가 가린다....

pip install 한 줄이 내 홈 디렉토리를 털 수 있는 이유, 파이썬 패키징 짧은 역사

pip install 한 줄이 내 홈 디렉토리를 털 수 있는 이유, 파이썬 패키징 짧은 역사

LiteLLM 1.107.0이 PyPI에서 털렸다. 그런데 진짜 웃긴 건 악성코드가 litellm을 import하지 않아도 돈다는 거다. 보통 “악성 패키지”라고 하면 그 패키지를 import하는 순간 터진다고 생각한다. 그러면 안 쓰는 패키지는 깔려 있어도 무해하다는 결론이 나온다. 이번 건은 그 가정이 안 맞는다. 설치만 끝나면, 그 머신에서 파...

게임 엔진 없이 게임 만들던 시절, 엔진이 남의 집 살림이 되면 생기는 일

게임 엔진 없이 게임 만들던 시절, 엔진이 남의 집 살림이 되면 생기는 일

BioWare가 문을 닫는다는데, 이유를 경영진 탓으로만 돌리면 반만 본 거다. 개발자 입장에서 같이 볼 게 하나 더 있다. 엔진이다. 먼저 밝혀둘 게 있다. 원문 기사는 폐쇄 소식과 감원 규모, EA의 로드맵을 다루는 뉴스이고, 엔진 이야기는 한 줄도 없다. 그러니 이 글은 “기사가 엔진 때문이라고 했다”는 글이 아니다. 기사를 계기로 게임 엔진이...

인증서를 "취소"한다는 말이 실제로 뭘 하는지, CRL부터 CRLite까지

인증서를 "취소"한다는 말이 실제로 뭘 하는지, CRL부터 CRLite까지

eMudhra 중간 CA 8개가 폐기됐다는데, 정작 curl은 “verify ok”를 뱉었다. 폐기가 안 먹힌 게 아니라 curl이 폐기 여부를 아예 안 물어본 거다. 처음 이 얘기를 들으면 의문이 두 개 생긴다. 하나는 “폐기했으면 끝난 거 아니냐”이고, 다른 하나는 “애초에 중간 CA가 뭔데 그게 털리면 왜 난리냐”다. 이 글은 그 둘을 차례로 ...

free()한 메모리를 계속 쥐고 있던 대가, PHP 세션 업로드 UAF로 보는 수동 메모리 관리

free()한 메모리를 계속 쥐고 있던 대가, PHP 세션 업로드 UAF로 보는 수동 메모리 관리

PHP 코어에서 pre-auth RCE 두 건이 터졌는데 원인은 거창한 게 아니다. 이미 이사 간 메모리의 옛 주소를 계속 들고 있었다는 것, 그게 전부다. use-after-free(UAF)는 “반납한 메모리를 아직 내 것인 줄 알고 계속 쓰는” 버그고, 수동 메모리 관리 언어에서 수십 년째 반복된다. 이번 건은 업로드 진행률...