CS 지식이 더 중요해지는 이유

요즘 AI를 사용해 코드를 생성하고 새로운 기술이 쏟아지는 시대를 체감하고 있다. 대부분의 현대 기술은 완전히 새로운 개념이 아니라, 이미 수십 년 전에 정립된 컴퓨터 과학(CS)의 개념을 응용하거나 재해석한 것이다. AI가 루틴한 코딩업무를 대신할 수는 있겠지만 시스템의 복잡한 병목 현상을 해결하거나 설계의 트레이드오프를 판단하는 것은 여전히 엔지니어의 몫이다.

CS 지식은 변하지 않는다

나뭇잎이 떨어지고 새로 생겨도 나뭇가지를 지탱하는 뿌리는 변하지 않는다. 프레임워크나 언어 기술은 나뭇잎이지만, CS는 뿌리와 같다.

기술이 빠르게 변할수록 '무엇을 쓸 것인가'보다는 '어떻게 작동하는가'라는 본질에 집중해야 한다. CS라는 단단한 기초를 가진 엔지니어는 새로운 기술이 나와도 그 핵심 개념을 빠르게 파악할 수 있다. 결국 본질에 투자하는 것이 기술적 불확실성이나 새로운 기술의 등장에 두려워하지 않고 이겨내는 방법일 것이다.

최신 기술에 쓰인 CS 개념 사례

대부분의 기술의 하부 구조를 뜯어보면 결국 CS의 핵심 원리가 작동하고 있음을 알 수 있다. 구체적으로는 아래와 같은 기술들이 있다.

커넥션 풀

OS가 한정된 CPU 자원을 여러 프로세스에 분배하기 위해 상태를 관리하는 방식에 대해 알아보자. 운영체제는 프로세스를 생성할 때마다 PCB(Process Control Block)라는 데이터 구조를 생성하여 상태를 기록한다. 프로세스가 빈번하게 생성되고 소멸되면, 이 정보를 메모리에 쓰고 지우는 과정에서 막대한 Context Switching 비용이 발생하며 시스템 성능이 저하된다.

데이터베이스와의 통신에서도 동일한 문제가 발생한다. TCP 연결마다 생성되는 TCB(Transmission Control Block)는 OS의 PCB와 마찬가지로 생성 비용이 높다.

따라서 OS가 자주 쓰는 프로세스를 완전히 종료하지 않고 대기 상태로 두어 효율을 높이듯, 커넥션 풀은 미리 연결된 소켓(TCB)을 메모리에 상주시켜 ‘풀(Pool)’이라는 자원 집합에 보관한다. 이는 자원의 할당과 해제를 반복하지 않고 재사용(Reuse)한다는 OS의 자원 관리 최적화 기법이 네트워크 계층으로 확장된 것이다.

도커

운영체제가 개별 프로세스에게 독립적인 실행 환경을 제공하기 위해 사용하던 가상화라는 개념이 도커에도 사용됐다. 운영체제는 가상 메모리(Virtual Memory)를 통해 각 프로세스가 마치 시스템의 메모리를 독점하고 있는 것처럼 느끼게 한다. 이는 실제 물리 주소를 숨기고 논리 주소를 제공하는 추상화의 일종이다.

도커의 핵심인 Namespaces는 이 개념을 시스템 자원 전체로 확장했다. OS가 프로세스에게 가상 메모리 주소를 할당하듯, 도커는 컨테이너 내부 프로세스에게 독립적인 가상 네트워크 인터페이스, 가상 호스트명, 가상 PID 공간을 부여한다. 또한 Cgroups는 OS가 멀티태스킹 환경에서 CPU 스케줄링을 통해 자원을 배분하던 원리를 정교화한 것이다.

특정 프로세스 그룹이 사용할 수 있는 자원의 상한선(Quota)을 강제로 지정함으로써, 현대의 클라우드 인프라는 OS 커널 수준에서의 자원 격리 및 배분이라는 고전적 원리를 통해 수천 개의 컨테이너를 안정적으로 운용한다.

VM

물리 서버 하나를 여러 대의 서버처럼 분할하여 사용하는 가상 머신(VM) 기술은 운영체제가 하드웨어를 관리하는 고전적인 방식에서 기인한다. 운영체제는 하드웨어와 소프트웨어 사이에서 중계자 역할을 수행한다.

프로그래머가 복잡한 기계 신호를 직접 제어하는 대신 규격화된 명령을 통해 자원을 사용하게 만드는데, 이것이 시스템 운영의 본질적인 추상화다. 컴퓨터 과학에서 추상화란 복잡한 내부 구현이나 하부 구조를 감추고 사용자가 꼭 알아야 하는 핵심 기능만을 제공하는 것을 의미하며, 마치 운전자가 엔진 원리를 몰라도 페달만으로 차를 움직이는 것과 같다.

클라우드 기술의 핵심인 하이퍼바이저는 이러한 운영체제의 역할을 시스템 전체 단위로 확장한 것으로, 하드웨어 자원을 중간에서 가로채 여러 개의 독립된 운영체제에게 논리적으로 쪼개어 배분한다. 결국 하이퍼바이저가 각 가상 머신에 자원을 할당하는 방식은 운영체제 커널이 여러 작업에 시간을 나누어 자원을 배분하던 스케줄링 원리를 하드웨어 단위로 재현한 것이다.

변하지 않는 것에 집중

기술 트렌드는 빠르게 바뀌지만 우리가 사용하는 최신 기술들은 결국 운영체제가 자원을 관리하고, 프로세스를 격리하며, 하드웨어를 추상화하던 CS의 지식들 처럼 빌려온 것에 불과하다.

AI가 생산성을 높여주는 시대일수록 엔지니어의 진짜 실력은 도구 숙련도가 아니라 시스템의 내부를 꿰뚫어 보는 통찰력에서 결정된다. 새로운 기술을 배우는 속도는 그 기술이 뿌리내린 CS 지식의 깊이에 비례한다. 변화가 심할수록 본질에 집중하는 것이 중요하다.