TECH NOTES
기술노트
현장에서 검증된 개발 지식을 기록합니다.
149414931492149114901489148814871486148514841483
AI
전문가 혼합(MoE) — 파라미터는 크게, 계산은 조금만
토큰마다 일부 전문가만 켜서 파라미터는 키우고 계산은 아끼는 MoE 구조. 라우팅과 로드 밸런싱, 그리고 메모리는 왜 못 아끼는지 그 대가까지 정리했다.
Etc
2의 보수 — 컴퓨터가 음수를 표현하는 방법
2의 보수는 비트를 뒤집고 1을 더해 음수를 만드는 규칙입니다. 덧셈 회로로 뺄셈까지 되는 이유, -128~127 비대칭, 정수 오버플로와 부호 함정을 직접 계산하며 설명합니다.
Database
work_mem — 정렬과 해시가 디스크로 새는 순간
정렬·해시가 디스크로 스필하면 쿼리가 급격히 느려집니다. work_mem이 연산당이라는 함정, EXPLAIN으로 스필을 잡는 법, OOM 없이 안전하게 올리는 국소 튜닝.
Infra
journald — systemd의 구조화 로깅 제대로 쓰기
journald가 로그를 구조화 필드로 저장하는 원리와, journalctl 필터 실전, 재부팅 시 로그가 날아가는 휘발성 함정과 영구 저장 설정까지 정리했습니다.
Backend
HyperLogLog — 수억 개의 유니크를 12KB로 세는 법
수억 개의 유니크 방문자를 12KB로 추정하는 HyperLogLog. 앞자리 0 개수라는 직관부터 메모리·오차 맞교환, 병합(union)의 위력까지 실무 관점으로 풀었습니다.
Frontend
reading-flow · reading-order — 탭 순서가 화면과 어긋날 때
order로 화면 배치를 바꿨더니 키보드 탭 순서가 엉켰다면 reading-flow·reading-order가 답입니다. tabindex 지옥 없이 시각 순서와 포커스 순서를 맞추는 CSS 접근성 기법을 예제로 설명합니다.
AI
토크나이저와 BPE — LLM이 글자가 아니라 토큰을 보는 이유
LLM이 글자 대신 토큰을 보는 이유와 BPE의 병합 원리. 한국어가 토큰을 더 먹는 까닭, 숫자 계산 실수, 프롬프트 공백까지 토큰화가 부르는 실전 함정을 짚었다.
Tools
SSH 멀티플렉싱(ControlMaster) — 접속을 재사용해 빨라지는 법
SSH 멀티플렉싱(ControlMaster)은 열린 연결 하나를 재사용해 반복 접속을 인증 없이 빠르게 만듭니다. ~/.ssh/config 세 줄 설정, -O 제어 명령, 주의점까지 정리했습니다.
Database
LISTEN/NOTIFY — PostgreSQL만으로 실시간 알림 구현하기
별도 메시지 브로커 없이 DB만으로 실시간 알림을. LISTEN/NOTIFY의 트랜잭션 결합·페이로드 한계와, 유실을 막는 아웃박스 패턴, 커넥션 풀 함정까지 정리했습니다.
Infra
BGP 기초 — 인터넷을 잇는 경로 프로토콜
인터넷의 뼈대인 BGP가 AS와 프리픽스로 경로를 정하는 법, 그리고 하이재킹·경로 누수 같은 대형 장애의 원인과 RPKI까지. 개념을 쉽게 풀었습니다.
Backend
램포트·벡터 시계 — 분산 시스템에서 사건의 순서를 세는 법
물리 시계로는 분산 사건의 순서를 믿을 수 없습니다. 램포트 타임스탬프와 벡터 시계로 인과관계와 동시성을 판별하는 원리를 코드와 비교표로 설명합니다.
Frontend
CSS Custom Highlight API — DOM 안 건드리고 텍스트 하이라이트하기
검색어 하이라이트에 더는 span을 끼워 넣지 마세요. CSS Custom Highlight API로 DOM은 그대로 두고 Range와 ::highlight()만으로 텍스트를 강조하는 3단계 패턴과 우선순위·제약을 정리했습니다.