분류 전체보기 387

Google Calendar WebHook 연동 방법

처음에는 Google Calendar에서 일정 시작 10분 전에 우리 서버로 Webhook을 호출해주는 줄 알았는데, 찾아보니 그런 기능은 없었음. Google Calendar에서 지원하는 Webhook은 일정이 생성/수정/삭제될 때만 호출됨.즉, "10분 후 일정 시작" 같은 이벤트는 직접 만들어야 함. 그래서 Google Apps Script를 사용했음. Apps Script에서 시간 기반 트리거를 등록해 일정 주기로 실행하고, 현재 시간 기준으로 앞으로 시작할 일정을 조회한 뒤 조건에 맞으면 우리 서버 API를 호출하는 방식으로 구현.흐름은 아래와 같음. { "chatRoomId": "...", "content": "📅 '개발 회의' 일정이 곧 시작됩니다."} 흐름Google Calenda..

TIL 2026.06.26

HTTP 206 Partial Content의 비밀

사내 동영상 파일 서버에서 다운로드가 왜 이렇게 기어가냐는 제보가 들어옴.인프라팀에 확인해 보니까 QoS가 200Mbps로 잡혀 있었음..초당 25MB 정도는 빠지는 대역폭이라 회선 자체가 대단히 쪼달리는 상황은 아닌 것 같았음. 대체 뭐가 문제인가 싶어 엑세스 로그(Access Log)부터 까봤는데, 좀 이상한 현상이 보임. 유저가 동영상 파일 하나를 요청했는데 로그가 달랑 한 줄 찍히는 게 아니라, 짧은 시간 동안 수십 번씩 연속으로 호출되는 묘한 상황이었음. 게다가 응답 코드는 익숙한 200 OK가 아니라 죄다 206 Partial Content로 찍히고 있었음. HTTP 206...이 아니라 원래 그런 거였다 (HTTP 206 Status와 다중 호출의 원인) HTTP 206 Partial Co..

TIL 2026.06.25

DB) AutoVaccumm이란

이게 도대체 왜 필요한 거임?PostgreSQL은 데이터를 수정(UPDATE)하거나 삭제(DELETE)할 때 바로 진짜 지우지 않음.이거 이제 안 쓰는 데이터임 하고 껍데기(Dead Tuple)만 남겨둠. (이걸 MVCC 방식이라고 함).이 껍데기 찌꺼기들을 제때 안 치우면 DB가 쓸데없이 비대해지고 엄청 무거워짐.그래서 "야, 너네가 알아서 주기적으로 청소 좀 해라" 하고 시키는 게 바로 AutoVacuum(자동 진공)임. 구체적으로 뭘 하는 건데?찌꺼기 청소: 안 쓰는 데이터 공간을 깨끗이 비워서 새로운 데이터가 들어올 수 있게 빈자리 만들어 줌.통계 정보 최신화: DB한테 "지금 데이터 이렇게 들어있으니까 쿼리 날릴 때 이 길로 찾아가면 빠름" 하고 똑똑한 길(실행 계획)을 안내해 줌.한 마디로 ..

TIL 2026.06.19

온프레미스 Overlay vs AWS EKS VPC CNI 차이점 정리

1. 기본 개념 정의 (Node와 Pod의 관계)노드(Node): 인프라의 기본이 되는 가상 컴퓨터/서버 본체 (EKS 환경에서는 100% EC2 인스턴스 의미)파드(Pod): 해당 노드(EC2) 내부에서 실행되는 컨테이너 프로세스(프로그램) 뭉치 2. 온프레미스 CNI (Calico, Flannel 등) 작동 방식서버 본체가 사용하는 물리 IP 망 위에 가상의 네트워크 망(Overlay)을 한 겹 덧씌우는 형태.IP 할당: Pod들은 실제 물리 인프라와 단절된 가상 IP 대역(예: 192.168.x.x)을 부여받음.통신 원리 (캡슐화): * 다른 노드의 Pod와 통신할 때 가상 IP 패킷을 실제 서버의 물리 IP 패킷으로 한 번 더 감싸서(포장) 보냄.받는 쪽 서버에서는 이 포장을 다시 뜯어서 내부에 ..

TIL 2026.06.17

Kube)NodePort vs LoadBalancer

알았다고 생각했는데 헷갈렸던 개념 살짝 정리!가장중요한건 Port를 외부에 노출하는지, IP를 호출하는지 차이임. NodePort (각 노드의 문을 열어두는 방식)개념: 모든 쿠버네티스 노드(서버)의 똑같은 포트(예: 30001번)를 외부로 활짝 열어버리는 방식입니다.접속 방법: http://노드A_IP:30001 또는 http://노드B_IP:30001로 노드 IP를 직접 치고 들어옵니다.단점: 노드가 죽으면 그 IP로는 접속이 안 됩니다. 사용자가 노드 IP들을 일일이 다 알고 있어야 하고, 보안상 노드의 포트를 직접 노출해야 하므로 실무 운영 환경에서는 단독으로 잘 쓰지 않습니다. LoadBalancer (단일 진입점을 제공하는 방식)개념: NodePort들 앞에 대표 진입점(단일 IP 또는 도메..

TIL 2026.06.17

Terraform 으로 AWS 연동 후 EKS 띄우고 동작방법

## 배경k3s만 써봤는데 EKS도 한번 해보고 싶어서 시작함.온프레미스랑 뭐가 다른지 궁금했음.---## 사전 준비- AWS CLI 설치- Terraform 설치- kubectl 설치- IAM Access Key 발급aws configure 로 자격증명 설정하고 시작.---## 구조 이해EKS는 컨트롤 플레인(API Server, etcd 등)을 AWS가 관리해줌.k3s는 마스터 노드 직접 관리해야 했는데 그 부분이 없어진 거임.네트워크 구조는 이렇게 됨:인터넷 ↓Internet Gateway ↓Public 서브넷 (NAT Gateway, LoadBalancer 위치) ↓Private 서브넷 (워커 노드, Pod 위치)VPC는 AWS 안에 나만 쓰는 사설 네트워크 공간임.다른 계정이랑 IP 대역 ..

카테고리 없음 2026.06.16

Redis 모니터링 해보자

Redis-exporter 깔고 prometheus 연결하고 대시보드 976 하면 된다!다운방법:https://zandi123.tistory.com/453 redis exporter 다운방법 정리# 1. /tmp 폴더로 이동해서 안전하게 다운로드 진행cd /tmp# 2. Redis Exporter 최신 안정 버전 다운로드wget https://github.com/oliver006/redis_exporter/releases/download/v1.67.0/redis_exporter-v1.67.0.linux-amd64.tar.gz# 3. 압축 해zandi123.tistory.com 하나하나 설명하자면 뭐 언제 일어났는지 , 연결된 클라이언트 수 등.. 그런것들임! 매우 쉽고 보기에도 편하니 도입 하면 db..

TIL 2026.06.12

redis exporter 다운방법 정리

# 1. /tmp 폴더로 이동해서 안전하게 다운로드 진행cd /tmp# 2. Redis Exporter 최신 안정 버전 다운로드wget https://github.com/oliver006/redis_exporter/releases/download/v1.67.0/redis_exporter-v1.67.0.linux-amd64.tar.gz# 3. 압축 해제tar -xvf redis_exporter-v1.67.0.linux-amd64.tar.gz# 4. 압축 해제된 폴더 안으로 이동cd redis_exporter-v1.67.0.linux-amd64# 5. 관리용 실행 파일(바이너리)을 시스템 실행 경로로 이동 (복사)sudo cp redis_exporter /usr/local/bin/# 6. 정상적으로 잘 옮겨..

TIL 2026.06.10

Claude Code 개발향상을 위한 쓸만한 플러그인

Karpathy Skills & Superpowers (시니어 프로세스 강제 및 고난도 코드리뷰)안드레이 카파시 가이드라인: forrestchang/andrej-karpathy-skills 마켓플레이스 등록 후 andrej-karpathy-skills@karpathy-skills 설치하고 /karpathy-guidelines 실행하면 끝임.클로드가 혼자 뇌피셜로 소설 쓰면서 코드 양산하다가 에러 내는 고질병 싹 고쳐짐.요구사항 모호하면 먼저 질문하게 만들고, 100줄로 끝낼 거 1,000줄로 과도하게 안늘림.git 참조 : https://github.com/multica-ai/andrej-karpathy-skills/blob/main/README.md Superpowers 플러그인: obra/super..

TIL 2026.06.10