BeanHub: Beancount 기반 회계 소프트웨어 개발 3년의 여정

2025-03-05

데이터 보안과 자동화에 대한 열정으로 저자는 3년 동안 오픈소스 Beancount를 기반으로 한 회계 소프트웨어 BeanHub를 개발했습니다. 설계의 핵심은 "파일 우선" 접근 방식으로, 모든 작업은 데이터베이스가 아닌 텍스트 파일에서 수행되어 데이터의 개방성과 장기적인 접근성을 보장합니다. 이 과정에서 15개의 프로젝트를 오픈소스로 공개하고, 대규모 감사 가능한 Git 저장소 구축 및 사용자가 업로드한 파일의 안전한 처리와 같은 과제를 극복했습니다. 판매 및 경쟁 압력 속에서도 저자는 품질을 우선시하고, 튜토리얼 및 커뮤니티 구축을 통해 사용자 경험을 향상시켜 결국 유료 사용자를 확보하고 "파일 우선" 접근 방식의 장기적인 가치를 입증했습니다.

더 보기
개발

NixOS 기반 베어메탈 Kubernetes 클러스터에서 Nvidia GPU 사용하기: 토끼굴 모험

2025-03-02

작성자는 머신러닝 프레임워크 MAZE의 확장을 위해 세 대의 미니 PC와 한 대의 퇴역 워크스테이션으로 구성된 Kubernetes 클러스터에서 Nvidia GPU 지원을 활성화하려고 시도했습니다. 예상보다 훨씬 어려운 작업이었으며, Nvidia 디바이스 플러그인 구성, NixOS 환경의 복잡성, PKI 인증서 배포 등의 문제에 직면했습니다. 결국 성공하여 NixOS, Ansible, Sops를 사용한 Kubernetes 클러스터 배포 경험과 CRI, CDI, nvidia-container-toolkit 등 기술에 대한 심층적인 이해를 공유합니다. 또한 오픈소스 프로젝트의 패치 적용 및 빌드를 간소화하는 nix-playground라는 도구를 개발하고 디버깅에 Grok 3을 활용했습니다. 이 과정에서 PyCharm과 WSL NixOS의 호환성 문제 및 Kubernetes RuntimeClass 설정 등의 추가적인 문제에도 직면했습니다. 앨리스의 모험과 같은 이 여정은 작성자의 뛰어난 실행력과 문제 해결 능력을 보여줍니다.

더 보기
개발

소프트웨어 엔지니어의 CAD와 3D 프린팅 여정: 과도하게 설계된 웹캠 라이저

2024-12-16

숙련된 소프트웨어 엔지니어는 가상 세계의 프로그래밍에 지쳐 현실 세계에서 무언가를 만들고 싶어했습니다. 그는 Bambu Lab X1C 3D 프린터를 구입하여 3D 프린팅 기술을 빠르게 습득했습니다. 그런 다음 Fusion 360 CAD 소프트웨어를 배우기 시작했고, 놀랍게도 그 제약 개념이 iOS의 UI 제약과 유사하며 매개변수 CAD 설계가 함수형 프로그래밍과 공통점이 많다는 것을 알게 되었습니다. 그의 첫 번째 프로젝트는 웹캠이 화면을 가리는 문제를 해결하기 위한 과도하게 설계된 웹캠 라이저였습니다. 이 프로젝트를 통해 그는 3D 프린팅과 CAD 설계의 즐거움을 경험할 뿐만 아니라 설계 단계에서 제조, 재료 등 세부 사항을 고려해야 할 필요성을 깊이 이해하게 되었습니다.

더 보기