2026/02 34

쿠버네티스 로그와 모니터링 개념 정리: 운영에서 왜 중요한가

쿠버네티스에서 로그와 모니터링은 왜 더 중요할까HPA까지 설정했다면,이제부터는 “문제가 생겼을 때 어떻게 알아차릴 것인가”가 가장 중요한 질문이 된다.쿠버네티스 환경에서는 단순히 서버에 접속해서 로그를 보는 방식이 잘 통하지 않는다.Pod는 수시로 생성되고 사라진다문제가 발생한 Pod가 이미 사라졌을 수도 있다노드 단위가 아니라 서비스 단위로 상황을 봐야 한다그래서 쿠버네티스에서는로그(Log) 와 모니터링(Monitoring) 을 별도의 영역으로 명확히 나눠서 다룬다.로그와 모니터링은 다르다먼저 이 두 개념을 구분하는 게 중요하다.로그는 “무슨 일이 있었는지”,모니터링은 “지금 상태가 어떤지”를 보여준다.로그(Log)애플리케이션이 남긴 텍스트 기록에러 원인, 요청 흐름 추적문제 발생 이후 분석에 주로 사..

infra 2026.02.08

쿠버네티스 HPA 동작 원리 정리: 자동 확장은 어떻게 결정될까

쿠버네티스 자동 확장의 핵심, HPA는 어떻게 동작할까앞선 글에서 requests와 limits를 다뤘다면,이번에는 그 설정을 실제로 활용하는 기능인 HPA(Horizontal Pod Autoscaler) 를 살펴볼 차례다.쿠버네티스를 쓰는 이유 중 하나가“트래픽에 따라 자동으로 늘고 줄어드는 구조”일 텐데,그 중심에 바로 HPA가 있다.다만 HPA는 설정만 해두면 마법처럼 동작하는 기능은 아니다.동작 원리를 이해하지 않으면,원하지 않는 타이밍에 스케일이 되거나 아예 안 되기도 한다.HPA란 무엇인가HPA를 한 문장으로 정리하면 다음과 같다.HPA는 “메트릭을 기준으로 Pod 개수를 자동 조절하는 리소스”다.여기서 핵심은 두 가지다.무엇을 기준으로 판단하는가Pod 개수를 어떻게 조절하는가HPA는 Depl..

infra 2026.02.07

쿠버네티스 requests와 limits 개념 정리: 리소스 관리와 OOM 방지

쿠버네티스 리소스 관리의 핵심, requests와 limits 이해하기ConfigMap과 Secret으로 설정을 분리했다면,이제는 애플리케이션이 얼마나 많은 리소스를 써도 되는지를 고민해야 한다.쿠버네티스를 운영하다 보면 이런 상황을 자주 만난다.특정 Pod 하나가 CPU를 과도하게 사용한다메모리 사용량이 치솟으면서 다른 서비스까지 영향을 준다Pod가 갑자기 종료(OOMKilled)된다이 문제의 중심에는 requests와 limits가 있다.이 글에서는 쿠버네티스가 리소스를 어떻게 바라보는지부터 차근히 정리한다.쿠버네티스는 리소스를 “나눠 쓰는 환경”이다쿠버네티스 클러스터의 Node는 보통 여러 Pod가 함께 사용한다.즉,CPU메모리같은 자원은 공유 자원이다.아무 설정 없이 Pod를 띄우면,한 Pod가 ..

infra 2026.02.06

Go에서 PostgreSQL 연동하기: 실무 기준 DB 연결과 Migration 설계

JWT 인증까지 구현했다면,이제 서버는 **“진짜 운영 환경을 전제로 한 단계”**로 넘어갈 준비가 됐다.그 핵심이 바로 PostgreSQL 연동과 스키마 관리(Migration) 다.이번 챕터에서는PostgreSQL을 Go 서버에 연결하는 기본 흐름database/sql 기준의 실무 설정Migration을 왜, 어떻게 관리하는지를 과하지 않게, 하지만 실무 기준으로 정리한다.왜 SQLite가 아니라 PostgreSQL인가이전 챕터에서는 구조 설명을 위해SQLite나 메모리 저장소를 사용했다.하지만 운영 환경에서는 대부분 다음 이유로 PostgreSQL을 선택한다.동시성 처리에 강함트랜잭션 안정성JSON, 인덱스, 확장 기능 풍부클라우드 환경과 궁합이 좋음즉,“Go 서버 실무”를 이야기하려면 Postgr..

backend 2026.02.05

Pencil.dev 총정리 -디자인과 코드를 함께 다루는 새로운 개발 방식

프론트엔드 개발 환경에서는 여전히 디자인과 코드 사이의 간극이 생산성 저하의 주요 원인으로 꼽힙니다.Figma에서 디자인을 확인하고, 이를 다시 코드로 옮기는 과정은 익숙하지만, 그만큼 반복 작업과 커뮤니케이션 비용도 꾸준히 발생합니다.이러한 문제의식 속에서 등장한 도구가 Pencil.dev입니다.Pencil.dev는 별도의 디자인 툴을 추가하는 방식이 아니라, IDE 안에서 디자인과 코드를 함께 다루는 구조를 제안합니다.이 글에서는 Pencil.dev의 개념과 구조, 주요 기능, 그리고 어떤 개발자에게 적합한 도구인지 실무 관점에서 정리합니다.pencil dev 주소: https://www.pencil.dev/어떤 사람에게 도움이 되는 글인가이 글은 다음과 같은 분들께 도움이 됩니다.디자인 → 개발 핸..

카테고리 없음 2026.02.05

쿠버네티스 Service와 Ingress 개념 정리: 외부 트래픽 흐름 이해하기

쿠버네티스 네트워킹의 핵심, Service와 Ingress 이해하기Deployment, StatefulSet 같은 워크로드를 이해했다면다음으로 막히는 지점은 거의 항상 네트워킹이다.Pod IP는 왜 계속 바뀌는지외부 요청은 어떻게 Pod까지 들어오는지Service랑 Ingress는 정확히 뭐가 다른지이 글에서는 쿠버네티스 네트워킹의 중심이 되는 Service와 Ingress를“요청이 들어와서 Pod에 도달하는 흐름” 기준으로 정리한다.Pod IP를 직접 쓰지 않는 이유쿠버네티스에서 Pod는 일시적인 존재다.재배포 시 삭제되고 새로 생성된다장애가 나면 다른 Node에서 다시 뜬다그때마다 IP가 바뀐다즉, Pod IP는 신뢰할 수 있는 접근 수단이 아니다.그래서 쿠버네티스는Pod 앞에 항상 고정된 접근 지점..

infra 2026.02.05

Go API 에러 응답 규약 정리: 실무에서 흔들리지 않는 기준 만들기

트랜잭션까지 정리했다면,이제 서버 코드에서 마지막으로 꼭 잡아야 하는 기준이 남아 있다.바로 API 에러 응답 규약이다.에러 처리를 대충 넘기면 초반에는 편해 보이지만,운영 단계에 들어가면 다음 문제가 바로 터진다.프론트엔드에서 에러를 분기하기 어렵다로그에는 에러가 있는데, 클라이언트에는 의미 없는 메시지만 내려간다같은 에러인데 API마다 응답 형식이 다르다이번 챕터에서는Go + Gin 기반 API 서버에서 실무적으로 가장 많이 쓰는 에러 처리 기준을 정리한다.API 에러 처리의 목표부터 명확히 하자에러 처리는 “깔끔한 코드”를 위한 게 아니다.목표는 딱 세 가지다.클라이언트가 분기 처리할 수 있어야 하고운영자가 로그로 원인을 추적할 수 있어야 하며에러 표현이 서버 전체에서 일관되어야 한다이 세 가지를 ..

backend 2026.02.04

쿠버네티스 StatefulSet과 DaemonSet 차이점 정리: 언제 써야 할까

StatefulSet과 DaemonSet, 언제 어떤 워크로드를 써야 할까Deployment까지 이해했다면, 이제 쿠버네티스의 워크로드 개념 중 조금 성격이 다른 두 가지를 볼 차례다.바로 StatefulSet과 DaemonSet이다.이 둘은 Deployment만으로는 해결하기 어려운 요구사항을 다루기 위해 존재한다.실무에서 자주 쓰이진 않지만, 필요해지는 순간이 분명히 있는 리소스다.Deployment로 해결되지 않는 요구사항들실제로 쿠버네티스를 쓰다 보면 이런 요구가 나온다.Pod마다 고정된 이름과 순서가 필요하다Pod마다 각각의 스토리지를 가져야 한다특정 애플리케이션은 모든 Node에서 반드시 하나씩 실행되어야 한다이런 요구를 Deployment로 억지로 해결하려고 하면설정이 복잡해지고, 운영이 불..

infra 2026.02.04

Go 인증/인가 구현하기: JWT 기반 인증 미들웨어 설계

Gin으로 API 서버를 옮겼다면,다음으로 거의 반드시 등장하는 요구사항이 인증(Authentication)과 인가(Authorization) 다.이번 챕터에서는세션 기반이 아니라 JWT(Json Web Token) 를 사용하는 방식으로인증 흐름이 어떻게 구성되는지Gin 미들웨어로 어떻게 분리하는지실무에서 자주 실수하는 포인트는 무엇인지를 차분하게 정리한다.“완벽한 보안 구현”보다는API 서버에서 반복적으로 쓰이는 기본 설계를 이해하는 게 목표다.인증과 인가는 구분해서 생각해야 한다먼저 용어부터 정리하는 게 좋다.인증(Authentication): 너 누구냐인가(Authorization): 이 작업 해도 되냐JWT는 주로인증 결과를 토큰으로 전달하고이후 요청에서 인가 판단의 근거로 사용하는 데 쓰인다.왜..

backend 2026.02.03

쿠버네티스 Deployment와 ReplicaSet 개념 정리: 배포의 기본 구조

쿠버네티스 배포의 핵심, Deployment와 ReplicaSet 이해하기앞선 글에서 Pod, Node, Cluster 같은 기본 구조를 살펴봤다.이제부터는 실제로 쿠버네티스를 쓰면서 가장 자주 만나게 되는 개념으로 넘어간다.바로 Deployment와 ReplicaSet이다.쿠버네티스에서 애플리케이션을 배포한다고 할 때,대부분의 경우 직접 Pod를 만들지는 않는다.대신 Deployment를 정의하고, 나머지는 쿠버네티스에 맡긴다.왜 Pod를 직접 만들지 않을까처음 쿠버네티스를 접하면 이런 생각이 든다.“컨테이너 하나 띄우면 되는데 Pod만 만들면 되지 않나?”“굳이 Deployment까지 써야 하나?”기술적으로는 가능하다.하지만 운영 관점에서는 거의 의미가 없다.Pod는 다음과 같은 특성을 가진다.언제든..

infra 2026.02.03