생성형 AI의 기능을 프로그램에 삽입함으로써 기존 프로그램으로는 달성할 수 없었던 메커니즘을 만들 수 있습니다.
더 나아가, 생성형 AI가 자동으로 프로그램을 생성할 수 있게 됨에 따라, 우리는 아이디어를 기반으로 프로그램을 자유롭고 쉽게 만들고 실행할 수 있게 될 것입니다.
지금까지 저는 제 블로그 글을 영어로 번역하여 영어 블로그에 게시하고, 프레젠테이션 비디오로 설명 비디오를 만들어 유튜브에 업로드하며, 인덱스, 카테고리 및 태그를 포함한 자체 블로그 사이트를 생성하고 게시하는 시스템을 만들었습니다.
이러한 방식으로, 원본 콘텐츠를 원재료로 사용하여 생성형 AI 기능을 통합하여 다양한 파생 콘텐츠를 생산하는 시스템을 '지적 공장'이라고 부를 수 있습니다.
저는 또한 이 지적 공장을 운영하고 상태를 관리하기 위한 웹 애플리케이션을 개발하여 PC와 스마트폰 모두에서 사용할 수 있도록 했습니다. 또한, 이벤트에 의해 트리거되는 자동 처리 부분은 백엔드에서 일괄 처리를 위해 준비된 가상 머신에서 실행됩니다.
따라서 저는 생성형 AI의 지원을 받아 PC 및 스마트폰 프런트엔드, 웹 서버 백엔드, 가상 머신의 일괄 처리, 그리고 이들을 위한 인프라를 모두 혼자서 개발했습니다.
이것은 단순한 풀스택 엔지니어링이 아니라, 시스템의 다양한 측면을 포괄적으로 개발한다는 점에서 '전방위 엔지니어링'이라고 부를 수 있습니다.
더 나아가, 개발된 웹 애플리케이션의 사용성을 개선하거나 새로운 기능을 추가할 때, 프로그래밍을 생성형 AI에 위임할 수 있으므로, 사용하면서 쉽게 개선할 수 있습니다.
이것은 소프트웨어를 기존 소프트웨어보다 훨씬 더 유연하고 유동적으로 만들며, 제 사용 패턴에 완벽하게 맞는 것을 만들 수 있게 합니다. 저는 이것을 "리퀴드웨어(liquidware)"라고 부릅니다.
저는 실제로 이러한 것들을 개발했으며 현재 사용하고 있습니다. 이것들은 단순한 개념이 아니라 이미 소프트웨어 개발의 현실입니다.
아직 개발하지는 않았지만, 비즈니스 시스템 분야에서는 "비즈니스 프로세스 중심 개발"로 알려진 개발 방법론이 현실이 될 것이라고 예상합니다.
이것은 시스템을 복잡하게 만드는 프로그램의 전체 최적화를 목표로 하지 않고, 개별 비즈니스 프로세스별로 소프트웨어 모듈을 분할하는 접근 방식입니다.
사용자 인터페이스의 기본 프레임워크 정의, 사용자 권한 관리, 그리고 비즈니스 프로세스 간에 공유되어야 하는 데이터 모델만이 비즈니스 시스템의 외부 프레임워크로 공유됩니다.
다른 내부 시스템 처리 및 임시 데이터는 비즈니스 프로세스 수준에서 관리됩니다.
여기에는 두 개 이상의 비즈니스 프로세스에서 공유될 수 있는 함수와 데이터 구조가 포함될 수 있습니다. 그러나 이를 공유 모듈 또는 사용자 정의 라이브러리로 만들면 코드 및 품질 재사용성은 향상되지만, 소프트웨어 구조가 복잡해지고 변경 시 다른 비즈니스 프로세스에 대한 영향을 지속적으로 고려해야 합니다.
생성형 AI가 프로그램을 자동으로 생성하는 상황에서는 후자의 단점이 전자의 장점보다 더 큽니다. 따라서 전체 최적화보다는 개별 최적화를 강조하는 비즈니스 프로세스 중심 접근 방식이 합리적입니다.
또한, "신입 사원 기본 정보 입력", "직원 기본 정보 업데이트", "이름으로 직원 검색"과 같은 단위를 개별 비즈니스 프로세스로 상상해 보십시오.
전통적인 개발 방법론에서는 해당 사용자 인터페이스, 프런트엔드 프로세스, 백엔드 프로세스 및 배치 프로세스가 다른 디렉토리의 다른 파일로 분리됩니다. 또한 각각 다른 엔지니어에 의해 개발됩니다.
그러나 단일 엔지니어가 생성형 AI에게 프로그래밍을 맡기면서 전방위 엔지니어링을 수행할 경우, 하나의 비즈니스 프로세스에 필요한 코드를 단일 파일이나 폴더에 통합하는 것이 더 합리적입니다.
또한 요구사항 분석 결과, 테스트 사양, 테스트 결과 및 검토 기록도 동일한 위치에 통합할 수 있습니다.
이를 통해 소프트웨어 엔지니어링의 모든 결과물을 비즈니스 프로세스별로 관리할 수 있습니다. 그리고 전체 최적화를 고려할 필요가 없기 때문에, 해당 비즈니스 프로세스 내에서 개선에 집중할 수 있으며, 새로운 비즈니스 프로세스를 비즈니스 시스템에 쉽게 추가할 수 있습니다.
이러한 방식으로 프로그램 개발과 프로그램으로 개발할 수 있는 것들이 생성형 AI로 인해 크게 변화하고 있습니다. 이것은 미래의 가능성이 아니라 이미 현재의 현실이며, 가까운 미래에는 그 완성도가 높아질 수밖에 없으며, 다음 단계는 그 이상으로 나아가야 합니다.
시뮬레이션 시스템
프로그램으로 구현될 수 있는 것은 여기서 언급한 업무 시스템이나 지적 공장에만 국한되지 않습니다.
제가 언급하지 않은 나머지 영역은 크게 분류하면 시뮬레이션 시스템입니다.
단순한 물리 방정식을 하나의 해석적 공식으로 풀든, 복잡한 물리 현상을 반복적 프로그램으로 계산하든, 둘 다 시뮬레이션 시스템이라고 할 수 있습니다.
더 나아가, 시뮬레이션 시스템은 물리학뿐만 아니라 화학, 생물학, 심지어 사회학 및 경제학에서도 활용될 수 있습니다. 또한 시뮬레이션은 학계뿐만 아니라 공학, 의학, 제도 설계, 경영 관리와 같은 분야에서도 적용됩니다.
게임 또한 일종의 시뮬레이션 시스템입니다. 어떤 게임이든 그 게임 세계 내의 물리, 사회, 규칙 등이, 말하자면 시뮬레이션되고 있다고 할 수 있습니다.
그 외에도 우리는 삶의 계획, 여행 계획, 용돈 사용법 등을 계획할 때도 일종의 시뮬레이션을 수행합니다.
이러한 시뮬레이션은 프로그램을 만들고 실행하거나, 종이에 방정식을 만들고 계산하거나, 머릿속으로 생각하거나, 화이트보드에 텍스트와 화살표로 아이디어를 정리하거나, 엑셀로 그래프를 그리는 등 다양한 방식으로 수행되어 왔습니다.
특정 문제에 대한 시뮬레이션 프로그램을 개발하면 분석적 방정식보다 더 복잡한 시뮬레이션이 가능합니다. 그러나 프로그래밍 기술, 노력, 시간이 필요합니다.
또한 시뮬레이션 모델을 명확하게 정의해야 하며, 이를 위한 기술, 노력, 고려 시간이 필요합니다.
게다가 시뮬레이션은 프로그램으로 표현될 수 있는 방식으로만 수행될 수 있었고, 지금까지는 계산적으로 표현될 수 있는 것만 시뮬레이션할 수 있었습니다.
생성형 AI는 이러한 상황을 크게 변화시킬 것입니다.
생성형 AI는 시뮬레이션 시스템 프로그램을 쉽게 개발할 수 있게 할 뿐만 아니라, 시뮬레이션 시스템에 생성형 AI를 포함함으로써 수학 공식으로 표현할 수 없는 요소도 시뮬레이션할 수 있게 됩니다. 이는 모호한 정성적 시뮬레이션 요소와 인간과 유사한 지능형 에이전트를 포함하는 시뮬레이션을 가능하게 합니다.
또한 이러한 시뮬레이션 모델은 수학 공식뿐만 아니라 자연어로도 표현되어 생성형 AI에 의해 해석될 수 있습니다.
이를 통해 우리가 다양한 상황에서 수행해 온 다양한 시뮬레이션을 시스템화하기가 더 쉬워질 것입니다.
이는 우리가 더욱 정확하고 효율적이며 효과적인 시뮬레이션 결과를 얻을 수 있게 하여, 간과와 편향된 가정의 가능성을 줄여줄 것입니다.
더 나아가, 복잡한 문제를 논의하거나 고려할 때, 개별적인 정신적 시뮬레이션에 의존하기보다는 시뮬레이션 시스템을 사용하여 논의하고 고려하는 것이 가능해질 것입니다.
이는 숙고의 정확성을 높이고 토론을 더욱 건설적으로 만듭니다. 왜냐하면 서로의 지성이나 사고의 오류를 지적하는 대신, 시뮬레이션의 기본 모델, 누락되거나 빠진 요소, 불확실성이 높은 부분을 어떻게 추정하는지, 결과 중 어떤 지표를 강조하는지 등 명확한 지점에 초점을 맞춰 논의할 수 있기 때문입니다.
시뮬레이션 시스템이 쉽게 만들어지면서, 우리가 생각하는 방식은 직관, 가정, 타인의 악의나 실수에 초점을 맞추는 선형적 사고에서 시뮬레이션 사고로 전환될 것입니다.
마치 대화 중에 스마트폰으로 인터넷을 검색하여 뉴스 출처, 위키백과 또는 1차 자료를 확인하는 것과 같습니다. 더 이상 서로의 기억에만 의존하여 끝없는 논쟁을 벌일 필요가 없습니다.
논의 중에 생성형 AI는 논의 내용에서 시뮬레이션 모델, 시뮬레이션 규칙 및 전제 조건을 정리할 것입니다.
논의하는 사람들은 해당 모델과 규칙에 정보와 전제를 추가하거나 수정하고 시뮬레이션 결과를 확인하기만 하면 됩니다. 신뢰할 수 있는 뉴스 출처를 찾았을 때와 마찬가지로, 그 시뮬레이션 결과는 더 깊은 논의를 위한 공통 기반이 될 수 있습니다.
이는 청자들이 누가 옳고 누가 신뢰할 수 있는지 궁금해하는 시대에서 벗어나게 할 것입니다. 또한 논의에서 나타나는 모호한 전문 용어와 개념을 이해하려고 애쓰면서 본질을 놓치지 않게 될 것입니다.
그들은 단지 매우 간단한 것들, 즉 불확실성을 어떻게 평가할 것인지, 어떤 가치를 우선시할 것인지를 고려하기만 하면 됩니다.