가이드
도구의 작동 원리와 그 배경 개념을 다루는 깊이 있는 오리지널 글 — 바코드 체크 디지트부터 진법, 인코딩, 브라우저 프라이버시까지.
-
프로그램을 거치면 숫자가 바뀌는 이유
0.1 더하기 0.2가 0.30000000000000004로 나오고, 긴 ID는 끝자리를 잃고, 합계가 1원 어긋난다. 대부분은 하나의 설계 결정에서 나온다. 숫자가 정해진 비트 예산 안에서 2진 분수로 저장된다는 것이다.
-
글자가 깨져서 이상한 문자로 보이는 이유
이름이 é로 나오거나, 한글 파일이 알아볼 수 없는 문자의 벽이 되거나, 모든 특수문자가 검은 마름모가 된다. 텍스트는 바이트로 저장되고 인코딩은 그 바이트가 무슨 뜻인지에 대한 약속일 뿐이라, 깨진 모양이 어떤 약속이 어긋났는지를 알려준다.
-
QR 코드가 어떤 폰에서는 안 읽히는 이유
내 책상에서는 되는데 포스터에서는 안 된다. QR 코드는 깨끗한 여백 안에서 세 개의 모서리 사각형을 찾아 읽는 구조라, 스캔 실패는 대개 안에 든 데이터가 아니라 여백과 대비와 크기의 문제다.
-
PDF에서 검색이 안 되는 이유
페이지의 글자는 다 읽히는데 검색창은 아무것도 못 찾고, 드래그하면 글자 대신 그림이 잡힌다. PDF 페이지는 그리기 명령의 모음이고, 스캔된 페이지는 사진 한 장을 그릴 뿐이라 눈에 보이는 글자가 애초에 글자로 저장된 적이 없다.
-
업로드하면 사진이 돌아가는 이유
폰에서는 똑바로 보이던 사진이 업로드하고 나면 옆으로 누워 있다. 픽셀이 움직인 게 아니라, 카메라가 센서가 읽은 그대로 저장하고 어느 쪽이 위인지를 쪽지로 붙여둔 것이며, 모든 프로그램이 그 쪽지를 읽지는 않는다.
-
MP3 태그가 플레이어마다 다르게 보이는 이유
한 플레이어는 예전 앨범명을, 다른 플레이어는 새 앨범명을 보여주고, 앨범 아트는 휴대폰에서만 나옵니다. 대개 파일이 태그를 두 벌 갖고 있고, 플레이어마다 믿는 쪽이 다르기 때문입니다.
-
엑셀이 CSV를 망가뜨리는 이유와 막는 법
앞자리 0이 사라지고, 긴 주문번호의 마지막 자리가 바뀌고, 상품 코드가 날짜가 됩니다. 버그가 아니라 엑셀이 파일을 열면서 필드마다 형식을 추측하기 때문입니다.
-
유니코드 정규화와 보이지 않는 문자들
똑같아 보이는 두 문자열이 같지 않다고 판정되는 이유, NFC·NFD·NFKC·NFKD가 실제로 하는 일, 붙여넣은 텍스트에 숨는 보이지 않는 문자들, 그리고 텍스트를 안전하게 다루는 규칙.
-
얼버무리지 않고 이해하는 IP 주소와 서브넷
IP 주소의 실체, CIDR 표기를 읽고 프리픽스 안의 호스트를 세는 법, 절대 라우팅하면 안 되는 대역, IPv6에서 달라지는 계산, 그리고 주소를 문자열로 정렬하면 안 되는 이유.
-
크론 스케줄이 실제로 동작하는 방식
크론의 다섯 필드와 문법, 거의 모두가 잘못 아는 일/요일 규칙, 서머타임이 야간 작업에 하는 일, 그리고 재시작에도 살아남는 스케줄 설계법.
-
실무에서 쓰는 정규표현식
정규식 엔진이 문자열을 훑는 실제 방식, 앵커와 탐욕적 수량자가 결과를 뒤바꾸는 이유, 파국적 백트래킹이 무엇인지, 그리고 패턴으로 절대 파싱하면 안 되는 형식들.
-
색 대비와 접근성 있는 팔레트
WCAG 대비율이 실제로 측정하는 것, 괜찮아 보이는 색이 왜 여전히 실패하는지, 색각 이상이 그림을 어떻게 바꾸는지, 그리고 견디는 팔레트를 만드는 법.
-
CSV 파일을 망가뜨리지 않고 다루기
CSV가 계속 어긋나는 이유 — 따옴표, 구분자, 인코딩, 앞자리 0과 날짜 — 그리고 스프레드시트·JSON·SQL 사이에서 데이터를 조용한 손상 없이 옮기는 법.
-
비밀번호와 패스프레이즈: 무엇이 실제로 강하게 만드는가
왜 길이가 기호 치환을 이기는지, 강도 측정기가 어디서 오해를 부르는지, 패스프레이즈는 어떻게 작동하는지, 2단계 인증이 막아주는 것과 막지 못하는 것.
-
웹을 위한 이미지 압축과 크기 조정
화질을 망치지 않고 이미지를 가볍게 만드는 법 — 압축 전에 크기부터 줄이고, 포맷을 제대로 고르고, 품질 슬라이더가 실제로 무엇을 하는지 이해하기.
-
버그 없이 시간대와 Unix 타임스탬프 다루기
소프트웨어에서 시간이 왜 그렇게 다루기 어려운지 — UTC, Unix 타임스탬프, 시간대, 서머타임 — 그리고 가장 흔한 날짜 처리 버그를 막는 몇 가지 규칙.
-
ID 형식 고르기: UUID, ULID, Snowflake, 자동 증가
식별자 — 자동 증가 정수, UUID v4/v7, ULID, Snowflake ID — 를 고르는 실용 가이드와 고유성·정렬·크기·프라이버시의 트레이드오프.
-
해싱 vs 암호화 vs 인코딩: 무엇이 다른가
끊임없이 혼동되는 세 용어 — 해싱, 암호화, 인코딩 — 을 명확히 설명합니다. 각각의 용도, 언제 무엇을 쓸지, 피해야 할 실수까지.
-
진법과 텍스트 인코딩: 개발자를 위한 치트시트
2진법·8진법·10진법·16진법에 대한 실용 입문과, UTF-8·Base64·URL 인코딩을 통해 텍스트가 바이트가 되는 과정 — 실제로 필요한 규칙들.
-
브라우저 내 도구가 데이터를 안전하게 지키는 이유
클라이언트 측 도구가 어떻게 작동하는지, 전적으로 브라우저에서 실행된다는 것이 왜 데이터가 기기를 벗어나지 않음을 뜻하는지, 그리고 그 주장을 직접 검증하는 방법.
-
바코드 체크 디지트의 원리 (EAN-13, UPC-A, EAN-8)
소매 바코드의 GS1 모듈로-10 체크 디지트를 명확하고 실용적으로 설명합니다 — 어떻게 계산되고, 왜 오류를 잡아내며, 손으로 검증하는 방법까지.