주말, 개발자들은 무엇을 할까?
개발자들은 주말을 활용해 개인 프로젝트를 진행하며 새로운 기술을 탐구하고 있음
레트로 게임 포팅, 시스템 개발, 임베디드 시스템 연구 등 다양한 분야의 활동이 공유됨
OCaml, Rust, BEAM, NixOS 등 특정 언어 및 기술 스택에 대한 깊이 있는 논의도 이루어짐
OCaml 기반 'slopscore' 프로젝트 구상
한 개발자는 프로젝트의 '바이브코딩(vibecoding)' 가능성을 예측하는 시스템 'slopscore'를 OCaml로 개발할 계획임을 밝혔다. 순수 함수(Pure Functions)를 활용하여 리포지토리(Repository)를 제품 유형(Product Type)으로 모델링하고, Git CLI를 래핑하는 라이브러리를 별도 구축하여 커밋 목록, 차이점 등을 분석하겠다는 구상이다. 이 접근 방식은 데이터 격리 아키텍처(Data Isolation Architecture)를 통해 코드의 예측 가능성을 높이는 데 중점을 둔다.
Perfect Dark 64 레벨 포팅의 기술적 난제
Lobsters 커뮤니티에서는 Perfect Dark 64 레벨을 noclip.website로 포팅하는 작업에 대한 논의가 있었다. 개발자는 정적 지오메트리(Static Geometry)와 버텍스 라이팅(Vertex Lighting) 구현을 완료했으며, 게임의 독자적인 마이크로코드(Proprietary Microcode)와 디스플레이 리스트(Display Lists) 형식으로 인해 렌더링 엔진 및 데이터 계층 재구현이 필수적임을 강조했다. 이는 그래픽 칩 에뮬레이션(Graphics Chip Emulation) 수준의 복잡성을 수반하는 작업이다.
BEAM VM의 임베디드 시스템 통합 시도
여러 사용자가 BEAM VM을 임베디드 시스템에 통합하려는 시도를 공유했다. 한 개발자는 Nix, Zig, LionsOS를 활용하여 seL4 마이크로커널에 BEAM을 올리는 데 성공했으며, Erlang 쉘 부팅까지 확인했다고 밝혔다. 다른 사용자는 AtomVM을 사용하여 사용자 정의 ERTS를 대체하는 방안을 주말에 테스트할 계획임을 언급하며, 데이터 미저장 정책(Zero-Retention Policy)을 갖춘 환경에서의 BEAM 활용 가능성을 탐색하고 있다.
Rust 표준 라이브러리 및 생태계 논쟁
Rust를 연습 중인 개발자는 `rand` 크레이트가 표준 라이브러리에 포함되지 않은 점에 의문을 제기했다. 이에 대해 다른 사용자는 보안을 위한 안전한 RNG(Secure RNG)와 고성능 컴퓨팅(High-Performance Computing)을 위한 빠른 RNG 간의 트레이드오프 때문에 표준 라이브러리에서 분리하는 것이 합리적이라고 설명했다. `rand`, `serde`, `clap` 등 널리 사용되는 크레이트들이 사실상 표준 라이브러리처럼 느껴진다는 의견도 있었다.
컴파일러 학습 및 데이터플로우 분석 연습
한 개발자는 면접 준비를 위해 컴파일러 기초, 특히 데이터플로우 분석(Dataflow Analysis)을 공부하고 있다고 밝혔다. 온라인에서 관련 연습 문제를 찾기 어려워 'Modern Compiler Implementation in ML' 서적을 참고 중이며, 다른 사용자는 CMU 컴파일러 과제 자료를 공유하며 도움을 주었다. 이는 컴파일러 엔지니어링(Compiler Engineering) 분야의 학습 난이도를 보여준다.
게임 개발 및 툴링의 복잡성
Godot 엔진으로 킹스필드 스타일 게임을 개발 중인 사용자는 물리 기반 전투, 방어, 패리 시스템을 구현했다고 공유했다. 특히 적에게 앰비언트 오디오(Ambient Audio)를 부착하여 에코로케이션 효과를 주는 아이디어를 언급했다. 또한, Vim보다 복잡하게 느껴지는 블렌더의 텍스처 페인팅(Texture Painting in Blender)과 같은 게임 개발 관련 툴링의 복잡성에 대해 언급하며 생산성 유지의 어려움을 토로했다.