Devops/Network2026. 5. 31. 16:35[Network] DNS 조회는 어떤 단계로 이루어질까?(feat.. GSLB, 재귀/반복 질의, 캐시, TTL)

0. 상황GSLB(Global Server Load Balancing)를 공부하다가 "GSLB는 DNS의 권한 네임서버(authoritative name server) 자리에 끼어들어 적합한 지역의 IP를 동적으로 응답한다"는 설명을 만났다. "권한 네임서버"가 DNS 조회 과정의 정확히 어느 지점인지 헷갈려 이참에 DNS 조회 전체 단계를 GSLB 를 포함해 정리해두기로 했다.1. DNS가 풀려는 문제사람은 www.example.com 같은 이름을 쓰지만, 실제 통신은 93.184.216.34 같은 IP로 이루어진다. 이 이름 → IP 변환이 DNS(Domain Name System)의 역할이다.핵심은 이 정보가 한 군데가 아니라 전 세계에 계층적으로 분산되어 있다는 점이다. 그래서 한 번에 끝나지 ..

CS/CS2026. 5. 31. 15:32직렬화] RPC 통신, 왜 XML/JSON 두고 Protobuf를 쓸까?(feat.. self-describing, .proto, 호환성, proto rot)

0. 상황RPC 통신을 들여다보다 Protocol Buffers(이하 protobuf)를 마주했다. "XML보다 310배 작고, 20100배 빠르고, 더 쉽다"는 그 문구.작고 빠른 건 알겠는데, 대체 왜 그런 건지. 그리고 멀쩡히 잘 쓰던 XML, JSON은 뭐가 부족했던 건지 궁금해서 파봤다.1. RPC가 뭐길래 직렬화가 필요한가RPC(Remote Procedure Call)는 남의 서버에 있는 함수를 내 코드의 함수처럼 호출하는 방식이다. getUser(123)을 부르면 네트워크 타고 저쪽에서 실행되고 결과가 돌아온다.근데 네트워크로는 객체를 그대로 못 보낸다. 메모리 속 데이터를 전송 가능한 바이트 열로 바꿔야 하는데, 이게 직렬화(serialization)다. 받는 쪽은 다시 데이터로 푸는 역직..

2026. 2. 5. 01:58[Kubernetes] “애플리케이션은 죄가 없었다” On-prem Kubernetes에서 Pod가 계속 재시작되던 이유 - GOMAXPROCS, CPU limit(linux CFS control)

보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 해주세요.

회고곡호고곡(회고록)2026. 2. 1. 21:29안녕- 2025, 그리고 안녕? 2026

2024년 회고록을 끝내지 못한(않....은...…) 채 2025년마저 지나가버렸다. cf) 안녕- 2024, 안녕? 2025 지못미(연륜 드러내기) 돌이켜보면 그만큼 2025년은 나에게 숨을 고를 틈 없을 정도로 변화가 많았던 한 해였다. 그리고 2026년의 문턱에 들어선 지금, 불과 지난 한 달 사이에도 정말 많은 일이 있었다. 회사에는 큰 변화가 찾아왔고, 그 변화로 인해서 회사는 AI라는 흐름을 더 이상 ‘관찰’이 아니라 ‘탑승’의 대상으로 받아들이게 되었다. 그 과정에서 개인적으로도 많은 고민과 생각이 쌓였고, 올해가 나에게 있어 꽤나 큰 전향점이 될 것 같아 늦었지만 지난 해 회고와 새해 다짐을 정리해본다.2025 개인 생활 회고 2025년 내 생활에 있어서 큰 변화 중 하나는 운동이라는..

[ubuntu,apt] supervisor에 올라간 우리의 서비스는 왜 소리소문도(health checker가 소리 소문 냈지만..) 로그도 없이 죽는가(feat. apt unattended-upgrades) + apt update, upgrade 전략
Devops/Linux2025. 4. 9. 02:10[ubuntu,apt] supervisor에 올라간 우리의 서비스는 왜 소리소문도(health checker가 소리 소문 냈지만..) 로그도 없이 죽는가(feat. apt unattended-upgrades) + apt update, upgrade 전략

0. 상황 - 최근 Ubuntu 서버에 새로 배포한 supervisor로 실행 중인 서비스가, 그 어떤 CPU나 memory, network 리소스 이상 사용량 추이도 없이 + 로그도 남기지 않고 죽어있는(숨 쉬어..!) 상황이 발생했다. - 사실 배포 초반에도 2회 정도 동일한 이슈가 있었지만, 그 당시에는 외부의 요인들이 너무 많아 자세하게 디버깅은 하지 않고, 헬스체크를 추가해 두는 정도로 조치를 해둔 뒤 다른 급한 일들을 쳐내고 있었다. 한동안 동일한 상황이 발생하지 않아 외부적 요인이었나 생각하던 와중 또다시 해당 서비스가 소리소문 없이(는 소리는 냈지만 모니터링 알림이 너무 많아 눈치를 채지 못했습니다! 이 일에 대한 개선은 나중에 여기서 또 포스팅해 봐야지!) 죽는 일이 발..

Devops/Proxmox2025. 4. 6. 20:10Proxmox_Cluster] Proxmox Cluster not ready - no quorum?

0. 상황    - Power Outage 발생 및 iDRAC 세팅 진행 시 몇 개의 서버 즉, 몇 개의 Proxmox cluster의 node 가 down 되며 전체 클러스터의 VM 시작이 불가.        - 더 상세하게는 전원 복구 이후 서버가 재시작되며 자동시작이 설정되어있던 vm들은 시작되었지만, 순서 보장 등을 위해 자동시작을 설정하지 않았던 VM들을 시작하는 것이 불가능해졌음.1. 에러코드 전문Proxmox Cluster not ready - no quorum?2. 원인    - Proxmox 클러스터에서 작업을 수행하기위해 분산트랜잭션이 획득해야 하는 최소 투표수가 보장되지 않았기 때문에 발생한 상황.3. 해결방안    - Ref: https://pve.proxmox.com/pve-doc..

회고곡호고곡(회고록)2024. 12. 31. 19:38안녕- 2024, 안녕? 2025 (오랜만의 회고곡 새해 계획)

오늘은 2024년 마지막 날!간만에 `회고` 를 진행해볼까 한다. 개발자로 전향하고 현업에 뛰어들고나서는 처음으로 회고를 작성하는것 같은..데?(맞음)개인적으로도 연간 회고는 처음인데다, 본의 아니게 개발자로써의 첫 연간 회고글이라는걸 방금 깨달아버렸다. 생각보다 거창한 일이 되버렸는걸? 막연하게 느껴지는 점이 2025년이 내게는 참으로 중요한 한 해가 될 것 같아 지금이 내가 가고있는 방향이 맞는지 검토가 필요한것 같아, 이참에 개발로 전향하고나서의 모든 기간에 대해 돌아보는 시간을 가져보고자 한다.  2022-2023 개발자(지망생)으로써의 우당탕탕 김야나처음 개발이라는 분야로의 커리어 전환을 제안하고 또 도움을 많이 준 승진이, 무언가를 만들어내는 습관과 함께 공부해나갈 친우들을 만들어준 국비교육,..

[aws] 드디어 때가 되었다, 반쯤 죽어 눈을 반만 뜬 나의 인스턴스를 살릴 시간이..(ec2 인스턴스 상태검사 1/2통과, 인스턴스 연결성 검사 실패)
cloud/aws2024. 5. 20. 22:31[aws] 드디어 때가 되었다, 반쯤 죽어 눈을 반만 뜬 나의 인스턴스를 살릴 시간이..(ec2 인스턴스 상태검사 1/2통과, 인스턴스 연결성 검사 실패)

0. 상황    - Docker compose로 java 어플리케이션을 3개 올려놓은 내 ec2 인스턴스는, docker compose를 up 한 뒤 24시간 이내로 CPU가 튀면서 인스턴스 상태검사에 실패하고, 배포 사이트 접속은 물론 ssh 접속마저 불가능해지는 이슈가 있었다.    - 모니터링을 확인해보니, compose up을 실행한 후 하루가 되지 않아 실제로 cpu 사용율과 cpu크레딧 사용량이 튀면서 더이상 네트워크 패킷이 정상적으로 오가지 않는 것을 확인할 수 있었다.1. 에러코드 전문    - 일단...로그를 뺄 수 있을까? 시도해 보자2. 원인    - Amazon ec2는 아래 세 가지 상태 확인을 통해 각 ec2 인스턴스 상태를 모니터링한다.        1. 시스템 상태 확인   ..

[Java] GC log 확인하기(내 가녀린 EC2인스턴스는 정말 GC때문에 죽는게 맞을까? + 갑자기 튀어나온 SerialGC..?)
Web_Backend/Java2024. 5. 20. 22:25[Java] GC log 확인하기(내 가녀린 EC2인스턴스는 정말 GC때문에 죽는게 맞을까? + 갑자기 튀어나온 SerialGC..?)

0. 상황    - 이전 글 에서 말했듯이 aws의 t4g.micro(기존 : t3.micro)라는 작고 가녀린 ec2인스턴스에 docker compose로 spring 어플리케이션을 3개 + nginx까지 구동시키다가, oom kill java 이슈가 발생했다..(해당 상황을 참여중인 커뮤니티에 공유하니, 모두들 이구동성으로 t3.micro, t4g.micro에 사과하라고 하셨다😅😅)1. 에러코드 전문    - ec2 인스턴스의 System log에서 발견한 oom 관련 로그는 아래와 같았다.[69465.875991] systemd invoked oom-killer: gfp_mask=0x140cca(GFP_HIGHUSER_MOVABLE|__GFP_COMP), order=0, oom_score_adj..

[AWS summit seoul 2024] 참가 일기 >-<
회고곡호고곡(회고록)2024. 5. 18. 21:11[AWS summit seoul 2024] 참가 일기 >-<

드디어 야나 난생 처음으로 AWS 써밋 댕겨왔습니다여이이이-!!!  개발로 넘어오기 전 근무했던 사무실이, 코엑스 바로 옆이었어서 감회가 더 색달랐다..!  첫 세션은 컨테이너..! EMR on EKS..!사실 아직 컨테이너 기술과 데이터 처리 분야에 대해서는 배경지식이 거의 없었기에 온전히 이해할 수는 없었지만(물론 설명을 정말 쉽게 해주신 덕분에 대략적인 감은 잡을 수 있었다!), 데이터 사용을 원하는 개발자들이 다른것이 아닌 "개발"에만 집중 할 수 있도록 플랫폼을 생성하고 개선해왔다는 부분이 인상적이었다.Apach Yunikorn, Airflow 관련해서도 이야기를 많이 해주셨는데, Yunikorn에서는 고급 스케줄링으로 자원경합을 방지하고 과도한 프로비저닝을 막았다는 부분의 원리가 궁금했고, A..

Project2024. 5. 16. 02:43[멘토링] 전자정부 프레임워크의 메뉴얼에서 “개발/테스팅 시점에만 System.out.println()을 사용하고 운영으로 이관하기 전에 삭제하는 것은 좋은 방법이 아님.“이라고 하는 이유와, 현업에서 로그를 남기는 범위(가능한 많이, 되도록 폭팔하지 않게)

해당 게시글은 (케인)멘토님께 멘토링 세션을 통해 주고받은 질의응답의 내용을 정리한 글 입니다.😲 Q1.  운영환경이 아닌 개발환경에서 임시로 디버깅을 하기 위해서는 System.out을 사용해도 괜찮을까요?Java 강의 수강 도중 console에 출력하는 System.out(이하 sout)에 대해서 다루었습니다. sout 관련해서 기존부터 받아왔던 “Sout은 성능면에서나 로그를 남기는 이유와 관련해서나, Sout 사용을 지양하고 logger또는 logger 프레임워크를 사용하는것이 좋습니다” 라는 피드백이 생각나, “왜 개발 및 운영환경에서 Sout의 사용을 지양해야하는지” 이번 기회에 공부해보았습니다…관련해서 생긴 궁금증으로는 “운영환경이 아닌 개발환경에서 임시로 디버깅을 하기 위해서는 Syste..

image