YK
← Posts

[WEEK8] 네트워크와 스레드

2026-04-23

이번주의 학습 키워드는 BSD Socket, IP, TCP, HTTP, File Descriptor, DNS이다.

초반 하루 정도는 개념 학습에 할애하고, 이후 코드를 작성하는 흐름으로 진행했다. 대부분의 기능을 library로 처리하다 보니 코드는 간결해졌고 전체적인 구현 패턴은 익힐 수 있었으나, 추상화된 계층 아래에서 일어나는 본질적인 동작 원리까지 완전히 이해하기는 어려웠다. 하지만 네트워크 자원을 직접 다루는 과정에서 "모든 것은 파일이다(Everything is a file)"라는 리눅스의 철학을 어느 정도 체감할 수 있었다. 결국 더 낮은 수준의 시스템을 이해하려면 커널영역을 직접 들여다보아야 한다는 것을 깨달았으며, 시스템의 깊은 곳을 다루게 될 다음 주차의 과정이 기대된다.

이번 AI 프로젝트의 주제는 미니 DBMS - API Server를 구축하는 것이었다. 구현 과정에서 가장 중점적으로 다룬 것은 Thread Pool과 Lock 메커니즘이다. 기존에는 스레드를 생성하는 데 오버헤드가 크다는 점만 막연히 알고 있었으나, 이번 학습을 통해 스레드는 단순한 데이터 구조체의 집합이 아니라 독립적인 Execution Flow(실행 흐름)이며, 이들이 가상메모리를 공유하며 묶여 있는 형태가 하나의 프로세스라는 것을 명확히 정리할 수 있었다.

여러 번의 AI 프로젝트를 거치면서 AI 툴 자체에 대한 이해와 활용도도 높아졌다. 이제는 단순한 코드 생성을 넘어, 반복되는 요소들을 어떻게 모듈화하여 효율적으로 재사용할 수 있을지 구조적인 접근을 시도하고 있다. 현재는 시스템의 전체적인 뼈대를 잡는 데 집중하고 있어 하네스 엔지니어링과 같이 코드를 구조적으로 검증하고 단단하게 만드는 심화 기법까지는 도입하지 못했다. 하지만 향후 AI를 주도적으로 활용하는 프로젝트에서는 이러한 엔지니어링 방법론도 적극적으로 적용해 볼 계획이다.