TIL 16: 레거시 시스템은 지옥

TL;DR

  • 레거시 시스템은 가능하면 빨리 개선해서 지옥을 맞이하지 않도록 하자.

뉴저지 코볼(COBOL) 사건으로 느껴지는 레거시 시스템의 폐해

노마드 코더는 즐겨보는 유튜버 중 한명으로 다양한 프로그래밍 관련 이야기를 해준다.
가끔씩 재밌는 이슈도 이야기 해주는데, 이번에 들려준 이슈는 코볼(COBOL) 레거시 시스템에서 얻는 교훈에 관한 것이었다. (유튜브 영상 링크)

간단히 요약하자면, 미국 뉴저지 정부의 전산 시스템이 비교적 오래된 언어인 코볼로 이뤄져 있는 레거시 시스템인데, 개발자를 구할 수 없다는 것이다. 이번 코로나19 사태로 전산 시스템에 유래 없이 많은 사용자가 몰리게 되었고, 그것의 유지보수를 위해 코볼 개발자를 급하게 구하고 있지만 공급이 없어 애를 먹는 상황이다.

오래된 언어답게 요즘 자주 사용하는 언어에 비하면 생산성도 떨어지고, 여러모로 단점이 많다. 이렇게 오랫동안 지속된 레거시 시스템은 진작에 시간을 두어 개편 작업을 해야 마땅한데 현업에서도 우선순위에서 밀리는 경우가 많다.
이처럼 뉴저지 코볼 사건은 레거시 시스템이 낳은 안타까운 결과물 중 하나이다.

비슷하게 (어디에나 존재할 수 있지만) 재직중인 회사에도 레거시 시스템이 존재한다. 그것의 구조적 한계로 인해 일부 유용한 개선도 못하고 있는 것이 보인다.
또한, 내가 맡고 있는 iOS 앱들도 불필요하게 Objective-C에 MRC 환경으로 되어 있다. 이런 환경일수록 더 디테일하게 다뤄야 하는데 그러지 못해 버그와 메모리 누수가 산발한다.

뉴저지 코볼 사건처럼 나중에 후회하지 않으려면 일부 시간을 내서라도 구조, 환경 등의 개편을 진행해야 한다고 생각한다. 그렇게 하나의 앱은 한달의 시간을 어떻게든 내어 Objective-C에서 Swift로 포팅을 진행했고, 여러모로 만족하고 있다.

앞으로도 기회가 조금이라도 보이면, 기회를 만들어 기존 앱들의 포팅을 진행하거나 효율적인 구조로 개편하는 작업을 하고 싶다. 야근은 자제하면서 말이다.. 😇

TIL 17: 자잘한 안드로이드 UI 팁들 TIL 15: Notion은 유용해