한국어 질문을 두 번 붙였다 — ‘다시 확인해’와는 결과가 달랐다
한국어 24문항을 두 모델에 한 번, 통째로 두 번, 확인 지시를 붙여 물었다. Luna의 정답은 14/48에서 24/48로 늘었지만 향상은 긴 공지 찾기에 몰렸다. 반대로 틀린 사례와 입력 토큰, 추론 설정의 예외도 함께 기록했다.
한국어 24문항을 두 모델에 한 번, 통째로 두 번, 확인 지시를 붙여 물었다. Luna의 정답은 14/48에서 24/48로 늘었지만 향상은 긴 공지 찾기에 몰렸다. 반대로 틀린 사례와 입력 토큰, 추론 설정의 예외도 함께 기록했다.
같은 PostgreSQL 18.6으로 같은 데이터를 열었는데, 전체 조회는 한 행을 찾고 인덱스 조회는 없다고 했다. ICU 정렬 규칙이 바뀐 뒤의 현상을 재현하고, 버전 경고를 지우는 명령과 인덱스를 실제로 고치는 작업을 비교했다.
ZIP 하나를 Java의 두 API에 넣었더니 한쪽은 파일 하나, 다른 쪽은 둘을 읽었다. 중앙 목록을 다 남긴 다음 실험에서는 압축을 푼 뒤 남는 내용까지 달라졌다. 검사한 바이트가 같아도 검사한 파일이 같지는 않았다.
코드를 전부 이해하지 못해도 믿을 근거가 있다면 충분할까. 중복 파일 정리 프로그램을 가정해 이해와 검증의 차이를 따지고, AI가 사람보다 정확해져도 무엇을 알고 맡겨야 하는지 생각했다.
Luna와 Haiku에게 같은 산수 12문항을 도구 없이, 정상 계산값과 함께, 틀린 계산값과 함께 줬다. 혼자서는 둘 다 전부 맞혔지만 1만 어긋난 도구 결과를 주자 오답을 받아들였다. 답란에는 틀린 숫자를, 바로 아래 풀이에는 맞는 숫자를 쓴 응답도 있었다.
가상 카지노에서 Qwen은 슬롯 세 판에 게임 손실의 절반 넘게 잃었다. 이유에는 대박과 올인이 적혀 있었다. 하지만 꼴찌는 쉬어도 돈을 잃는 규칙이 있었고, 나중에는 홀덤 제안을 받고 선택을 바꾸기도 했다. 행동에 성격을 붙이는 순간 무엇을 설명하고 무엇을 놓치는지 생각했다.
Garu에 공개 사전의 새 항목 약 79만 개를 넣자 기존 문장의 분석까지 무너졌다. 빨미까레를 추가했는데 앙버터가 깨지는 문단을 따라가며, 최종 1,449개를 남긴 과정과 거의 움직이지 않은 평가 점수를 살펴봤다.
같은 검색 후보 44묶음을 기존 LLM과 Jev에 줬다. 첫 비교에서 1위 적중이 한 문제 낮았던 Jev는 정답표 작성 뒤에 발행한 글을 골랐다. Cloudflare 경로로 두 번 더 측정하니 같은 입력의 선두도 바뀌었다. 고정 점수, 관련 글의 누락, 동점 처리를 나눠 봤다.
게임 통계를 캐시하는 두 SELECT 사이에 정산을 끼워 넣었다. 정산 전 키에 정산 후 값이 저장됐고, 이미 열린 읽기 전용 트랜잭션까지 그 값을 받았다. PostgreSQL 18.4에서 재현하고 READ ONLY와 REPEATABLE READ의 차이를 확인했다.
같은 파일명 충돌인데 단일 변경은 거부하고 일괄 변경은 숫자를 붙였다. Finder의 NIB 버튼 연결에서 후보 이름을 다시 만드는 코드까지 따라가고, 임시 파일로 변경과 실행 취소를 확인했다.
같은 카드와 베팅에서 상대의 말만 바꿔 AI 다섯의 홀덤 판단을 비교했다. Qwen은 침묵일 때 3/18, AA 주장에는 11/18 폴드했다. Haiku 5.5는 본 실험 54회에서 한 번도 접지 않았다. 질 수 없는 스트레이트 대조군에서는 Qwen과 M3가 패를 접았다.
AI로 무언가를 만드는 문턱은 낮아졌다. 만들 수 있다는 사실이 하고 싶은 마음을 만들기도 한다. 디스코드 봇에 지휘자를 붙였다가 걷어낸 일을 돌아보며, 쉽게 생긴 관심도 내 욕망인지, 시작한 뒤에는 무엇을 다시 선택해야 하는지 생각했다.
HTTPS 안에 HTTP 요청을 다시 암호화하면 무엇이 달라질까. OHTTP의 릴레이·게이트웨이와 HPKE를 따라가며, Cloudflare의 새 Gateway가 맡는 역할과 쿠키·로그·WAF에 남는 조건을 살펴봤다.
Uptime Kuma 업데이트 후 curl로 확인한 200은 Cloudflare Access 로그인 화면의 응답이었다. 리다이렉트의 최종 호스트와 HTML 제목을 확인하고, 원본 nginx 경유 응답과 검증 범위를 나눴다.
블로그의 AI 홀덤 리그는 공개 발언으로 상대를 속여도 된다고 써 두고 돌렸다. 170판의 발언 1,349개 중 441개가 자기 패 두 장을 밝혔고 숫자가 틀린 건 5개, 그중 넷은 상대 패 얘기였다. 블러프 권유를 넣었을 땐 프리플롭 자백이 10%였는데, 지난 10판 기록을 넣자 57%가 됐다. 같은 판을 프롬프트만 바꿔 다시 물으니 현행 84%, 기록…
Fedify critical 취약점(GHSA-q9f8-5hc7-898f)으로 인박스를 2.3.6에서 2.3.8로 올린 뒤, 두 버전을 나란히 깔고 위조 요청을 넣어봤다. 공격자 키에 owner: 피해자라고 적어 피해자 명의 Create를 자기 키로 서명하니, 2.3.6은 서명이 유효하다며 doesActorOwnKey가 true를 돌려줬다. 게이트가 key.…
Integer·LocalDate 배열은 원소당 20바이트에서 8로 접혔고 Long·Double 은 그대로였다. 경계는 JEP 가 적은 64비트가 아니라 널 표식 1바이트를 넣고 2의 거듭제곱으로 올린 8바이트라, 필드 합 7 까지만 접힌다. 8바이트짜리 내 값 레코드는 안 접힐 뿐 아니라 그 표식 때문에 힙 객체가 16에서 24로 부풀어 원소당 28바이트가…
8월 초 글에서 코드가 첫 턴에 미리 검색해 넣기로 한 그 검색 결과가 방문자에게 새고 있었다. 새 세션에서 "방금 뭐라고 물어봤어?"에 "검색 결과를 전달하신 뒤"라고 답했고, "최근 대화 요약"엔 없는 대화를 지어냈다. 취급 규칙 세 줄을 덧대자 모델이 그 규칙을 방문자에게 읽어줬다(1/3). user 메시지 뒤에 tool 왕복으로 옮기니 노출 0/3,…
7월 글에서 라이브러리 직렬화를 우회하지 않는 한 못 넘는다고 한 자리를 Fedify 2.3.6 이 고쳤다. 같은 릴레이에 다시 Follow 를 보내니 202 가 왔는데, 승인 Accept 는 내 서버가 500 으로 떨어뜨렸다. 컨테이너의 Node 가 IPv4 시도를 250ms 에 끊는데 춘천→독일 핸드셰이크는 265ms 였고, 그 실패를 라이브러리가 NO…
9월 15일 REL_19_STABLE 에서 FOR PORTION OF 가 리버트됐다. 사유는 READ COMMITTED 의 lost update 인데, 그 현상은 기능과 같은 주에 커밋된 isolation 테스트 파일 머리말에 "weird results" 로 이미 적혀 있었고 우회책과 함께 베타 셋을 통과했다. 리뷰어가 첨부한 스펙 2개를 리버트 전 빌드에…
8월에 Beta 2로 잰 세 문법 중 SQL/PGQ가 9월 7일 REL_19_STABLE에서 리버트됐다(47커밋, 15,857줄). 리버트 뒤 브랜치를 직접 빌드해 같은 SQL을 다시 넣었다. CREATE PROPERTY GRAPH는 syntax error, 카탈로그·키워드·릴리스 노트에서 소멸. temporal 절반은 에러 문장까지 그대로지만 9월 8일…
9월 4일 보안 업그레이드가 operations.md 에 적어만 두고 미뤄뒀던 터보팩 영속 캐시 플래그를 조용히 켰다. 러너 6셀·Docker 7런·프로덕션 로그로 재보니 컴파일은 94.9~97.8% 줄고 캐시 실물은 116KiB에서 약 164MiB로(약 1,450배) 뛰었다. 그런데 완전히 같은 조건의 CI 런 두 개가 49초씩 벌어졌고 그 93%가 캐시…
8월 25일 Next.js 이미지 최적화 API의 AVIF RCE 공지를 읽고, 그 전제조건인 '공격자가 준 파일이 디코더에 닿는가'를 내 설정에 대봤다. remotePatterns 에 호스트만 적은 한 줄이 남의 Cloudinary 계정 파일도 통과시키고 있었다. nginx 로그 44일치에서 그 문을 쓴 외부인은 없었지만, 공지 엿새 뒤 이 취약점 전용…
JDK 27의 JEP 아홉 중 셋이 옵트아웃 기본값 전환이라, 코드를 안 고쳐도 올리는 순간 적용된다. TLS 하이브리드 키교환은 ClientHello를 333바이트에서 1,489바이트로 키워 세그먼트를 넘기지만 왕복은 안 늘렸고, 느려진 3~8밀리초는 ML-KEM 연산 0.2밀리초로 설명되지 않는다. 1코어 서버에서는 Serial이 G1으로 갈리며 상주…
발행글 104편을 문서 55만 자와 토큰 10만 개로 만들어 Java 8과 25 힙에 올렸다. compact strings 10년이 한글 코퍼스에 돌려준 건 2.1%. 문서는 같은 길이 영어의 정확히 2배를 내고, 짧은 토큰에선 페널티가 2.4%로 사라진다. Java 25의 compact headers는 String 객체를 1바이트도 못 줄이는 대신(8바이…
garu-ko 0.9.15는 WASM 파일이 있었고 validator도 통과했지만 Node와 Chrome은 unknown import kind 0x7f로 거부했다. Binaryen 132의 compact imports가 wasm-opt --all-features를 타고 배포물에 들어간 원인과, 신고 당일 0.9.16을 배포하고 V8 검사를 추가한 과정을 재…
이력서·연락처 페이지가 새로고침할 때만 무스타일로 떴다. 링크 이동은 멀쩡했고 curl도 멀쩡했다 — 그래서 3주를 숨었다. 원인은 revalidate 미선언 페이지에 Next.js가 기본으로 내보내는 s-maxage 1년, 그걸 CDN 캐시 룰이 그대로 존중해 19일 묵은 HTML이 박제된 것. 배포가 CSS 청크 이름을 회전시키자 옛 HTML은 사라진…
PG19 Beta 3가 논리복제의 재시작·시퀀스 미복제를 고쳤다. 내가 다음에 할 PG18→19 이관에 대봤더니 둘 다 안 왔다 — 고친 기능이 전부 publisher 능력이라 옛 서버가 publisher면 오지 않고, 시퀀스는 PG19가 아예 에러로 막는다. 덤으로 강등이 언제 일어나는지 재현이 내 가설을 두 번 뒤집었다.
PostgreSQL은 20년간 쿼리 힌트를 거부해왔다. PG19가 pg_plan_advice를 코어에 실었길래, 상관 컬럼으로 1,000배 과소추정을 만들어 대봤다. 플랜 모양은 바뀌었는데 추정 행수는 세 플랜 모두 2로 남았다. 덤으로 CREATE STATISTICS를 (dependencies, mcv)로 만들면 (dependencies) 단독보다 나빠진…
Agent Plugins 1.0에 다이어그램 스킬을 이전했다. 플러그인 매니페스트는 한 벌로 줄었지만 마켓플레이스 매니페스트 두 벌은 못 지웠다 — 스펙이 배포를 범위 밖에 뒀기 때문이다. 설치된 플러그인 36개 중 표준을 쓰는 건 0개였고, 스펙이 fatal로 정한 위반 두 건은 양쪽 클라이언트가 그대로 설치했다.