핵심 요약
- 100년 동안 유지보수 없이 돌아가는 웹 서비스를 만드는 법에 관한 발표에서 영감을 받은 개발자의 글입니다.
- SQLite나 펄 같은 기술의 단점이나 오래된 버그성 동작은 역설적으로 과거 코드를 절대 깨뜨리지 않는 강력한 하위 호환성의 증거라고 설명합니다.
- 미래의 잦은 유지보수를 피하려면 당장 흠결이 보이지 않는 최신 기술보다 레거시를 철저히 보존해 온 기술을 골라야 한다고 주장합니다.
요약 한 개발자가 100년 동안 유지보수 없이 작동할 웹 서비스를 설계하는 발표 영상을 본 뒤, 기술 선택에 대한 흥미로운 통찰을 공유했습니다. 수백 년을 버티는 다리나 수십 년 동안 깨지지 않는 HTML/CSS 기반 웹페이지처럼, 외부 환경 변화로 인해 코드를 뜯어고쳐야 하는 일이 없는 기술 스택을 어떻게 고를 것인가에 대한 고민입니다.
글쓴이는 모바일 앱은 몇 년, 데스크톱 프로그램은 기껏해야 10년 안팎의 수명을 가지지만, 웹 표준은 40년 전 만들어진 페이지도 그대로 실행된다는 점에 주목합니다. 하지만 데이터베이스나 비즈니스 로직이 들어가는 서비스에서는 어떤 기술을 써야 할까요? 영상에서는 SQLite, Express, Jinja2, 순수 자바스크립트 등의 조합을 제안합니다.
특히 SQLite처럼 오랜 세월 동안 지적받아 온 '단점(warts)'—느슨한 타입 체크, 기본적으로 외래 키를 강제하지 않는 동작 등—에 대한 시각 전환이 핵심입니다. 보통 개발자들은 이러한 흠결을 불완전하거나 나쁜 설계라고 비판하지만, 역설적으로 이는 과거 누군가가 작성했던 프로덕션 코드를 깨뜨리지 않기 위해 유지보수 팀이 '하위 호환성'을 극한으로 챙겨왔다는 명백한 증거라는 것입니다.
결국 지금 당장 흠잡을 데 없이 깔끔해 보이는 최신 유행 기술보다는, 과거의 흠결을 품고서라도 이전 코드를 계속 돌아가게 만들어 주는 기술이야말로 미래의 나를 유지보수 지옥에서 구해줄 가장 안전한 선택이라는 결론을 전하고 있습니다.
Sponsored · 광고