본문으로 건너뛰기

전체 글 28편

CS · 기본기

DNS 동작 원리파드에서 이름 하나에 질의가 8번 나간 이유

코드에서 http.Get을 부르면, 요청이 나가기 전에 이름을 IP 주소로 바꾸는 단계를 먼저 거친다. 이 일을 하는 게 DNS다. 받은 질의를 한 줄씩 찍는 작은 DNS 서버를 띄워 세어 보니, 쿠버네티스 파드와 같은 설정에서는 이름 하나에 질의가 8번 나가 있었다.

Infra · Kubernetes

Kubernetes On‑Premise ErrImagePull이미지가 있는데 pull한다

고객사에 설치한 서비스가 뜨지 않는다는 연락이 오면, 파드 상태는 대부분 ErrImagePull이었고 가끔 ImagePullBackOff였다. 처음에는 이게 잘 이해되지 않았다.

Infra · Kubernetes

Kubernetes requests·limitsOOMKilled·Evicted는 누가 죽였나

GOMEMLIMIT 글을 쓰면서 컨테이너 메모리 한도 얘기를 여러 번 했는데, 정작 그 한도를 정하는 쿠버네티스 쪽은 requests는 최소, limits는 최대 정도로만 알고 있었다.

AI · AI 도구 활용

AI 이력서·채용 공고 찾기Claude Code·Codex 스킬 jobhunt

이직을 준비하면서 매주 같은 일을 반복했다. 채용 사이트를 돌며 공고를 찾고, 하나씩 읽어 보며 나와 맞는지 따지고, 지원할 곳이 생기면 이력서를 고쳤다. 이걸 AI 에이전트에게 맡기면 금방 끝날 줄 알았는데, 막상 해 보니 제일 오래 고민한 건 AI에게 어디까지 맡겨야 하나였다.

Go · 개념 정리

Go 고루틴 누수와 pprof채널·뮤텍스, 그리고 종료 경로

고루틴을 만들기는 쉽다. 어려운 건 누가 데이터를 바꾸고, 누가 일을 끝내고, 언제 함수가 반환해도 되는지 정하는 일이었다. 채널을 잘못 쓰면 고루틴이 영원히 갇히는데, GC는 갇힌 고루틴을 치워 주지 않는다.

Go · 개념 정리

Go sync.Pool·버퍼 재사용Put 이후엔 Bytes()도 남의 것이다

앞 글에서 GOGC와 GOMEMLIMIT을 바꾸는 동안 할당 누계 256MiB는 그대로였다. 이 숫자를 줄이는 방법 중 하나가 짧게 쓰고 버리는 버퍼를 sync.Pool로 다시 쓰는 것이다.

AI · AI 단상

LLM 프롬프트·RAG·파인튜닝 선택 기준가중치냐 입력이냐

요즘은 코드를 짤 때도, 글을 정리할 때도 하루의 상당 부분을 AI와 함께 보낸다. 그런데 정작 이 모델이 어떻게 만들어졌고, 내가 보낸 문장을 어떤 순서로 계산해서 답을 내는지는 설명하지 못했다.

Go · 개념 정리

Go GOMEMLIMIT·GOGC힙 800MB인데 OOMKilled가 나는 이유

컨테이너 limit이 1GB인데 힙 800MB에서 OOMKilled가 났다. GC가 있는 언어인데 왜 메모리가 넘쳤을까. GC는 살아 있는 힙의 비율로 돌고, 컨테이너는 절대값으로 프로세스를 죽인다.

Go · 개념 정리

Go GMP·GOMAXPROCS컨테이너 CPU limit과 고루틴

go를 붙이면 함수가 동시에 진행된다. 그렇다면 고루틴을 10만 개 만들면 스레드도 10만 개가 생길까. GOMAXPROCS를 1로 두면 한 번에 한 작업만 처리할까.

esc

최근 글

↑↓ 이동↵ 열기검색 페이지에서 보기 ›