가비지 컬렉션(garbage collection)은 개발을 편하게 해준다는 '환상'을 줍니다. 하지만 그 대가로 시스템의 예측 가능성과 효율을 희생합니다. 그래서 이제는 비효율과 부작용이 큰 레거시 방식이 되었습니다.
가비지 컬렉션(GC)에는 '스톱-더-월드(Stop-the-World)' 이벤트가 있습니다. 이 방식에는 기술적 한계가 있습니다.
또한 애플은 비밀번호 모니터링 서비스를 Java에서 Swift로 옮겼습니다. 이 사례도 함께 살펴봅니다.
이를 통해 예측 불가능한 성능 지연과 높은 자원 부담(오버헤드)이 현대의 대규모 애플리케이션을 어떻게 망가뜨리는지 보여줍니다.
또한 프로그래밍 업계는 근본적으로 추측에 의존하는 결함 있는 시스템을 최적화하려고 계속 매달리고 있습니다. 그리고 그보다는 더 정밀한 메모리 모델을 받아들여야 합니다.
그래서 더 나은 메모리 모델로 옮겨가야 합니다. 예를 들어, Rust의 소유권(ownership) 규칙이 있습니다. 또 게임 개발용 언어인 Jai가 보여준 스택 아레나 방식도 있습니다. 그리고 Swift의 자동 참조 카운팅(Automatic Reference Counting, ARC) 역시 유력한 대안으로 제시합니다.
결론적으로 전환이 필요합니다. 가비지 컬렉션(GC)만으로는 실시간 수준의 신뢰성을 얻기 어렵기 때문입니다.
#코딩 #개발자 #프로그래밍 #자바 #애플