AI 시대, 미래의 프레임워크를 상상해보자

AI프레임워크ReactSpring개발미래생각정리아키텍처
AI 시대, 미래의 프레임워크를 상상해보자

AI시대, 미래의 프레임워크를 상상해보자

들어가며

최근 이글루라는 글쓰기 모임에 참여하게 되었다.

주제는 자유였지만, 개발자들이 많이 참여하는 모임인 만큼 개발과 관련된 글을 써보고 싶었다.

어떤 주제를 다루면 재미있을까 고민하다가 문득 이런 생각이 들었다.

"미래에는 어떤 프레임워크가 등장할까?"

처음에는 단순히 React 이후에 어떤 프레임워크가 나올지를 떠올렸다.

하지만 생각을 이어가다 보니 더 근본적인 질문이 생겼다.

"AI가 대부분의 코드를 작성하는 시대에도 지금과 같은 프레임워크가 필요할까?"

프레임워크는 결국 사람이 더 쉽고 빠르게 개발하기 위해 만들어진 도구이다. 그렇다면 AI가 개발의 중심이 되는 시대에는 지금의 프레임워크가 어떤 모습으로 변화할까? 아니면 아예 다른 형태의 도구로 진화하게 될까?

이 글은 이러한 궁금증에서 시작된 하나의 사고 실험이다.

물론 미래를 정확하게 예측하는 것은 불가능하다.

다만 지금의 프레임워크가 어떤 문제를 해결하기 위해 등장했는지 돌아보고, AI가 그 역할을 대신하게 된다면 앞으로는 어떤 방식으로 그 문제를 해결할지 상상해 보고자 한다.

그럼, AI 시대의 프레임워크는 어떤 모습일지 함께 상상해 보자.

프레임워크는 왜 만들어졌을까?

프레임워크를 이야기하기 전에 먼저 비슷한 용어들을 잠깐 살펴보자.

개발을 하다 보면 라이브러리(Library)와 프레임워크(Framework)라는 용어를 자주 접하게 된다.

둘 다 개발을 도와주는 도구이지만, 가장 큰 차이는 누가 애플리케이션의 흐름을 제어하느냐에 있다.

라이브러리는 개발자가 필요할 때 직접 호출해서 사용하는 도구이다.

내 코드 → 라이브러리

반면 프레임워크는 조금 다르다. 애플리케이션의 전체 흐름은 프레임워크가 가지고 있고, 필요한 순간에 내가 작성한 코드를 호출한다.

프레임워크 → 내 코드 → 라이브러리

이러한 구조를 흔히 "제어의 역전(Inversion of Control, IoC)"이라고 한다.

쉽게 말해 프로그램의 흐름을 누가 주도하느냐의 차이이다.

그렇다면 프레임워크는 왜 만들어졌을까?

내가 생각하는 가장 큰 이유는 반복되는 문제를 매번 새로 해결하지 않기 위해서이다.

예를 들어 웹 애플리케이션을 만든다고 가정해 보자.

매 프로젝트마다 다음과 같은 요소를 처음부터 직접 만든다고 생각해 보자.

  • 화면 렌더링 로직
  • 상태 관리
  • 이벤트 처리
  • 라우팅
  • 성능 최적화

이 모든 것을 프로젝트마다 새로 작성한다면 엄청난 시간과 비용이 들 것이다.

백엔드도 마찬가지다. HTTP 요청 처리, 인증과 인가, 데이터베이스 연결, 트랜잭션 관리, 예외 처리 등은 대부분의 서비스에서 반복적으로 등장하는 문제들이다.

즉, 프레임워크는 반복되는 문제를 한 번 추상화하고, 여러 프로젝트에서 재사용하기 위해 만들어졌다.

대표적인 예를 들면 이렇다.

  • React는 컴포넌트, 상태 관리, UI 렌더링을 효율적으로 관리할 수 있는 구조를 제공한다.
  • Spring은 의존성 주입(DI), 요청 처리, 트랜잭션 관리 등 백엔드에서 반복되는 문제를 해결할 수 있는 구조를 제공한다.

즉, 프레임워크의 본질은 단순히 "개발을 편하게 해주는 도구"가 아니다.

반복되는 문제를 추상화하여 재사용하고, 대규모 프로젝트에서도 일관된 구조를 유지할 수 있도록 도와주는 도구라고 생각한다.

그렇다면 여기서 자연스럽게 다음 질문이 떠오른다.

만약 AI가 대부분의 코드를 작성하는 시대가 온다면, AI에게도 지금과 같은 프레임워크가 필요할까?

AI 시대에도 프레임워크는 필요할까?

처음에는 AI 시대에는 프레임워크가 필요 없을 것이라고 생각했다.

프레임워크는 결국 인간이 더 쉽고 빠르게 개발하기 위해 만들어진 도구이다.

React의 JSX, 컴포넌트, Hook 같은 개념들도 모두 사람이 대규모 애플리케이션을 조금 더 쉽게 이해하고 유지보수하기 위해 등장했다.

그렇다면 AI가 모든 코드를 작성하는 시대에는 어떨까?

AI는 인간처럼 코드를 읽다가 피로해지지도 않고, 수백만 줄의 코드를 이해하는 것도 지금보다 훨씬 쉬울 것이다.

그렇다면 굳이 사람이 읽기 쉽게 만들어진 문법이나 추상화가 필요할까?

처음에는 오히려 이런 생각까지 들었다.

"AI라면 React나 JavaScript 같은 언어를 거치지 않고, 010101과 같은 기계어에 가까운 수준의 코드로 바로 개발하는 것이 더 효율적인 것 아닐까?"

사람은 기계어를 거의 읽을 수 없다.

그래서 어셈블리어가 등장했고, C가 등장했고, Java와 JavaScript가 등장했고, 그 위에 React와 같은 프레임워크가 만들어졌다.

결국 개발 언어와 프레임워크의 역사는 인간이 더 쉽게 개발하기 위한 추상화의 역사라고 생각했다.

하지만 조금 더 생각해 보니 생각이 바뀌었다.

프레임워크가 존재하는 이유는 단순히 인간이 편하기 위해서만은 아니었다.

애플리케이션을 개발하다 보면 거의 모든 프로젝트에서 반복되는 문제들이 존재한다.

  • 인증
  • 권한 관리
  • 캐싱
  • 네트워크 통신
  • 보안
  • 데이터 검증

만약 프레임워크가 없다면 AI도 이러한 기능들을 프로젝트마다 처음부터 다시 구현해야 한다.

물론 AI가 충분히 똑똑하다면 매번 구현하는 것도 가능할 것이다. 하지만 가능한 것과 효율적인 것은 다른 문제이다.

반복되는 문제를 한 번 해결하고 계속 재사용하는 것이 더 효율적이라면, AI 역시 공통 기능을 재사용하려 할 가능성이 높다.

즉, 미래에는 React나 Spring처럼 인간이 사용하는 프레임워크는 사라질 수 있다.

하지만 그 자리를 AI에게 최적화된 새로운 형태의 프레임워크나 런타임이 대신하게 될 수도 있다.

결국 프레임워크의 형태는 지금과 크게 달라질 수 있어도, "반복되는 문제를 추상화하고 재사용한다"는 프레임워크의 본질은 크게 변하지 않을 것이라고 생각한다.

그렇다면 미래의 프레임워크는 지금의 React나 Spring과는 어떤 점이 달라질까? 이제부터는 몇 가지 가정을 바탕으로 미래의 프레임워크를 상상해 보려고 한다.

그렇다면 미래의 프레임워크는 어떤 모습일까?

여기까지 생각해 보니 프레임워크는 완전히 사라지기보다는, AI 시대에 맞게 형태가 크게 바뀔 가능성이 더 높다고 생각하게 되었다.

물론 미래를 정확하게 예측하는 것은 불가능하다. 지금부터 이야기하는 내용들은 어디까지나 하나의 상상이며, 실제 미래는 전혀 다른 방향으로 흘러갈 수도 있다.

하지만 지금의 기술도 결국 당시의 문제를 해결하기 위해 등장했다. 그렇다면 AI가 개발의 중심이 되는 시대에는 지금과는 전혀 다른 문제를 해결하기 위한 새로운 프레임워크가 등장하지 않을까?

그래서 나는 몇 가지 가정을 해보았다.

  • 인간을 위한 프레임워크는 사라질 수도 있다.
  • AI 전용 언어와 프레임워크가 등장할 수도 있다.
  • 프레임워크가 코드가 아닌 규칙의 집합이 될 수도 있다.
  • 필요한 기능만 실시간으로 조립하는 프레임워크가 등장할 수도 있다.
  • 버전이라는 개념이 없는 프레임워크가 생길 수도 있다.

이 가정들이 모두 실현될 수도 있고, 단 하나도 실현되지 않을 수도 있다.

중요한 것은 미래를 맞히는 것이 아니라, AI가 개발의 중심이 되는 시대에는 어떤 변화가 일어날 수 있을지 상상해 보는 것이라고 생각한다.

시나리오 1. 인간을 위한 프레임워크는 사라질 수 있다

현재 우리가 사용하는 React, Vue, Angular와 같은 프레임워크들은 모두 인간을 위해 만들어졌다.

대표적으로 React를 보면 JSX, 컴포넌트, Hook과 같은 개념들이 있다.

왜 이런 문법들이 등장했을까?

애플리케이션이 점점 커질수록 UI를 재사용하고, 상태를 관리하고, 여러 명의 개발자가 함께 유지보수하기 쉽도록 하기 위해서이다.

결국 사람이 코드를 더 쉽게 이해하고 개발하기 위한 추상화라고 볼 수 있다.

그렇다면 AI가 대부분의 코드를 작성하는 시대에도 이러한 추상화가 필요할까?

나는 그렇지 않을 수도 있다고 생각한다.

초고도 AI는 인간처럼 수천, 수만 줄의 코드를 읽으며 복잡하다고 느끼지 않을 것이다.

오히려 사람이 이해하기 쉽게 만들어진 JSX나 Hook 같은 문법은 AI 입장에서는 불필요한 계층일 수도 있다.

예를 들어 지금은

function CheckoutPage() { return ( <> <ShippingForm /> <PaymentMethod /> <OrderSummary /> <PayButton /> </> ); }

처럼 사람이 읽기 쉬운 형태로 코드를 작성한다.

하지만 미래에는 AI가 이러한 추상화를 거치지 않고, 훨씬 더 낮은 수준의 코드나 AI에게 최적화된 내부 표현으로 직접 애플리케이션을 생성할 수도 있다.

여기서 중요한 것은 "React가 사라진다"는 주장 자체가 아니다.

핵심은 사람을 위해 만들어진 추상화가 사라질 수 있다는 점이다.

인간이 코드를 작성하지 않는 시대라면, 인간을 위해 만들어진 문법 역시 존재 이유가 점점 줄어들 수 있기 때문이다.

물론 이것이 성능이 무조건 더 좋아진다는 의미는 아니다.

다만 AI는 사람과 다른 방식으로 문제를 해결할 가능성이 높다.

그래서 지금 우리가 사용하는 프레임워크와는 전혀 다른 형태의 개발 환경이 등장할 수도 있다고 생각한다.

시나리오 2. AI 전용 언어와 프레임워크가 함께 등장한다

현재 우리가 사용하는 JavaScript, Java, C++, Python과 같은 프로그래밍 언어들은 모두 사람이 읽고 이해하기 쉽도록 만들어진 언어이다.

사람은 010101과 같은 기계어를 이해하기 어렵기 때문에 어셈블리어가 등장했고, C와 Java 같은 고급 언어가 등장했다.

이후에는 React, Spring과 같은 프레임워크가 등장하며 점점 더 높은 수준의 추상화가 이루어졌다.

그렇다면 AI도 과연 이러한 언어가 필요할까?

현재의 AI는 우리가 입력한 텍스트를 그대로 이해하는 것이 아니다. 내부적으로는 텍스트를 숫자 형태의 표현으로 변환하여 의미를 학습하고 처리한다.

그렇다면 미래의 초고도 AI는 사람이 읽기 쉬운 JavaScript나 Python 대신, AI가 처리하기 가장 효율적인 새로운 언어를 사용할 수도 있지 않을까?

그 언어는 지금처럼 텍스트 기반일 수도 있고, 그래프(Graph), 트리(Tree), 중간 표현(IR), 바이너리 구조와 같은 전혀 다른 형태일 수도 있다.

그리고 그 언어 위에는 AI만을 위한 프레임워크가 등장할 수도 있다.

현재의 프레임워크가 사람이 개발하기 쉽도록 만들어졌다면, 미래의 프레임워크는 AI가 더 빠르게 생성하고, 검증하고, 최적화하기 위한 구조를 제공할 수도 있다.

예를 들어 인증, 캐싱, 보안, 네트워크 통신과 같이 거의 모든 프로젝트에서 반복되는 기능들은 AI 전용 프레임워크가 자동으로 처리하고, AI는 서비스의 핵심 로직만 생성하는 것이다.

인간은 자연어로 요구사항만 작성하고, AI는 그 요구사항을 AI 전용 언어와 프레임워크를 이용해 최적의 애플리케이션으로 만들어내는 시대가 올지도 모른다.

시나리오 3. 프레임워크는 코드보다 규칙을 제공하게 된다

현재의 프레임워크는 코드의 집합에 가깝다.

React는 UI를 만들기 위한 구조를 제공하고, Spring은 HTTP 요청 처리, 의존성 주입(DI), 트랜잭션 관리와 같은 기능을 제공한다.

하지만 AI가 대부분의 개발을 담당하는 시대에는 프레임워크의 역할이 조금 달라질 수도 있다고 생각한다.

미래에는 프레임워크가 코드를 제공하는 것보다, AI가 반드시 따라야 하는 개발 규칙을 제공하는 시스템으로 발전할 수도 있다.

예를 들어 AI에게 자연어로 다음과 같이 요구사항을 전달한다고 가정해 보자.

"쇼핑몰 서비스를 만들어 줘."

AI는 이 요구사항만으로도 충분히 애플리케이션을 개발할 수 있을 것이다.

하지만 실제 서비스에서는 기능만 구현하는 것으로 끝나지 않는다.

다음과 같은 규칙들도 반드시 지켜야 한다.

  • 비밀번호는 반드시 해시(Hash)하여 저장한다.
  • SQL Injection이 발생하지 않아야 한다.
  • 개인정보는 암호화하여 저장한다.
  • 결제는 중복 처리되면 안 된다.
  • 접근성(WCAG) 기준을 만족해야 한다.
  • 디자인 시스템을 준수해야 한다.

이러한 규칙은 프로젝트마다, 회사마다 모두 다를 수 있다.

현재도 디자인 시스템은 버튼이나 입력창의 디자인을 통일하기 위한 규칙을 제공한다.

미래에는 디자인 시스템처럼 보안, 성능, 접근성, 데이터 처리 방식까지 하나의 개발 규칙 시스템으로 관리될 수도 있다고 생각한다.

개발자는 AI에게 기능 요구사항과 함께 이러한 규칙들을 전달하고, AI는 그 규칙을 절대 위반하지 않는 코드를 생성하는 것이다.

즉, 미래의 프레임워크는 "이 코드를 사용하세요"를 알려주는 도구가 아니라, "이 규칙은 반드시 지키면서 개발하세요"를 정의하는 시스템으로 변화할 수도 있다고 생각한다.

시나리오 4. 프레임워크를 설치하는 시대가 끝난다

현재는 프로젝트를 시작하면 가장 먼저 프레임워크를 선택한다.

React, Vue, Angular, Spring, NestJS 등 프로젝트의 성격에 맞는 프레임워크를 설치하고, 그 위에서 기능을 개발한다.

하지만 AI가 대부분의 개발을 담당하는 시대에는 이러한 과정 자체가 사라질 수도 있다고 생각한다.

AI는 요구사항을 분석한 뒤 필요한 기능만 선택하여 하나의 애플리케이션을 구성할 수도 있다.

예를 들어 블로그 서비스를 만든다면 인증, 게시글, 댓글, 검색 기능만 포함하고, 쇼핑몰이라면 여기에 결제, 장바구니, 주문 관리 기능을 추가하는 식이다.

즉, 하나의 거대한 프레임워크를 사용하는 것이 아니라, 필요한 기능들을 AI가 실시간으로 조합하여 프로젝트를 구성하는 것이다.

개발자는 더 이상 "React로 만들까, Vue로 만들까?"를 고민하는 대신, "이 서비스에는 어떤 기능이 필요한가?"만 정의하면 된다.

AI는 그 요구사항에 맞춰 가장 적합한 구조와 모듈을 선택하고, 필요하다면 새로운 모듈까지 생성하여 최적의 형태로 애플리케이션을 구성할 수도 있다.

미래에는 프레임워크를 설치하는 것이 개발의 시작이 아니라, AI가 프로젝트에 필요한 요소를 스스로 조립하는 과정이 개발의 시작이 될지도 모른다.

시나리오 5. 버전이라는 개념이 사라질 수 있다

현재의 프레임워크는 새로운 기능이 추가되거나 성능이 개선될 때마다 새로운 버전이 출시된다.

하지만 초고도 AI가 프레임워크를 지속적으로 개발하고 개선하는 시대라면, 이러한 버전 개념 자체가 희미해질 수도 있다.

AI는 새로운 기술이나 최적화 방법을 발견할 때마다 프레임워크를 지속적으로 개선하고, 항상 현재 시점에서 가장 효율적인 구조를 유지할 수 있기 때문이다.

즉, "React 19"와 "React 20"처럼 큰 단위의 업데이트를 기다리는 것이 아니라, 프레임워크가 끊임없이 진화하는 하나의 시스템이 되는 것이다.

물론 이는 매우 이상적인 시나리오이다.

하지만 동시에 이런 질문도 남는다.

  • 항상 현재 시점의 구현이 최적이라는 것을 어떻게 검증할 것인가?
  • AI가 만들어낸 변경을 어디까지 신뢰할 수 있을까?

하지만 이러한 문제들이 해결된다면, 미래에는 버전을 기다리는 개발이 아니라 항상 최적의 상태를 유지하는 프레임워크가 등장할 수도 있다고 생각한다.

마무리

이 글에서 이야기한 다섯 가지 시나리오는 어디까지나 하나의 상상이다.

실제로 어떤 미래가 펼쳐질지는 아무도 알 수 없다.

하지만 한 가지는 분명하다.

프로그래밍 언어와 프레임워크는 결국 반복되는 문제를 더 효율적으로 해결하기 위해 만들어진 도구라는 점이다.

AI가 개발의 중심이 된다면, 지금 우리가 당연하게 사용하는 개발 방식도 언젠가는 크게 달라질 수 있다.

이번 글을 통해 미래를 예측하기보다, 지금 우리가 사용하는 프레임워크의 본질을 다시 한번 생각해 볼 수 있었다.

어쩌면 미래에는 "프레임워크"라는 단어는 남아 있어도, 그 의미는 지금과 완전히 달라져 있을지도 모른다.

댓글