본문으로 건너뛰기
이 아티클은 AI를 사용하여 일본어에서 번역되었습니다
일본어로 읽기
이 아티클은 퍼블릭 도메인(CC0)입니다. 자유롭게 사용하십시오. CC0 1.0 Universal

시뮬레이션 사고의 시대

생성형 AI 기능을 프로그램에 내장함으로써 기존의 일반적인 프로그래밍으로는 달성할 수 없었던 메커니즘을 만들 수 있습니다.

더 나아가, 생성형 AI가 프로그램 자동 생성 능력을 갖추게 되면, 떠오른 프로그램을 자유롭고 쉽게 만들어 실행할 수 있게 될 것입니다.

저는 지금까지 제 블로그 게시물을 영어로 번역하여 영어 블로그에 게시하고, 프레젠테이션 비디오로 설명 비디오를 만들어 YouTube에 업로드하며, 인덱스, 카테고리 분류, 태그를 포함한 자체 블로그 사이트를 생성하여 게시하는 시스템을 구축해 왔습니다.

이러한 방식으로 원본 콘텐츠를 원재료로 사용하여 생성형 AI 기능을 통합하고 다양한 파생 콘텐츠를 생산하는 메커니즘을 지적 공장이라고 부를 수 있을 것입니다.

또한, 이 지적 공장을 운영하고 상태를 관리하기 위한 웹 애플리케이션을 만들어 PC와 스마트폰 모두에서 접근할 수 있도록 했습니다. 더불어 이벤트에 의해 트리거되는 자동 처리 부분은 백엔드 너머의 배치 처리를 위해 준비된 가상 머신에서 실행되도록 했습니다.

그리하여 저는 PC 및 스마트폰 프론트엔드, 웹 서버 백엔드, 가상 머신에서의 배치 처리, 그리고 이들 인프라의 구축을 모두 생성형 AI의 지원을 받아 혼자서 개발했습니다.

이는 단순히 풀스택 엔지니어링이 아니라, 시스템의 다양한 측면을 포괄적으로 개발하는 전방위 엔지니어링이라고 할 수 있습니다.

더 나아가, 개발된 웹 애플리케이션의 불편한 점을 개선하거나 새로운 기능을 추가할 때 생성형 AI에게 프로그래밍을 맡길 수 있으므로, 사용하면서 쉽게 개선을 추가하고 있습니다.

이것은 기존 소프트웨어보다 훨씬 더 유연하고 유동적이어서, 제 사용 방식에 완벽하게 맞는 것을 만들 수 있습니다. 저는 이것을 리퀴드웨어라고 부릅니다.

저는 이들을 직접 개발하여 실제로 사용하고 있습니다. 이것은 단순한 개념이 아니라 이미 소프트웨어 개발의 현실입니다.

아직 개발되지는 않았지만, 비즈니스 시스템 분야에서는 업무 프로세스 지향이라는 개발 방법론이 현실이 될 것이라고 예상합니다.

이는 시스템을 복잡하게 만드는 프로그램의 전체 최적화를 목표로 하지 않고, 개별 업무 프로세스 단위로 소프트웨어 모듈을 분할하는 접근 방식입니다.

사용자 인터페이스의 기본 프레임워크 정의, 사용자 권한 관리, 그리고 업무 프로세스 간에 공유해야 할 데이터 모델만이 비즈니스 시스템의 외부 프레임워크로 공유됩니다.

그 외의 시스템 내부 처리 및 임시 데이터는 업무 프로세스 단위로 관리됩니다.

이 안에는 두 개 이상의 업무 프로세스에서 공유될 수 있는 함수나 데이터 구조가 포함될 가능성도 있습니다. 그러나 이것들을 공유 모듈이나 자체 라이브러리로 만들어 버리면, 코드 및 품질 재사용성은 향상되겠지만 소프트웨어 구조가 복잡해지고, 변경 시 다른 업무 프로세스에 미치는 영향을 항상 고려해야 하는 단점이 발생합니다.

생성형 AI가 프로그램을 자동으로 생성하는 상황에서는 후자의 단점이 전자의 장점을 능가합니다. 따라서 전체 최적화보다는 개별 최적화를 강조하는 업무 프로세스 지향이라는 사고방식이 합리적이게 되는 것입니다.

또한, "신규 직원의 기본 정보 입력", "직원 기본 정보 업데이트", "이름으로 직원 검색"과 같은 단위를 개별 업무 프로세스로 상상해 보세요.

기존 개발 방법론에서는 각 사용자 인터페이스, 프론트엔드 처리, 백엔드 처리, 배치 처리가 서로 다른 디렉토리의 서로 다른 파일로 분리될 것입니다. 또한, 각각 다른 엔지니어가 개발할 것입니다.

그러나 한 명의 엔지니어가 생성형 AI에게 프로그래밍을 맡기면서 전방위 엔지니어링을 수행할 경우, 하나의 업무 프로세스에 필요한 이 코드들을 하나의 파일이나 하나의 폴더로 통합하는 것이 더 이치에 맞습니다.

또한, 요구사항 분석 결과, 테스트 사양, 테스트 결과, 검토 기록 또한 같은 위치에 통합할 수 있습니다.

이를 통해 단일 업무 프로세스 단위로 모든 소프트웨어 엔지니어링 산출물을 관리할 수 있습니다. 그리고 전체 최적화를 고려할 필요가 없기 때문에 해당 업무 프로세스 내부에 집중하여 개선을 하거나, 새로운 업무 프로세스를 비즈니스 시스템에 쉽게 추가할 수 있습니다.

이처럼 프로그램 개발과 프로그램으로 개발할 수 있는 것들이 생성형 AI에 의해 크게 변화하고 있습니다. 이것은 미래의 시나리오가 아니라 이미 현재의 현실이며, 가까운 미래에는 그 완성도가 높아지는 방향으로 나아갈 수밖에 없고, 다음 단계는 그 너머로 나아갈 수밖에 없을 것입니다.

시뮬레이션 시스템

프로그램으로 구현될 수 있는 것은 여기서 언급된 업무 시스템이나 지적 공장에 국한되지 않습니다.

제가 언급하지 않은 나머지 분야는 크게 분류하면 시뮬레이션 시스템입니다.

단순한 물리학 방정식을 한 줄의 해석적 계산식으로 풀든, 복잡한 물리 현상을 반복적인 프로그램으로 계산하든, 모두 시뮬레이션 시스템이라고 할 수 있습니다.

더 나아가 물리학뿐만 아니라 화학, 생물학, 사회학, 경제학 등 다양한 분야에서도 시뮬레이션 시스템을 활용할 수 있습니다. 또한 학문뿐만 아니라 공학, 의료, 제도, 경영 등 업무 분야에서도 시뮬레이션은 활용됩니다.

게임 또한 일종의 시뮬레이션 시스템입니다. 어떤 게임이든 그 게임의 세계관 내의 물리, 사회, 규칙 등을 일종의 시뮬레이션하고 있다고 할 수 있습니다.

그뿐만 아니라 우리의 인생 계획이나 여행 계획, 용돈 사용처 등을 생각할 때도 우리는 일종의 시뮬레이션을 수행합니다.

이러한 시뮬레이션은 프로그램을 작성하고 실행하거나, 종이에 계산식을 만들어 산출하거나, 머릿속으로 생각하거나, 화이트보드에 글자와 화살표를 사용하여 정리하거나, 엑셀로 그래프를 그려보는 등 다양한 방식으로 이루어져 왔습니다.

특정 문제 해결을 위한 시뮬레이션 프로그램을 개발하면 해석적인 방정식보다 더 복잡한 시뮬레이션이 가능합니다. 하지만 프로그래밍 개발 기술과 노력, 시간이 필요합니다.

또한 시뮬레이션 모델을 명확히 해야 하며, 이를 위한 기술이나 검토 노력, 시간도 필요합니다.

게다가 시뮬레이션은 프로그램으로 표현할 수 있는 형태로만 가능했으며, 이전에는 계산으로 표현할 수 있는 것만 시뮬레이션할 수 있었습니다.

이러한 상황을 생성형 AI가 크게 변화시키고 있습니다.

생성형 AI는 시뮬레이션 시스템 프로그램을 쉽게 개발할 수 있을 뿐만 아니라, 시뮬레이션 시스템에 생성형 AI를 통합함으로써 수학적으로 표현할 수 없는 요소도 시뮬레이션이 가능해집니다. 이는 모호한 정성적 시뮬레이션 요소와 인간과 같은 지능형 에이전트를 포함한 시뮬레이션을 가능하게 합니다.

더 나아가 이러한 시뮬레이션 모델을 수학식뿐만 아니라 자연어로 표현하여 생성형 AI가 해석하도록 할 수도 있습니다.

이를 통해 우리가 다양한 상황에서 수행해 왔던 여러 시뮬레이션을 시뮬레이션 시스템화하기 쉬워질 것입니다.

결과적으로 더 정확하고, 누락이나 편견의 개입 가능성을 줄이며, 효율적이고 효과적인 시뮬레이션 결과를 얻을 수 있게 될 것입니다.

또한 복잡한 문제를 검토하거나 논의할 때도 개별적인 머릿속 시뮬레이션에 의존하는 대신, 시뮬레이션 시스템을 활용하여 검토하고 논의할 수 있게 될 것입니다.

이는 검토의 정확성을 높이고 논의를 더욱 건설적으로 만듭니다. 서로의 지능이나 생각의 오류를 지적하는 대신, 시뮬레이션의 기본 모델, 누락되거나 빠진 요소, 불확실성이 높은 부분을 어떻게 추정했는지, 결과 중 어떤 지표를 우선시하는지 등 명확한 핵심에 초점을 맞춰 논의할 수 있게 되기 때문입니다.

시뮬레이션 시스템이 쉽게 만들어짐에 따라, 우리가 사물을 생각하는 방식은 직관, 가정, 타인의 악의나 실수에 초점을 맞추는 선형 사고에서 시뮬레이션 사고로 전환될 것입니다.

이는 마치 토론 중에 스마트폰으로 인터넷 검색을 하여 뉴스 출처, 위키피디아 또는 1차 자료를 확인하는 것과 같습니다. 서로의 기억에만 의존하여 끝없는 논쟁을 벌일 필요가 없어질 것입니다.

토론 중에 생성형 AI가 토론 내용에서 시뮬레이션 모델, 시뮬레이션 규칙, 전제 조건을 정리할 것입니다.

토론 참여자들은 그 모델이나 규칙에 정보와 전제를 추가하거나 수정하고 시뮬레이션 결과를 확인하면 됩니다. 신뢰할 수 있는 뉴스 출처를 찾았을 때처럼, 그 시뮬레이션 결과를 공동의 인식을 바탕으로 토론을 심화할 수 있습니다.

그렇게 되면 토론을 듣는 사람들은 누가 옳고 누가 신뢰할 수 있는지 고민할 필요가 없는 시대에 살게 될 것입니다. 또한 토론에 나타나는 난해한 전문 용어나 개념을 이해하려다 본질을 놓치는 일도 없을 것입니다.

불확실성을 어떻게 평가할지, 어떤 가치를 우선시할지 등 아주 간단한 것만 생각하면 되는 시대가 올 것입니다.