테스트를 삭제해야 할 때

2025-08-30

수십 년 동안 테스트의 중요성이 강조되어 왔지만, 개발자들은 '테스트를 삭제하는 것은 신성모독이다'라는 잘못된 믿음을 가지게 되었습니다. 이 글은 테스트의 목적은 신뢰도를 높이는 것이지만, 오류가 잦거나, 중복되거나, 시간이 오래 걸리거나, 또는 시대에 뒤떨어진 테스트는 실제로 신뢰도를 떨어뜨린다고 주장합니다. 불안정한 테스트는 시간을 낭비하고, 테스트가 너무 많으면 효율성이 떨어집니다. 저자는 효율성과 신뢰도를 높이기 위해 신뢰도를 떨어뜨리는 테스트를 삭제하고 새로운 요구 사항에 맞춰 새로운 테스트를 작성해야 한다고 제안합니다.

더 보기
개발

rv: 혁신적인 Ruby 언어 관리자

2025-08-27

Bundler 개발에 10년간 참여한 개발자가 마침내 새로운 Ruby 관리 도구인 rv를 개발했습니다. rv는 gem 종속성뿐만 아니라 Ruby 버전도 관리하며, 미리 컴파일된 Ruby를 설치하여 긴 컴파일 시간을 해결합니다. 더 중요한 것은, 서로 다른 Ruby 버전이 필요한 스크립트나 도구라도 쉽게 실행할 수 있다는 점입니다. uv(Python의 유사 도구), cargo, npm 등 우수한 도구의 설계 철학을 도입하여 속도, 안정성, 그리고 `rv tool run`과 `rv tool install`과 같은 혁신적인 기능을 갖추고 있으며, Ruby 환경 관리를 간소화하고 개발자의 생산성을 비약적으로 향상시킵니다.

더 보기
개발

Rust 인메모리 파일 시스템 성능: 놀랍게도 중요하지 않음

2025-08-25

Rust로 CLI 도구를 구축하는 동안 파일 관리 테스트 속도 향상을 위해 인메모리 파일 시스템을 사용해 보았습니다. `vfs`와 `rsfs`와 같은 crate를 조사한 결과, 놀랍게도 현대 SSD와 OS 파일 시스템 캐싱이 매우 효율적이어서 인메모리 파일 시스템을 사용해도 성능 향상은 거의 없다는 결론에 도달했습니다. 인메모리 파일 시스템, 일반 파일 시스템, RAM 디스크를 사용한 테스트는 모두 약 45ms가 걸렸습니다. 이는 예상과 크게 달랐습니다. 인메모리 파일 시스템 사용으로 성능 차이가 발생한 사례를 공유해 주시면 감사하겠습니다.

더 보기