개발 도구, 값이 틀어지는 지점 찾기
왜 인코딩 → 데이터 → 토큰·스케줄 → API → 배포 순서인가
이 묶음은 요청 하나가 만들어져 나가는 순서를 따릅니다. 문자열을 전송 가능한 형태로 바꾸고(Base64·URL 인코딩), 본문 구조를 검증하고(JSON·YAML·정규식), 인증 토큰과 실행 시각을 확인한 뒤(JWT·크론), 실제 호출과 응답을 해석합니다(cURL 변환·HTTP 상태 코드). 문제가 생겼을 때도 같은 순서로 거꾸로 짚어 가면 어느 단계에서 값이 틀어졌는지 빨리 찾을 수 있습니다.
인코딩하면 길이가 얼마나 늘어나나
| 입력 | 방식 | 결과 길이 |
|---|---|---|
| 1KB 파일 | Base64 | 1,368자 |
| 100KB 파일 | Base64 | 136,536자 |
| 1MB 파일 | Base64 | 1,398,104자 |
| 한글 ‘가’ | URL 인코딩 | 9자 (%EA%B0%80) |
| ‘서울 날씨’ | URL 인코딩 | 39자 |
| 아무 길이 | MD5 | 32자(16진) |
| 아무 길이 | SHA-1 | 40자(16진) |
| 아무 길이 | SHA-256 | 64자(16진) |
계산: Base64 = 4 × ⌈바이트 ÷ 3⌉(패딩 포함), URL 인코딩 = UTF-8 바이트마다 %XX 3자, 해시 16진 문자열 = 비트 ÷ 4
Base64는 원본보다 약 3분의 1 커지므로 큰 이미지를 data URI로 넣으면 문서 크기가 그만큼 늘어납니다. 한글은 UTF-8에서 한 글자가 3바이트라 URL에 넣으면 9자가 되고, 쿼리스트링 길이 제한에 생각보다 빨리 닿습니다. 해시는 입력 길이와 상관없이 결과 길이가 고정이라, 길이가 다르면 알고리즘부터 다르다는 신호입니다.
로컬 LLM에 필요한 메모리
| 양자화 | 문맥 8K | 문맥 32K |
|---|---|---|
| Q4_K_M | 8.0 | 11.2 |
| Q8_0 | 11.6 | 14.8 |
| F16 | 19.1 | 22.4 |
계산: 가중치(매개변수 × 비트 ÷ 8) + KV 캐시(2 × 레이어 × KV 헤드 × 헤드 차원 × 문맥 × 2바이트) + 오버헤드 2GB — LLM 메모리 계산기와 같은 식
같은 모델이라도 문맥 길이를 8K에서 32K로 늘리면 KV 캐시가 네 배가 되어 필요한 메모리가 몇 GB씩 늘어납니다. GPU 메모리가 빠듯하다면 양자화 단계를 낮추기 전에 문맥 길이부터 줄여 보는 것도 방법입니다. LLM 메모리 계산기와 토큰 계산기로 모델과 입력 길이를 함께 맞춰 보세요.
자주 하는 실수
- Base64·JWT를 암호화로 여기기. 둘 다 누구나 되돌릴 수 있는 인코딩입니다. JWT 페이로드는 서명만 되어 있을 뿐 내용은 그대로 읽히므로 비밀번호·개인정보를 넣으면 안 됩니다.
- JWT exp를 밀리초로 비교하기. exp·iat는 초 단위 유닉스 시간입니다. 자바스크립트의 Date.now()는 밀리초라 1000으로 나눠 비교해야 합니다.
- 크론 시간대를 확인하지 않기. 서버가 UTC라면 ‘0 9 * * *’는 한국 시각 18시에 실행됩니다. 또 일(day-of-month)과 요일을 둘 다 지정하면 표준 크론은 둘 중 하나만 맞아도 실행합니다.
- MD5·SHA-1로 비밀번호를 저장하기. 파일 무결성 확인에는 쓸 수 있어도 비밀번호 저장에는 bcrypt·Argon2처럼 느리게 설계된 전용 함수를 써야 합니다.
- 리다이렉트 코드를 대충 고르기. 301·302는 클라이언트가 POST를 GET으로 바꿀 수 있고, 308·307은 메서드를 유지합니다. API 주소를 옮길 때는 이 차이가 동작을 바꿉니다.
참고 자료
- IETF RFC 4648 — Base16, Base32, Base64 Encodings(새 창)rfc-editor.org
- IETF RFC 3986 — URI Generic Syntax(퍼센트 인코딩)(새 창)rfc-editor.org
- IETF RFC 7519 — JSON Web Token(새 창)rfc-editor.org
- IETF RFC 9110 — HTTP Semantics(3xx 리다이렉트)(새 창)rfc-editor.org
- OWASP — Password Storage Cheat Sheet(새 창)cheatsheetseries.owasp.org