인공지능(AI) 기술이 발전하면서 코드 한 줄을 작성하는 비용은 압도적으로 저렴해지고 있습니다. 대규모 언어모델(LLM)과 같은 AI 도구들이 개발자의 코딩 작업을 크게 돕고 있기 때문입니다. 하지만 아이러니하게도, AI는 데이터 모델을 설계하거나 특정 상황에 대한 판단을 내리는 데는 여전히 한계를 보입니다. 이는 AI 시대에도 인간 개발자의 '의미 있는 모델링' 역량이 더욱 중요해지고 있음을 시사합니다.
예를 들어, 간단한 할 일(TODO) 앱에 '2주 동안 특정 간격으로 반복되는 알람' 기능을 추가한다고 가정해봅시다. 이 기능을 구현하려면 단순히 코드를 나열하는 것을 넘어, 반복 간격, 달력 체계(양력/음력), 종료 시점 등을 고려한 데이터 모델을 자연스럽게 설계하게 됩니다. 이때 핵심 앱 로직은 그대로 두고, GUI 스크립트가 반복 규칙을 계산하고 ISO8601 같은 표준 포맷으로 상위 로직을 변환하도록 설계하면, AI가 생성한 수백 줄의 파이썬(Python)이나 펄(Perl) 스크립트를 활용하더라도 전체 시스템의 복잡성을 효과적으로 관리할 수 있습니다. 이러한 설계 방식은 명확한 역할 분리와 구조 단순화를 통해 각 부분의 책임 범위를 좁히고, 문제 발생 시 원인을 빠르게 파악하고 해결할 수 있도록 돕습니다.
결국 AI 시대에도 프로그래밍의 본질적인 재미와 효율성을 유지하기 위해서는 이해 가능하고 통제 가능한 소프트웨어 분리 원칙이 여전히 중요합니다. AI는 강력한 도구이지만, 복잡한 시스템의 전체적인 구조를 설계하고 각 구성 요소 간의 '의미' 있는 관계를 정의하는 역할은 여전히 인간 개발자의 몫입니다. 이는 AI가 엔지니어링 규율을 줄이기보다 오히려 더 많이 요구하며, 개발자들이 단순 코딩을 넘어 시스템 아키텍처와 데이터 모델링 역량을 강화해야 함을 의미합니다.