golang 비동기. tcp서버(6). netpoll 3부. golang 내부 epoll 활용: read & write
golang netpoller가 읽기·쓰기 연산을 epoll을 통해 처리하는 내부 흐름을 분석합니다.
golang netpoller가 읽기·쓰기 연산을 epoll을 통해 처리하는 내부 흐름을 분석합니다.
golang netpoller가 epoll을 활용하여 Accept 연산을 non-blocking으로 처리하는 내부 흐름을 분석합니다.
golang 내부 netpoller가 epoll을 어떻게 생성하고 초기화하는지, 런타임 소스 코드를 따라가며 분석합니다.
클라이언트 연결마다 고루틴을 생성하는 방식에서 벗어나 epoll을 이용한 I/O 멀티플렉싱으로 TCP 서버를 구현합니다.
golang net 패키지의 Listener와 Conn이 내부적으로 POSIX syscall을 어떻게 활용하는지, unix 패키지로 직접 재구현하며 확인합니다.
golang net 패키지를 이용하여 기본적인 TCP echo 서버를 구현하고, 리스너·커넥션 인터페이스의 기본 사용법을 알아봅니다.
golang에서 클로저가 힙 메모리를 캡처하는 메커니즘과, 이를 활용한 circuit breaker 패턴 구현 방법을 살펴봅니다.
sync.Cond의 내부 구현과, Mutex·channel보다 효과적으로 여러 고루틴을 조율하는 사용 패턴을 알아봅니다.
golang에서 context를 활용할 때 발생할 수 있는 대표적인 함정과 올바른 사용 패턴을 사례 중심으로 알아봅니다.
golang context 패키지가 고루틴 수명 제어와 값 전파에 어떻게 활용되는지 내부 구현을 중심으로 살펴봅니다.
대기행렬이론(Queuing Theory)의 핵심 방정식을 살펴보고, 이를 이벤트루프 시스템에 적용하여 안전한 큐 운용 방법을 탐구합니다.
select문에 우선순위를 주입하는 방법과, 고루틴·채널·select·atomic을 조합하여 이벤트루프를 구현하는 방법을 알아봅니다.
sync.Mutex, sync.RWMutex, sync.WaitGroup의 내부 구현을 futex 시스템 콜 수준에서 분석합니다.
golang select문의 내부 구현과 동작 원리를 Go runtime 소스 코드를 통해 분석합니다.
golang 채널의 내부 자료구조와 send/recv 연산이 Go 런타임 소스 코드 수준에서 어떻게 동작하는지 분석합니다.
sync.RWMutex를 활용하여 고루틴 안전한 제네릭 맵을 구현해보고, sync.Map의 인터페이스와 내부 동작 원리를 비교합니다.
golang 스케줄러의 큐가 글로벌 큐(grq)와 로컬 큐(lrq)로 분리된 이유와, 작업 훔치기(work stealing) 설계의 배경을 탐구합니다.
고루틴 스케줄러의 MPG 아키텍처(Machine, Process, Goroutine)와 동작 원리를 Go 내부 소스 코드를 분석하며 살펴봅니다.
golang netpoller가 읽기·쓰기 연산을 epoll을 통해 처리하는 내부 흐름을 분석합니다.
golang netpoller가 epoll을 활용하여 Accept 연산을 non-blocking으로 처리하는 내부 흐름을 분석합니다.
golang 내부 netpoller가 epoll을 어떻게 생성하고 초기화하는지, 런타임 소스 코드를 따라가며 분석합니다.
클라이언트 연결마다 고루틴을 생성하는 방식에서 벗어나 epoll을 이용한 I/O 멀티플렉싱으로 TCP 서버를 구현합니다.
golang net 패키지의 Listener와 Conn이 내부적으로 POSIX syscall을 어떻게 활용하는지, unix 패키지로 직접 재구현하며 확인합니다.
golang net 패키지를 이용하여 기본적인 TCP echo 서버를 구현하고, 리스너·커넥션 인터페이스의 기본 사용법을 알아봅니다.
golang에서 클로저가 힙 메모리를 캡처하는 메커니즘과, 이를 활용한 circuit breaker 패턴 구현 방법을 살펴봅니다.
sync.Cond의 내부 구현과, Mutex·channel보다 효과적으로 여러 고루틴을 조율하는 사용 패턴을 알아봅니다.
golang에서 context를 활용할 때 발생할 수 있는 대표적인 함정과 올바른 사용 패턴을 사례 중심으로 알아봅니다.
golang context 패키지가 고루틴 수명 제어와 값 전파에 어떻게 활용되는지 내부 구현을 중심으로 살펴봅니다.
대기행렬이론(Queuing Theory)의 핵심 방정식을 살펴보고, 이를 이벤트루프 시스템에 적용하여 안전한 큐 운용 방법을 탐구합니다.
select문에 우선순위를 주입하는 방법과, 고루틴·채널·select·atomic을 조합하여 이벤트루프를 구현하는 방법을 알아봅니다.
sync.Mutex, sync.RWMutex, sync.WaitGroup의 내부 구현을 futex 시스템 콜 수준에서 분석합니다.
golang select문의 내부 구현과 동작 원리를 Go runtime 소스 코드를 통해 분석합니다.
golang 채널의 내부 자료구조와 send/recv 연산이 Go 런타임 소스 코드 수준에서 어떻게 동작하는지 분석합니다.
sync.RWMutex를 활용하여 고루틴 안전한 제네릭 맵을 구현해보고, sync.Map의 인터페이스와 내부 동작 원리를 비교합니다.
golang 스케줄러의 큐가 글로벌 큐(grq)와 로컬 큐(lrq)로 분리된 이유와, 작업 훔치기(work stealing) 설계의 배경을 탐구합니다.
고루틴 스케줄러의 MPG 아키텍처(Machine, Process, Goroutine)와 동작 원리를 Go 내부 소스 코드를 분석하며 살펴봅니다.
golang netpoller가 읽기·쓰기 연산을 epoll을 통해 처리하는 내부 흐름을 분석합니다.
golang netpoller가 epoll을 활용하여 Accept 연산을 non-blocking으로 처리하는 내부 흐름을 분석합니다.
golang 내부 netpoller가 epoll을 어떻게 생성하고 초기화하는지, 런타임 소스 코드를 따라가며 분석합니다.
클라이언트 연결마다 고루틴을 생성하는 방식에서 벗어나 epoll을 이용한 I/O 멀티플렉싱으로 TCP 서버를 구현합니다.
golang net 패키지의 Listener와 Conn이 내부적으로 POSIX syscall을 어떻게 활용하는지, unix 패키지로 직접 재구현하며 확인합니다.
golang net 패키지를 이용하여 기본적인 TCP echo 서버를 구현하고, 리스너·커넥션 인터페이스의 기본 사용법을 알아봅니다.
golang에서 클로저가 힙 메모리를 캡처하는 메커니즘과, 이를 활용한 circuit breaker 패턴 구현 방법을 살펴봅니다.
sync.Cond의 내부 구현과, Mutex·channel보다 효과적으로 여러 고루틴을 조율하는 사용 패턴을 알아봅니다.
golang에서 context를 활용할 때 발생할 수 있는 대표적인 함정과 올바른 사용 패턴을 사례 중심으로 알아봅니다.
golang context 패키지가 고루틴 수명 제어와 값 전파에 어떻게 활용되는지 내부 구현을 중심으로 살펴봅니다.
대기행렬이론(Queuing Theory)의 핵심 방정식을 살펴보고, 이를 이벤트루프 시스템에 적용하여 안전한 큐 운용 방법을 탐구합니다.
select문에 우선순위를 주입하는 방법과, 고루틴·채널·select·atomic을 조합하여 이벤트루프를 구현하는 방법을 알아봅니다.
sync.Mutex, sync.RWMutex, sync.WaitGroup의 내부 구현을 futex 시스템 콜 수준에서 분석합니다.
golang select문의 내부 구현과 동작 원리를 Go runtime 소스 코드를 통해 분석합니다.
golang 채널의 내부 자료구조와 send/recv 연산이 Go 런타임 소스 코드 수준에서 어떻게 동작하는지 분석합니다.
sync.RWMutex를 활용하여 고루틴 안전한 제네릭 맵을 구현해보고, sync.Map의 인터페이스와 내부 동작 원리를 비교합니다.
golang 스케줄러의 큐가 글로벌 큐(grq)와 로컬 큐(lrq)로 분리된 이유와, 작업 훔치기(work stealing) 설계의 배경을 탐구합니다.
고루틴 스케줄러의 MPG 아키텍처(Machine, Process, Goroutine)와 동작 원리를 Go 내부 소스 코드를 분석하며 살펴봅니다.
containerd 소스코드에서 등장하는 설계 선택의 이유를 추적합니다.
kubelet의 CreateContainer와 StartContainer 요청에 대한 containerd 내부 처리 과정을 스냅샷 생성부터 runc start까지 코드 수준으로 분석합니다.
kubelet의 RunPodSandbox 요청에 대한 containerd 내부 처리 과정을 netns 생성부터 shim 기동까지 코드 수준으로 분석합니다.
containerd의 플러그인 등록 메커니즘과 gRPC 서버 초기화 과정을 init()부터 소켓 리스너 실행까지 코드 수준으로 분석합니다.
kubelet은 컨테이너 런타임과 직접 결합하지 않고, CRI(Container Runtime Interface)라는 gRPC 기반의 표준 인터페이스를 통해 통신합니다.
kubernetes에서 가장 기본적인 동작은 Pod를 처리하는 것입니다. scheduler와 kubelet의 내부 동작을 코드 레벨로 따라갑니다.
vtgate가 CLI 진입점에서 초기화된 뒤 MySQL 프로토콜 리스너를 열고 Accept 루프에 진입하는 흐름을 코드 레벨로 살펴봅니다.
LiveStateCache가 ClusterCache를 생성·동기화하고, 감지된 이벤트를 ApplicationController까지 전달하는 흐름을 코드 레벨로 살펴봅니다.
ArgoCD가 외부 클러스터의 리소스를 모니터링하기 위해 gitops-engine의 ClusterCache를 초기화하고 활용하는 방식을 분석합니다.
Application Controller가 CompareAppState 결과를 바탕으로 실제 Kubernetes 리소스를 동기화하는 과정을 코드 레벨로 추적합니다.
ArgoCD의 repo-server 컴포넌트가 원격 저장소에서 k8s manifest를 생성·반환하는 방식을 App Controller와의 상호작용을 중심으로 살펴봅니다.
Application Controller의 processAppRefreshQueueItem이 GitOps 싱크 루프를 어떻게 구현하는지 내부 흐름을 따라갑니다.
ArgoCD Application Controller가 Informer를 통해 App 생성·변경 이벤트를 감지하고 처리 큐에 등록하는 흐름을 코드 레벨로 추적합니다.
ArgoCD CLI에서 전달된 app 생성 gRPC 요청을 API Server가 어떻게 처리하는지 초기화 과정부터 따라갑니다.
ArgoCD CLI에서 app을 생성할 때 ArgoCD 내부 컴포넌트가 어떻게 상호작용하는지, main 진입점과 CLI 기본 동작을 중심으로 살펴봅니다.
kubelet은 컨테이너 런타임과 직접 결합하지 않고, CRI(Container Runtime Interface)라는 gRPC 기반의 표준 인터페이스를 통해 통신합니다.
kubernetes에서 가장 기본적인 동작은 Pod를 처리하는 것입니다. scheduler와 kubelet의 내부 동작을 코드 레벨로 따라갑니다.
LiveStateCache가 ClusterCache를 생성·동기화하고, 감지된 이벤트를 ApplicationController까지 전달하는 흐름을 코드 레벨로 살펴봅니다.
ArgoCD가 외부 클러스터의 리소스를 모니터링하기 위해 gitops-engine의 ClusterCache를 초기화하고 활용하는 방식을 분석합니다.
Application Controller가 CompareAppState 결과를 바탕으로 실제 Kubernetes 리소스를 동기화하는 과정을 코드 레벨로 추적합니다.
ArgoCD의 repo-server 컴포넌트가 원격 저장소에서 k8s manifest를 생성·반환하는 방식을 App Controller와의 상호작용을 중심으로 살펴봅니다.
Application Controller의 processAppRefreshQueueItem이 GitOps 싱크 루프를 어떻게 구현하는지 내부 흐름을 따라갑니다.
ArgoCD Application Controller가 Informer를 통해 App 생성·변경 이벤트를 감지하고 처리 큐에 등록하는 흐름을 코드 레벨로 추적합니다.
ArgoCD CLI에서 전달된 app 생성 gRPC 요청을 API Server가 어떻게 처리하는지 초기화 과정부터 따라갑니다.
ArgoCD CLI에서 app을 생성할 때 ArgoCD 내부 컴포넌트가 어떻게 상호작용하는지, main 진입점과 CLI 기본 동작을 중심으로 살펴봅니다.
LiveStateCache가 ClusterCache를 생성·동기화하고, 감지된 이벤트를 ApplicationController까지 전달하는 흐름을 코드 레벨로 살펴봅니다.
ArgoCD가 외부 클러스터의 리소스를 모니터링하기 위해 gitops-engine의 ClusterCache를 초기화하고 활용하는 방식을 분석합니다.
Application Controller가 CompareAppState 결과를 바탕으로 실제 Kubernetes 리소스를 동기화하는 과정을 코드 레벨로 추적합니다.
ArgoCD의 repo-server 컴포넌트가 원격 저장소에서 k8s manifest를 생성·반환하는 방식을 App Controller와의 상호작용을 중심으로 살펴봅니다.
Application Controller의 processAppRefreshQueueItem이 GitOps 싱크 루프를 어떻게 구현하는지 내부 흐름을 따라갑니다.
ArgoCD Application Controller가 Informer를 통해 App 생성·변경 이벤트를 감지하고 처리 큐에 등록하는 흐름을 코드 레벨로 추적합니다.
ArgoCD CLI에서 전달된 app 생성 gRPC 요청을 API Server가 어떻게 처리하는지 초기화 과정부터 따라갑니다.
ArgoCD CLI에서 app을 생성할 때 ArgoCD 내부 컴포넌트가 어떻게 상호작용하는지, main 진입점과 CLI 기본 동작을 중심으로 살펴봅니다.
LiveStateCache가 ClusterCache를 생성·동기화하고, 감지된 이벤트를 ApplicationController까지 전달하는 흐름을 코드 레벨로 살펴봅니다.
ArgoCD가 외부 클러스터의 리소스를 모니터링하기 위해 gitops-engine의 ClusterCache를 초기화하고 활용하는 방식을 분석합니다.
Application Controller가 CompareAppState 결과를 바탕으로 실제 Kubernetes 리소스를 동기화하는 과정을 코드 레벨로 추적합니다.
ArgoCD의 repo-server 컴포넌트가 원격 저장소에서 k8s manifest를 생성·반환하는 방식을 App Controller와의 상호작용을 중심으로 살펴봅니다.
Application Controller의 processAppRefreshQueueItem이 GitOps 싱크 루프를 어떻게 구현하는지 내부 흐름을 따라갑니다.
ArgoCD Application Controller가 Informer를 통해 App 생성·변경 이벤트를 감지하고 처리 큐에 등록하는 흐름을 코드 레벨로 추적합니다.
ArgoCD CLI에서 전달된 app 생성 gRPC 요청을 API Server가 어떻게 처리하는지 초기화 과정부터 따라갑니다.
ArgoCD CLI에서 app을 생성할 때 ArgoCD 내부 컴포넌트가 어떻게 상호작용하는지, main 진입점과 CLI 기본 동작을 중심으로 살펴봅니다.
golang netpoller가 읽기·쓰기 연산을 epoll을 통해 처리하는 내부 흐름을 분석합니다.
golang netpoller가 epoll을 활용하여 Accept 연산을 non-blocking으로 처리하는 내부 흐름을 분석합니다.
golang 내부 netpoller가 epoll을 어떻게 생성하고 초기화하는지, 런타임 소스 코드를 따라가며 분석합니다.
클라이언트 연결마다 고루틴을 생성하는 방식에서 벗어나 epoll을 이용한 I/O 멀티플렉싱으로 TCP 서버를 구현합니다.
golang net 패키지의 Listener와 Conn이 내부적으로 POSIX syscall을 어떻게 활용하는지, unix 패키지로 직접 재구현하며 확인합니다.
golang net 패키지를 이용하여 기본적인 TCP echo 서버를 구현하고, 리스너·커넥션 인터페이스의 기본 사용법을 알아봅니다.
LiveStateCache가 ClusterCache를 생성·동기화하고, 감지된 이벤트를 ApplicationController까지 전달하는 흐름을 코드 레벨로 살펴봅니다.
ArgoCD가 외부 클러스터의 리소스를 모니터링하기 위해 gitops-engine의 ClusterCache를 초기화하고 활용하는 방식을 분석합니다.
Application Controller가 CompareAppState 결과를 바탕으로 실제 Kubernetes 리소스를 동기화하는 과정을 코드 레벨로 추적합니다.
ArgoCD의 repo-server 컴포넌트가 원격 저장소에서 k8s manifest를 생성·반환하는 방식을 App Controller와의 상호작용을 중심으로 살펴봅니다.
Application Controller의 processAppRefreshQueueItem이 GitOps 싱크 루프를 어떻게 구현하는지 내부 흐름을 따라갑니다.
ArgoCD Application Controller가 Informer를 통해 App 생성·변경 이벤트를 감지하고 처리 큐에 등록하는 흐름을 코드 레벨로 추적합니다.
containerd 소스코드에서 등장하는 설계 선택의 이유를 추적합니다.
kubelet의 CreateContainer와 StartContainer 요청에 대한 containerd 내부 처리 과정을 스냅샷 생성부터 runc start까지 코드 수준으로 분석합니다.
kubelet의 RunPodSandbox 요청에 대한 containerd 내부 처리 과정을 netns 생성부터 shim 기동까지 코드 수준으로 분석합니다.
containerd의 플러그인 등록 메커니즘과 gRPC 서버 초기화 과정을 init()부터 소켓 리스너 실행까지 코드 수준으로 분석합니다.
kubelet은 컨테이너 런타임과 직접 결합하지 않고, CRI(Container Runtime Interface)라는 gRPC 기반의 표준 인터페이스를 통해 통신합니다.
golang netpoller가 읽기·쓰기 연산을 epoll을 통해 처리하는 내부 흐름을 분석합니다.
golang netpoller가 epoll을 활용하여 Accept 연산을 non-blocking으로 처리하는 내부 흐름을 분석합니다.
golang 내부 netpoller가 epoll을 어떻게 생성하고 초기화하는지, 런타임 소스 코드를 따라가며 분석합니다.
클라이언트 연결마다 고루틴을 생성하는 방식에서 벗어나 epoll을 이용한 I/O 멀티플렉싱으로 TCP 서버를 구현합니다.
golang 채널의 내부 자료구조와 send/recv 연산이 Go 런타임 소스 코드 수준에서 어떻게 동작하는지 분석합니다.
golang 스케줄러의 큐가 글로벌 큐(grq)와 로컬 큐(lrq)로 분리된 이유와, 작업 훔치기(work stealing) 설계의 배경을 탐구합니다.
고루틴 스케줄러의 MPG 아키텍처(Machine, Process, Goroutine)와 동작 원리를 Go 내부 소스 코드를 분석하며 살펴봅니다.
kubernetes에서 가장 기본적인 동작은 Pod를 처리하는 것입니다. scheduler와 kubelet의 내부 동작을 코드 레벨로 따라갑니다.
golang 스케줄러의 큐가 글로벌 큐(grq)와 로컬 큐(lrq)로 분리된 이유와, 작업 훔치기(work stealing) 설계의 배경을 탐구합니다.
고루틴 스케줄러의 MPG 아키텍처(Machine, Process, Goroutine)와 동작 원리를 Go 내부 소스 코드를 분석하며 살펴봅니다.
sync.Cond의 내부 구현과, Mutex·channel보다 효과적으로 여러 고루틴을 조율하는 사용 패턴을 알아봅니다.
sync.Mutex, sync.RWMutex, sync.WaitGroup의 내부 구현을 futex 시스템 콜 수준에서 분석합니다.
sync.RWMutex를 활용하여 고루틴 안전한 제네릭 맵을 구현해보고, sync.Map의 인터페이스와 내부 동작 원리를 비교합니다.
클라이언트 연결마다 고루틴을 생성하는 방식에서 벗어나 epoll을 이용한 I/O 멀티플렉싱으로 TCP 서버를 구현합니다.
golang net 패키지의 Listener와 Conn이 내부적으로 POSIX syscall을 어떻게 활용하는지, unix 패키지로 직접 재구현하며 확인합니다.
golang net 패키지를 이용하여 기본적인 TCP echo 서버를 구현하고, 리스너·커넥션 인터페이스의 기본 사용법을 알아봅니다.
golang netpoller가 읽기·쓰기 연산을 epoll을 통해 처리하는 내부 흐름을 분석합니다.
golang netpoller가 epoll을 활용하여 Accept 연산을 non-blocking으로 처리하는 내부 흐름을 분석합니다.
golang 내부 netpoller가 epoll을 어떻게 생성하고 초기화하는지, 런타임 소스 코드를 따라가며 분석합니다.
containerd 소스코드에서 등장하는 설계 선택의 이유를 추적합니다.
kubelet의 CreateContainer와 StartContainer 요청에 대한 containerd 내부 처리 과정을 스냅샷 생성부터 runc start까지 코드 수준으로 분석합니다.
kubelet의 RunPodSandbox 요청에 대한 containerd 내부 처리 과정을 netns 생성부터 shim 기동까지 코드 수준으로 분석합니다.
containerd 소스코드에서 등장하는 설계 선택의 이유를 추적합니다.
kubelet의 CreateContainer와 StartContainer 요청에 대한 containerd 내부 처리 과정을 스냅샷 생성부터 runc start까지 코드 수준으로 분석합니다.
kubelet의 RunPodSandbox 요청에 대한 containerd 내부 처리 과정을 netns 생성부터 shim 기동까지 코드 수준으로 분석합니다.
sync.Mutex, sync.RWMutex, sync.WaitGroup의 내부 구현을 futex 시스템 콜 수준에서 분석합니다.
sync.RWMutex를 활용하여 고루틴 안전한 제네릭 맵을 구현해보고, sync.Map의 인터페이스와 내부 동작 원리를 비교합니다.
sync.Mutex, sync.RWMutex, sync.WaitGroup의 내부 구현을 futex 시스템 콜 수준에서 분석합니다.
sync.RWMutex를 활용하여 고루틴 안전한 제네릭 맵을 구현해보고, sync.Map의 인터페이스와 내부 동작 원리를 비교합니다.
golang select문의 내부 구현과 동작 원리를 Go runtime 소스 코드를 통해 분석합니다.
golang 채널의 내부 자료구조와 send/recv 연산이 Go 런타임 소스 코드 수준에서 어떻게 동작하는지 분석합니다.
select문에 우선순위를 주입하는 방법과, 고루틴·채널·select·atomic을 조합하여 이벤트루프를 구현하는 방법을 알아봅니다.
golang select문의 내부 구현과 동작 원리를 Go runtime 소스 코드를 통해 분석합니다.
대기행렬이론(Queuing Theory)의 핵심 방정식을 살펴보고, 이를 이벤트루프 시스템에 적용하여 안전한 큐 운용 방법을 탐구합니다.
select문에 우선순위를 주입하는 방법과, 고루틴·채널·select·atomic을 조합하여 이벤트루프를 구현하는 방법을 알아봅니다.
golang에서 context를 활용할 때 발생할 수 있는 대표적인 함정과 올바른 사용 패턴을 사례 중심으로 알아봅니다.
golang context 패키지가 고루틴 수명 제어와 값 전파에 어떻게 활용되는지 내부 구현을 중심으로 살펴봅니다.
LiveStateCache가 ClusterCache를 생성·동기화하고, 감지된 이벤트를 ApplicationController까지 전달하는 흐름을 코드 레벨로 살펴봅니다.
ArgoCD가 외부 클러스터의 리소스를 모니터링하기 위해 gitops-engine의 ClusterCache를 초기화하고 활용하는 방식을 분석합니다.
Vitess의 MySQL 서버가 handshake, 인증, 패킷 파싱, ComQuery 실행까지 어떤 순서로 처리하는지 코드 레벨로 추적합니다.
vtgate가 CLI 진입점에서 초기화된 뒤 MySQL 프로토콜 리스너를 열고 Accept 루프에 진입하는 흐름을 코드 레벨로 살펴봅니다.
Vitess의 MySQL 서버가 handshake, 인증, 패킷 파싱, ComQuery 실행까지 어떤 순서로 처리하는지 코드 레벨로 추적합니다.
vtgate가 CLI 진입점에서 초기화된 뒤 MySQL 프로토콜 리스너를 열고 Accept 루프에 진입하는 흐름을 코드 레벨로 살펴봅니다.
Vitess의 MySQL 서버가 handshake, 인증, 패킷 파싱, ComQuery 실행까지 어떤 순서로 처리하는지 코드 레벨로 추적합니다.
vtgate가 CLI 진입점에서 초기화된 뒤 MySQL 프로토콜 리스너를 열고 Accept 루프에 진입하는 흐름을 코드 레벨로 살펴봅니다.
kubelet은 컨테이너 런타임과 직접 결합하지 않고, CRI(Container Runtime Interface)라는 gRPC 기반의 표준 인터페이스를 통해 통신합니다.
kubernetes에서 가장 기본적인 동작은 Pod를 처리하는 것입니다. scheduler와 kubelet의 내부 동작을 코드 레벨로 따라갑니다.
containerd 소스코드에서 등장하는 설계 선택의 이유를 추적합니다.
containerd의 플러그인 등록 메커니즘과 gRPC 서버 초기화 과정을 init()부터 소켓 리스너 실행까지 코드 수준으로 분석합니다.
sync.Mutex, sync.RWMutex, sync.WaitGroup의 내부 구현을 futex 시스템 콜 수준에서 분석합니다.
대기행렬이론(Queuing Theory)의 핵심 방정식을 살펴보고, 이를 이벤트루프 시스템에 적용하여 안전한 큐 운용 방법을 탐구합니다.
sync.Cond의 내부 구현과, Mutex·channel보다 효과적으로 여러 고루틴을 조율하는 사용 패턴을 알아봅니다.
golang에서 클로저가 힙 메모리를 캡처하는 메커니즘과, 이를 활용한 circuit breaker 패턴 구현 방법을 살펴봅니다.
golang에서 클로저가 힙 메모리를 캡처하는 메커니즘과, 이를 활용한 circuit breaker 패턴 구현 방법을 살펴봅니다.
golang net 패키지의 Listener와 Conn이 내부적으로 POSIX syscall을 어떻게 활용하는지, unix 패키지로 직접 재구현하며 확인합니다.
ArgoCD CLI에서 app을 생성할 때 ArgoCD 내부 컴포넌트가 어떻게 상호작용하는지, main 진입점과 CLI 기본 동작을 중심으로 살펴봅니다.
ArgoCD CLI에서 전달된 app 생성 gRPC 요청을 API Server가 어떻게 처리하는지 초기화 과정부터 따라갑니다.
ArgoCD Application Controller가 Informer를 통해 App 생성·변경 이벤트를 감지하고 처리 큐에 등록하는 흐름을 코드 레벨로 추적합니다.
ArgoCD의 repo-server 컴포넌트가 원격 저장소에서 k8s manifest를 생성·반환하는 방식을 App Controller와의 상호작용을 중심으로 살펴봅니다.
LiveStateCache가 ClusterCache를 생성·동기화하고, 감지된 이벤트를 ApplicationController까지 전달하는 흐름을 코드 레벨로 살펴봅니다.
vtgate가 CLI 진입점에서 초기화된 뒤 MySQL 프로토콜 리스너를 열고 Accept 루프에 진입하는 흐름을 코드 레벨로 살펴봅니다.
Vitess의 MySQL 서버가 handshake, 인증, 패킷 파싱, ComQuery 실행까지 어떤 순서로 처리하는지 코드 레벨로 추적합니다.
Vitess의 MySQL 서버가 handshake, 인증, 패킷 파싱, ComQuery 실행까지 어떤 순서로 처리하는지 코드 레벨로 추적합니다.
Vitess의 MySQL 서버가 handshake, 인증, 패킷 파싱, ComQuery 실행까지 어떤 순서로 처리하는지 코드 레벨로 추적합니다.
kubernetes에서 가장 기본적인 동작은 Pod를 처리하는 것입니다. scheduler와 kubelet의 내부 동작을 코드 레벨로 따라갑니다.
kubelet은 컨테이너 런타임과 직접 결합하지 않고, CRI(Container Runtime Interface)라는 gRPC 기반의 표준 인터페이스를 통해 통신합니다.
kubelet은 컨테이너 런타임과 직접 결합하지 않고, CRI(Container Runtime Interface)라는 gRPC 기반의 표준 인터페이스를 통해 통신합니다.
containerd의 플러그인 등록 메커니즘과 gRPC 서버 초기화 과정을 init()부터 소켓 리스너 실행까지 코드 수준으로 분석합니다.
kubelet의 RunPodSandbox 요청에 대한 containerd 내부 처리 과정을 netns 생성부터 shim 기동까지 코드 수준으로 분석합니다.
kubelet의 RunPodSandbox 요청에 대한 containerd 내부 처리 과정을 netns 생성부터 shim 기동까지 코드 수준으로 분석합니다.
kubelet의 CreateContainer와 StartContainer 요청에 대한 containerd 내부 처리 과정을 스냅샷 생성부터 runc start까지 코드 수준으로 분석합니다.
kubelet의 CreateContainer와 StartContainer 요청에 대한 containerd 내부 처리 과정을 스냅샷 생성부터 runc start까지 코드 수준으로 분석합니다.
containerd 소스코드에서 등장하는 설계 선택의 이유를 추적합니다.
containerd 소스코드에서 등장하는 설계 선택의 이유를 추적합니다.