안전함은 형식화 이후에 정의되는 것이다

Safe Is What We Call Things Later - by Scott Werner

작성자
발행일
2025년 08월 24일

핵심 요약

  • 1 소프트웨어 개발은 형식주의(Dijkstra)와 비형식주의(Alan Kay) 사이를 끊임없이 오가는 진자 운동과 같습니다.
  • 2 현재 AI 개발은 극한의 비형식주의 시대를 맞이하고 있으며, 이는 결국 새로운 형식화 단계를 거쳐 안정화될 것입니다.
  • 3 탐색을 통한 가능성 발견과 형식화를 통한 안정성 확보, 이 두 가지 접근 방식은 소프트웨어 발전에 필수적입니다.

도입

어린아이가 끊임없이 변하는 조수 웅덩이에 좌절하는 모습처럼, 소프트웨어 개발 역시 예측 불가능한 변화의 물결 속에서 진행됩니다. 본 글은 소프트웨어 업계가 형식주의와 비형식주의라는 두 가지 근본적인 프로그래밍 철학 사이를 마치 진자처럼 오가고 있음을 탐구합니다. Avdi Grimm의 통찰처럼 객체 지향 프로그래밍 교육 방식(상속 vs. 다형성)에서 이미 드러나는 이러한 경향은 Edsger Dijkstra로 대표되는 형식주의와 Alan Kay로 대표되는 비형식주의라는 상반된 세계관을 반영합니다.

소프트웨어 개발 철학: 형식주의와 비형식주의

소프트웨어 개발은 Edsger Dijkstra의 형식주의와 Alan Kay의 비형식주의라는 두 대립 철학 사이를 진자처럼 오갑니다. 형식주의는 코드를 수학적 증명으로 간주, 컴파일 시점 검증과 구조적 정확성(예: C++, Java)을 중시하며 미션 크리티컬 시스템에 필수적입니다. 비형식주의는 코드를 살아있는 대화형 시스템으로 보며 런타임 변경과 유연한 탐색(예: Smalltalk, JavaScript, Ruby)을 강조, 빠른 혁신을 가능하게 합니다.

진자 운동의 역사와 AI 시대

이 진자 운동은 컴퓨팅 역사 전반에 걸쳐 반복되었습니다. Smalltalk의 비형식적 아이디어는 C++/Java에서 형식화되며 안정성을 얻었으나 유연성을 잃었습니다. 이후 JavaScript와 Ruby on Rails가 웹 시대 비형식주의를 이끌었으나, 복잡성 증가로 TypeScript, Go, Rust 같은 형식주의 언어들이 다시 부상했습니다.

현재 AI 개발은 ‘바이브 코딩’, AI 자기 수정 코드 등 극한의 비형식주의 시대를 맞이합니다. 형식적 명세 없이 AI 코드를 프로덕션에 배포하는 경향은 ‘안전함’의 정의를 모호하게 합니다. 그러나 역사는 반복되듯, 향후 5~6년 내 AI 활용 사례를 위한 새로운 형식화 시스템, 언어, 검증 도구 등이 개발될 것입니다. Dijkstra의 철학을 따르는 이들이 AI 혼돈을 형식화하고 ‘안전하게’ 만들며 진자는 다시 형식주의로 회귀할 것입니다.

결론

결론적으로, 소프트웨어 발전에는 가능성을 탐색하는 비형식주의자와 이를 안정화하는 형식주의자 모두가 필수적입니다. 이들은 '무엇이 가능한가?'와 '무엇이 지속 가능한가?'라는 중요한 질문을 다른 시점에 던지며 상호 보완적인 역할을 수행합니다. 마치 숨 쉬는 것과 같은 이 반복적인 진자 운동 속에서 비로소 세상을 변화시키는 의미 있는 결과물이 탄생합니다. 끊임없이 변화하는 조수 웅덩이에서 새로운 발견에 기뻐하는 아이처럼, 소프트웨어 세계도 이러한 순환 속에서 진정한 혁신을 이뤄낼 것입니다.

댓글 0

댓글 작성

0/1000
정중하고 건설적인 댓글을 작성해 주세요.

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!