본문 바로가기
전체 1408
1396
Database3분 읽기
UUID vs 자동증가 — 기본키로 무엇을 쓸까
순차 정수 ID는 간단하고 빠르지만 예측 가능하고 분산에 약하다. UUID는 겹칠 걱정이 없지만 크고 인덱스에 부담. 상황별 선택 기준.
#Database#UUID#PrimaryKey
2026.07.14
1395
Database3분 읽기
인덱스의 단점 — 언제 인덱스를 만들지 말아야 하나
인덱스는 조회를 빠르게 하지만 공짜가 아니다. 쓰기 성능 저하, 저장공간, 안 타는 인덱스까지. 무작정 다는 게 답이 아닌 이유.
#Database#Index#Performance
2026.07.13
1394
Backend3분 읽기
REST API 버저닝 전략 — URL·헤더 어느 쪽이 정답인가
API를 바꾸면 기존 클라이언트가 깨진다. /v1/ URL 방식과 헤더 방식의 장단점, 그리고 애초에 버전을 덜 올리는 하위호환 설계까지.
#API#REST#Versioning
2026.07.13
1393
Database3분 읽기
SQL JOIN 완벽 이해 — INNER·LEFT·RIGHT 언제 무엇을
두 테이블을 합칠 때 INNER는 교집합, LEFT는 왼쪽 전부. 이 차이 하나로 결과 행 수가 달라지고 버그가 생긴다. 그림처럼 이해하는 JOIN 정리.
#SQL#JOIN#Database
2026.07.12
1392
Tools3분 읽기
Git stash — 작업을 잠시 치워두고 브랜치 옮기기
커밋하기 애매한 작업 중에 급하게 다른 브랜치로 가야 할 때, stash로 변경사항을 잠시 서랍에 넣어두고 나중에 꺼내는 법. pop·apply·list 실전 정리.
#Git#stash#CLI
2026.07.12
1391
Tools3분 읽기
좋은 커밋 메시지 쓰는 법 — Conventional Commits
"fix", "수정함" 같은 커밋 메시지는 6개월 뒤 나를 괴롭힌다. 왜·무엇을 남기는 규칙과 Conventional Commits로 자동 changelog까지.
#Git#Commit#Convention
2026.07.11
1390
AI3분 읽기
AI 코딩 도구 잘 쓰는 법 — 프롬프트보다 컨텍스트 관리
Copilot·Cursor·Claude Code가 엉뚱한 코드를 낸다면 프롬프트가 아니라 컨텍스트 문제일 때가 많다. 좋은 결과를 얻는 실전 습관을 정리한다.
#AI#Coding#Productivity
2026.07.10
1389
AI3분 읽기
LLM temperature와 top_p — 출력이 매번 다를 때 조절법
같은 질문에 답이 들쭉날쭉하거나 너무 뻔하다면 샘플링 파라미터를 만질 때다. temperature와 top_p가 무엇을 조절하는지, 용도별 권장값까지.
#LLM#Temperature#Sampling
2026.07.10
1388
AI3분 읽기
LLM 컨텍스트 윈도우 — 길다고 다 좋은 게 아니다
컨텍스트 윈도우가 크면 다 넣으면 될까? "중간을 잊는" 현상과 비용·지연 때문에 무작정 채우면 오히려 답이 나빠진다. 제대로 쓰는 법.
#LLM#Context#Prompt
2026.07.09
1387
Backend4분 읽기
타임존 지옥 — UTC로 저장하고 변환해서 표시하기
"서버에선 맞는데 사용자에겐 9시간 어긋난다"는 타임존 문제의 정석 해법. 저장은 UTC, 표시할 때만 변환. 흔한 함정까지 정리한다.
#Timezone#DateTime#UTC
2026.07.09
1386
Backend4분 읽기
SQL 인젝션, 아직도 1위 취약점 — 원리와 막는 법
문자열로 쿼리를 조립하면 입력값이 SQL 문법으로 해석돼 뚫린다. 파라미터 바인딩(prepared statement) 하나면 대부분 막힌다. 원리와 실전 방어.
#Security#SQL#Injection
2026.07.08
1385
Backend4분 읽기
API 키가 GitHub에 올라갔을 때 — 유출 대응 절차
커밋에 실수로 넣은 키는 히스토리에 영원히 남는다. .gitignore로는 못 지운다. 즉시 폐기부터 히스토리 제거까지 올바른 대응 순서를 정리한다.
#Security#Git#Secret
2026.07.08