프로젝트 BF-llama: 런타임 에러 제로(Zero)를 향하여 – ‘객체지향의 환상과 무자비한 컴파일러의 심판’

서문: 타협의 시대는 끝났다 “우리는 오랫동안 가비지 컬렉터(Garbage Collector)라는 거대한 기만 위에 시스템을 쌓아 올렸습니다.” 메모리가 새면 주기적으로 서버를 재시작하고, 알 수 없는 런타임 에러가 터지면 try-catch 블록으로 덮어버린 채 에러 로그나 남기며 안도했습니다. 파이썬, 자바스크립트, 자바 생태계가 제공하는 안락한 객체지향(OOP)의 추상화 뒤에 숨어, 내가 선언한 데이터가 스택에 쌓이는지 힙에 흩어지는지 통제권을...

Rust 배우기 – 04. 객체지향의 해체: 러스트에는 클래스가 없다

단호하게 말씀드립니다. 러스트(Rust)에는 class 키워드가 존재하지 않습니다. 객체지향 프로그래밍(OOP)의 핵심인 상속(extends)의 개념도 없습니다. Java, Python, C++ 등 전통적인 OOP 언어는 데이터(상태)와 메서드(행위)를 하나의 덩어리인 클래스로 묶어서 관리합니다. 하지만 러스트는 이 둘을 철저하고 엄격하게 분리합니다.  1. 데이터와 행위의 철저한 분리 (struct + impl) 러스트는 데이터와 로직이 뒤섞이는 것을 구조적으로 차단합니다. 상태 (D...