⚙ Essays

⚙ Essays

시스템이 어떻게 동작하는지 이해하고 기록하기 위한 기술 노트 모음. Unix 설계 철학, 운영 환경, 개발 도구, 소프트웨어 구조, 실제 개발 과정에서 마주한 문제와 해결 과정을 정리한다. 단순한 튜토리얼보다 기술의 배경과 원리, 그리고 왜 그렇게 설계되었는지를 탐구하는 엔지니어링 기록에 가깝다.

Latest posts

AI로 다시 쓴 코드의 라이선스는 누구의 것인가 — chardet 논쟁이 보여준 AI 시대의 저작권 딜레마

AI로 다시 작성된 코드의 라이선스는 누구의 것일까. Python 라이브러리 chardet의 라이선스 변경 논쟁을 통해 AI 코드 생성, 클린룸 구현, 그리고 오픈소스 저작권 체계가 맞닥뜨린 새로운 법적 딜레마를 살펴본다.

AI가 코드를 쓰는 시대 — 소프트웨어 저작권과 오픈소스의 새로운 질문들

AI가 코드를 생성하는 시대가 시작되면서 소프트웨어의 저작권과 오픈소스 라이선스에 대한 오래된 전제가 흔들리기 시작했다. AI가 만든 코드의 소유권은 누구에게 있는지, Copyleft는 여전히 의미가 있는지, 그리고 기존 라이선스 체계는 이 변화를 감당할 수 있는지. 이 시리즈는 AI 코드 생성이 던지는 새로운 법적·기술적 질문들을 하나씩 탐구한다.

작은 명령어 뒤에 숨은 Unix 설계 이야기 — 수십 년을 살아남은 가장 작은 인터페이스

터미널에서 무심코 사용하는 작은 기호들 — stdout, 파이프, fork, 그리고 파일 디스크립터. 이 시리즈는 그 단순한 인터페이스 뒤에 숨어 있는 Unix의 설계 철학을 따라가 보았다. 수십 년이 지나도 여전히 살아 있는 작은 인터페이스들의 이야기.

왜 Docker 로그는 stdout일까 — Unix I/O 모델이 컨테이너 시대까지 살아남은 이유

Docker와 Kubernetes 환경에서 애플리케이션 로그는 왜 파일이 아니라 stdout으로 출력해야 할까? 컨테이너 로그 구조를 따라가 보면 결국 Unix의 오래된 설계로 돌아가게 된다. stdout과 stderr로 분리된 I/O 모델이 어떻게 현대 클라우드 인프라의 로그 시스템까지 이어졌는지 살펴본다.

Everything is a File — Unix가 세상을 파일로 만든 이유

Unix에는 “Everything is a file”이라는 유명한 철학이 있다. 디스크 파일뿐 아니라 터미널, 파이프, 네트워크 소켓까지 모두 같은 방식으로 다루는 이 단순한 설계는 Unix 시스템 전체의 구조를 결정지었다. 이 글에서는 왜 Unix가 세상을 파일로 표현하려 했는지, 그리고 그 선택이 오늘날의 소프트웨어 구조에 어떤 영향을 남겼는지를 살펴본다.

셸 리디렉션은 실제로 어떻게 동작할까 — fork, exec, dup2 뒤에 숨은 Unix 프로세스 이야기

우리가 매일 사용하는 >, |, 2>&1 같은 셸 문법은 단순한 출력 리디렉션이 아니다. 이 글에서는 fork, exec, dup2 같은 Unix 시스템 호출이 어떻게 결합되어 셸 리디렉션과 파이프라인을 만들어 내는지 살펴본다.