2진수 16진수 변환 원리, 자리값·4비트 묶음·2의 보수 총정리
진법 변환은 자리값만 알면 끝나요. 10진수는 나눗셈 나머지를 거꾸로 읽고, 2진수↔16진수는 4비트씩 묶으면 바로 바뀌어요. 156이 10011100·0x9C가 되는 과정, 2의 보수로 음수 표현, 색상·권한·비트마스크 실무 예와 JS·파이썬 코드까지 정리했어요.
안전한 비밀번호 만들기, 길이·엔트로피 계산과 무차별 대입 시간
비밀번호 강도는 엔트로피 = 길이 × log2(문자 종류 수)로 계산해요. 특수문자 섞은 8자(52비트)보다 소문자 16자(75비트)가 훨씬 강한 이유, 무차별 대입 시간 표, 패스프레이즈, NIST 권고, Math.random을 쓰면 안 되는 이유까지 정리했어요.
URL 인코딩 원리와 한글 URL, encodeURI vs encodeURIComponent 차이
URL 인코딩은 문자를 UTF-8 바이트로 바꾼 뒤 바이트마다 %XX로 쓰는 방식이라 한글 1자가 9자로 늘어요. encodeURI와 encodeURIComponent가 무엇을 남기는지, 공백 %20과 +, 이중 인코딩·EUC-KR 깨짐·URIError까지 실제 실행 결과로 정리했어요.
이모지 글자 수가 2자·11자로 세지는 이유와 grapheme 세는 법
눈엔 한 글자인 이모지가 어디선 2자, 어디선 11자로 세져요. ZWJ로 이어 붙인 가족 이모지가 코드 포인트 7개·UTF-16 11칸인 이유를 직접 세어 보여주고, Intl.Segmenter로 사람 기준 글자 수를 세는 코드까지 정리했습니다.
JWT 보안 체크리스트 — alg none, 알고리즘 혼동, 토큰 저장 위치
JWT 사고는 규격이 아니라 쓰는 방식에서 나요. verify 옵션으로 막히는 alg none·알고리즘 혼동을 재현하고, 약한 비밀 키가 얼마나 빨리 풀리는지 계산했어요. 키 관리, 페이로드, 저장 위치까지 10개 항목으로 정리했습니다.
타임존 처리 원칙 — KST·UTC 저장과 DB 타입, 날짜 집계 함정
저장과 계산은 UTC로, 표시는 현지 시간으로가 원칙이에요. KST가 UTC보다 9시간 빨라 생기는 일별 집계 어긋남, PostgreSQL timestamptz와 MySQL TIMESTAMP·DATETIME 차이, 날짜만 있는 값과 서머타임 반복 일정 함정까지 코드로 정리했습니다.
DB 기본키 UUID vs 자동증가 정수, UUIDv7이 인덱스에 유리한 이유
자동증가 정수는 작고 빠르지만 분산 생성과 외부 노출에 약하고, UUID v4는 랜덤이라 B-Tree 인덱스 페이지가 흩어져요. 50만 건 시뮬레이션에서 v4식 랜덤 삽입은 페이지 44% 증가, 작업 페이지 53배였어요. v7이 이를 해결하는 원리와 저장 방식을 정리했어요.
WCAG 명도 대비 4.5:1 기준과 계산 공식, 통과하는 색 찾는 법
본문 글자는 배경과 명도 대비 4.5:1, 큰 글자와 UI 요소는 3:1이 WCAG AA 기준이에요. 상대 휘도 공식과 계산 코드, 흰 배경 회색의 하한선 #767676, 인기 파랑 #3B82F6 버튼이 흰 글자와 3.67:1로 미달인 이유까지 직접 계산해 정리했어요.
UUID v4 v7 차이, 128비트 구조와 충돌 확률을 계산으로 정리
UUID v4는 122비트가 전부 랜덤이고, v7은 앞 48비트에 밀리초 시각을 넣어 생성 순서대로 정렬돼요. 8-4-4-4-12 구조에서 버전·variant 읽는 법, 10억 개를 만들어도 충돌 확률 10의 -19승인 계산, v7에서 시각을 꺼내는 법까지 정리했어요.
자소서 글자 수와 생기부 NEIS 바이트 — 기준이 달라 생기는 착오
자소서는 공백 포함·제외로, 생기부 NEIS는 바이트로 세요. 한글 3바이트·영문 1바이트·엔터 2바이트 계산으로 1500바이트가 몇 자인지, 사이트마다 숫자가 다른 이유와 제출 전 체크리스트까지 정리했습니다.
Base64 용도 5가지와 용량 33% 증가 원리 — data URI·이메일·PEM
Base64는 data URI, 이메일 첨부, HTTP Basic 인증, JSON 속 바이너리, PEM 인증서에서 쓰여요. 3바이트가 4글자가 되는 원리와 입력 크기별 실제 증가율, gzip 후엔 차이가 얼마나 줄어드는지 직접 재 본 결과까지 정리했습니다.
액세스 토큰·리프레시 토큰 만료 시간 정하는 법과 갱신 흐름 설계
액세스 토큰은 5~15분, 리프레시 토큰은 1~14일이 흔한 출발점이에요. 만료 시간에 따른 갱신 부하를 계산해 보고, 리프레시 토큰 회전과 재사용 감지, 동시 갱신 경합, 시계 오차, exp 밀리초 버그까지 Node 코드로 확인했습니다.
이메일·전화번호·한글 이름 정규식 검증, 정상 사용자를 막는 함정
검색해서 나온 이메일 정규식 5개를 정상 주소 12개로 시험해 보니 엄격한 패턴은 10개를 막았어요. 이메일은 느슨하게 + 인증 메일, 전화번호는 정규화 후 검사, 한글 이름은 NFC 정규화와 길이 완화가 답이에요.
정규식 탐욕적·게으른 매칭 차이와 ReDoS, 서버를 멈추는 패턴
정규식이 너무 많이 잡히면 탐욕적 수량자, 특정 입력에서 CPU 100%로 멈추면 재앙적 백트래킹(ReDoS)이에요. ^(a+)+$ 가 글자 2개마다 4배씩 느려지는 걸 직접 재 보고, 위험한 패턴 모양과 막는 법을 정리했습니다.
초·밀리초 타임스탬프 혼동 버그 — 1970년·5만 년이 찍히는 이유
화면에 1970년 1월이 찍히거나 연도가 5만 년대로 나오면 거의 확실히 초와 밀리초를 섞은 거예요. 언어별 기본 단위(JS는 밀리초, Python·JWT는 초)와 자릿수로 구분하는 법, 코드로 안전하게 변환하는 습관을 정리했습니다.
JSON YAML XML 차이 — 용량·파싱 속도 실측과 고르는 기준
API는 JSON, 사람이 고치는 설정은 YAML, 문서·표준 연동은 XML이 기본값이에요. 같은 데이터 1,000건으로 용량과 파싱 속도를 직접 재 보고, YAML이 NO·12:30·012345를 엉뚱하게 읽는 함정까지 정리했습니다.
한글 한 글자 몇 바이트? UTF-8 3바이트·EUC-KR 2바이트 차이
한글 한 글자는 UTF-8에서 3바이트, EUC-KR에서 2바이트예요. 같은 문장이 왜 어디선 100바이트, 어디선 150바이트인지 바이트 구조로 보여주고, 글자가 깨지는 이유와 EUC-KR이 못 담는 한글, 바이트 수 계산 코드까지 정리했습니다.
디자인 시스템 컬러 스케일 만들기 — 50~950 단계와 OKLCH 생성 코드
브랜드 색 하나로 50~950 컬러 스케일을 만드는 순서와 OKLCH 기반 생성 코드를 정리했어요. HSL 10% 균등 분할은 어두운 3단계가 검정으로 뭉치는 이유, 단계별 명도 대비로 용도를 정하는 법, 원시·의미 토큰 2층 구조까지 실제 계산으로 보여드려요.
URL-safe Base64(Base64URL) 차이와 패딩 = 복원, Incorrect padding 해결
표준 Base64의 +, /, = 는 URL에서 공백·경로·구분자로 오해돼 토큰이 가끔 깨져요. Base64URL은 -와 _를 쓰고 패딩을 뺀 변형이에요. JS·Python·Java 변환 코드, Incorrect padding 같은 실제 에러 해결법을 정리했습니다.
HEX RGB HSL 차이와 변환 공식, 상황별 CSS 색상 표기 고르는 법
HEX·RGB·HSL은 같은 색을 다르게 적은 것뿐이에요. 주고받을 땐 HEX, 계산은 RGB, 밝기 조절은 HSL이 편해요. 변환 코드와 정수 HSL 반올림 오차, L 50%인데 밝기가 13배 차이 나는 이유, oklch까지 실측으로 정리했어요.
API 응답 디버깅 순서 — 데이터가 안 뜰 때 확인하는 6단계
화면에 데이터가 안 뜰 때 코드부터 고치지 마세요. 요청 → 상태 코드 → Content-Type → 본문 구조 → 기대값 비교 → 코드 순으로 좁히면 대부분 10분 안에 끝나요. curl·jq 명령과 응답 구조 비교 코드까지 정리했습니다.
Unix 타임스탬프란? 2038년 문제가 생기는 이유와 점검할 곳
Unix 타임스탬프는 1970년 1월 1일 UTC부터 센 초예요. 32비트 부호 정수에 담으면 2038년 1월 19일에 음수로 뒤집혀 1901년이 찍혀요. 비트 단위로 왜 그런지 보여주고, 정수 폭별 한계 연도와 지금 점검할 곳을 정리했습니다.
정규식 기초 문법 치트시트 — 10가지로 읽는 법과 JS·Python 차이
정규식은 자주 쓰는 문법 10가지(문자 클래스, 수량자, 앵커, 그룹, 플래그 등)만 알면 대부분 읽혀요. 끊어 읽는 법, 한글 매칭, JS와 Python에서 결과가 달라지는 지점, 실제 에러 메시지까지 예제로 정리했습니다.
Base64는 암호화가 아니다 — 인코딩·암호화·해시 차이와 올바른 사용법
Base64는 키 없이 누구나 1초 만에 되돌리는 인코딩이라 비밀을 지켜 주지 못해요. 인코딩·암호화·해시의 차이를 Node 코드로 직접 비교하고, 비밀번호와 민감 데이터를 실제로 어떻게 저장해야 하는지 정리했습니다.
JWT 구조와 서명 원리 — 헤더·페이로드·서명, HS256과 RS256 차이
eyJ로 시작하는 JWT는 헤더.페이로드.서명 세 부분이고, 앞의 둘은 누구나 읽을 수 있는 Base64URL이에요. Node 내장 crypto로 HS256 토큰을 직접 만들고 검증해 보고, HS256·RS256·ES256의 토큰 길이와 속도를 실측해 비교했습니다.
JSON 파싱 에러 Unexpected token 원인 6가지와 해결법 총정리
Unexpected token, Unexpected end of JSON input, Expecting value… JSON 파싱 에러는 원인이 6가지 안에 다 들어가요. Node·Python 실제 에러 메시지별 원인, 위치 찾는 코드, 보이지 않는 문자 잡는 법까지 정리했습니다.