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

리퀴드웨어 시대의 전방위 엔지니어

생성형 AI가 이미지를 생성하여 지시만으로 실사와 같은 사진, 일러스트, 그림을 그릴 수 있다는 것은 잘 알려져 있습니다.

한편, 비즈니스 세계에서는 생성형 AI의 프로그램 생성 능력에 주목하고 있습니다.

채팅 기반 AI는 대규모 언어 모델이라는 기반 기술을 통해 구현되며, 다양한 언어로 대화하고 언어 간 번역에 매우 능숙합니다.

프로그램을 만드는 데 사용되는 프로그래밍 언어도 일종의 언어입니다. 인간 프로그래머는 어떤 의미에서 구두로 받은 소프트웨어 요구사항을 프로그래밍 언어로 번역하는 것과 같습니다.

이러한 이유로, 대규모 언어 모델을 사용하는 대화형 생성형 AI는 프로그래밍에도 매우 능숙합니다.

더 나아가, 프로그래밍은 지적 작업 중에서도 결과의 정확성을 자동적이고 즉각적으로 확인할 수 있는 부분이 많은 작업입니다. 이는 생성된 프로그램을 실행하여 원하는 결과가 생성되는지 자동으로 판별할 수 있기 때문입니다.

실제로 인간 프로그래머는 종종 메인 프로그램과 동시에 테스트 프로그램을 작성하여 메인 프로그램이 의도한 대로 작동하는지 확인하면서 개발을 진행합니다.

생성형 AI 또한 테스트를 하면서 프로그래밍을 진행할 수 있으므로, 인간이 정확한 지시를 내리면 AI가 테스트를 통과할 때까지 자동으로 반복하고 프로그램을 완성하는 메커니즘이 가능합니다.

물론, 생성형 AI의 프로그래밍 능력 한계와 인간 지시의 모호성 때문에 여러 번의 반복에도 불구하고 테스트를 통과하지 못하는 경우가 많습니다. 또한, 테스트가 불충분하거나 잘못되어 완성된 프로그램에 버그나 문제가 발생하는 경우도 흔합니다.

하지만 생성형 AI의 능력이 향상되고, 인간 엔지니어가 지시 방식을 개선하며, 인터넷 검색을 통해 생성형 AI의 프로그래밍 지식이 강화되면서, 적절한 프로그램을 자동으로 생성할 수 있는 범위가 나날이 증가하고 있습니다.

또한, 비즈니스 세계의 관심과 더불어 생성형 AI 연구 개발을 수행하는 선도 기업들도 생성형 AI의 프로그래밍 능력 향상에 집중하고 있습니다.

이러한 상황에서, 생성형 AI에 자동 프로그래밍을 맡길 수 있는 영역과 양의 확대가 가속화될 것으로 예상됩니다.

이전에 프로그램을 개발해 본 적이 없는 사람들도 인터넷 정보를 기반으로 기본적인 개발 환경을 구축한 다음, 생성형 AI에게 프로그래밍을 맡겨 협력하여 프로그램을 완성한 사례가 많습니다.

저 또한 프로그래머로서 생성형 AI를 프로그래밍에 활용하고 있습니다. 요령을 터득하면 프로그램을 전혀 수정하지 않고도, 단순히 생성형 AI의 지시에 따라 프로그램을 파일에 복사하거나 잘라내어 붙여넣기만 하는 방식으로 소프트웨어를 완성할 수 있습니다.

물론 어려움을 겪는 경우도 많습니다. 이는 주로 제가 사용하는 컴퓨터나 프로그래밍 개발 도구의 설정이 일반적인 구성과 약간 다르거나, 생성형 AI가 학습한 시점보다 무료 소프트웨어 구성 요소가 더 최신이어서 지식 격차가 발생하거나, 때로는 제가 요청한 내용이 다소 특이한 경우에 해당합니다.

대부분의 경우, 이러한 사소한 차이나 특별한 상황이 없고, 매우 일반적인 소프트웨어 기능을 만들도록 지시하면 적절한 프로그램이 생성됩니다.

리퀴드웨어 시대로

소프트웨어 개발자로서 저는 제가 개발한 소프트웨어를 출시할 수 있습니다. 그리고 우리 엔지니어들이 출시한 소프트웨어는 다양한 사용자들에게 사용됩니다.

누구나 생성형 AI를 통해 소프트웨어 개발을 수행할 수 있게 되는 미래는 지금까지의 논의의 연장선에 있습니다.

하지만 이것은 소프트웨어 개발 측면만의 변화가 아닙니다. 사용자 측면에서도 상당한 변화가 일어날 것입니다.

소프트웨어에 기능을 자동으로 추가하거나 변경하도록 생성형 AI에게 구두로 지시하는 작업은 소프트웨어 출시 전 개발 단계뿐만 아니라 사용 중에도 수행할 수 있습니다. 더욱이, 이는 소프트웨어 사용자 자신도 할 수 있습니다.

소프트웨어 개발자는 단순히 허용되는 변경 범위와 변경 불가능한 범위를 정의하고, 생성형 AI 기반의 맞춤형 기능을 포함하여 소프트웨어를 출시하기만 하면 됩니다.

이렇게 되면 사용자는 사소한 사용성 문제나 화면 디자인 선호도 등을 생성형 AI에게 요청하여 변경할 수 있게 됩니다.

나아가, 다른 앱에서 발견되는 편리한 기능을 추가하거나, 여러 작업을 한 번의 클릭으로 조합하여 수행하거나, 자주 접속하는 화면을 하나의 디스플레이에서 볼 수 있게 될 것입니다.

소프트웨어 개발자 입장에서 이러한 사용자 맞춤형 기능을 가능하게 하는 것은 상당한 이점을 제공합니다. 사용자 요청에 기반한 기능 추가의 필요성을 없애주고, 사용성 관련 부정적인 피드백이나 불만을 피함으로써 소프트웨어의 인기를 높일 수 있다는 점을 고려하면 큰 이득입니다.

사용자가 이처럼 화면과 기능을 자유롭게 변경할 수 있게 되면, 그 개념은 우리가 전통적으로 "소프트웨어"라고 부르던 것과는 크게 달라집니다.

이는 하드웨어에 비해 유연한 소프트웨어보다 훨씬 더 유동적이고 적응성이 뛰어나며, 사용자에게 완벽하게 맞춰진다는 의미에서 "리퀴드웨어(liquidware)"라고 부르는 것이 적절할 것입니다.

과거에는 기능이 오로지 하드웨어만으로 구현되었지만, 이후 교체 가능한 소프트웨어가 등장하면서 하드웨어와 소프트웨어의 조합으로 기능이 구현될 수 있게 되었습니다.

여기서 더 나아가, 생성형 AI에 의해 수정될 수 있는 부분을 의미하는 리퀴드웨어의 등장을 생각해 볼 수 있습니다. 따라서 전체적인 기능은 하드웨어 + 소프트웨어(개발자 제공) + 리퀴드웨어(사용자 수정)의 조합으로 구현될 것입니다.

이 리퀴드웨어 시대에는 사용자 측의 수정 아이디어가 폭발적으로 증가할 것입니다.

한 사용자가 혁신적인 수정 아이디어를 발명하여 소셜 미디어에서 화제가 될 수 있으며, 이는 다른 사람들이 다양한 리퀴드웨어를 모방하고 수정하도록 이끌 수 있습니다.

또한, 다양한 유형의 소프트웨어를 통합하고 처리할 수 있는 리퀴드웨어가 등장할 것입니다. 이는 사용자가 여러 다른 SNS 플랫폼의 타임라인을 하나의 앱에서 보거나, 수많은 플랫폼의 검색 결과를 통합할 수 있도록 해줄 것입니다.

이러한 방식으로, 리퀴드웨어가 만연한 세상에서는 PC와 스마트폰을 포함한 다양한 장치들이 각 개인의 삶과 활동에 완벽하게 맞는 기능을 제공하게 될 것입니다.

현재 진행 중인 현상

저와 같은 소프트웨어 엔지니어에게 중요한 점은 리퀴드웨어가 미래의 개념이나 몇 년 후의 이야기가 아니라는 것입니다.

이는 아주 간단한 리퀴드웨어는 이미 실현 가능하기 때문입니다.

예를 들어, 제가 회사 전자상거래 사이트의 웹 애플리케이션을 개발하는 엔지니어라고 가정해 봅시다.

이러한 웹 애플리케이션은 일반적으로 회사에서 관리하거나 계약된 클라우드 서비스 서버에 데이터베이스, 판매 관리 시스템, 제품 배송 시스템을 가지고 있습니다. 사용자가 구매를 하면 이 시스템들이 연동되어 결제를 수금하고 제품을 배송합니다.

이러한 작업의 핵심 시스템과 데이터베이스는 임의로 변경할 수 없습니다.

그러나 사용자가 보는 전자상거래 웹사이트의 디자인을 각 사용자의 편의에 맞게 수정하는 것은 대개 큰 문제가 되지 않습니다. 물론 한 사용자의 변경이 다른 사용자의 화면에 영향을 미치면 문제가 되지만, 개별 사용자별 맞춤형 설정은 괜찮습니다.

다양한 수정이 가능합니다: 텍스트를 더 크게 만들거나, 배경을 어두운 톤으로 바꾸거나, 자주 누르는 버튼을 왼손으로 쉽게 접근할 수 있는 위치로 옮기거나, 목록 화면에서 항목을 가격순으로 정렬하거나, 두 제품의 세부 정보를 나란히 표시하는 것 등입니다.

기술적으로 이러한 수정은 브라우저에 화면을 표시하는 HTML, CSS, JavaScript와 같은 구성 파일과 프로그램을 변경하여 달성할 수 있습니다.

보안 측면에서 이러한 파일은 원래 웹 브라우저에서 실행되므로 웹 애플리케이션에 익숙한 엔지니어가 수정할 수 있습니다. 따라서 수정해도 안전한 기능과 데이터만 처리합니다.

따라서 전자상거래 웹 앱의 서버 측에서는 로그인한 사용자별로 이러한 파일을 별도로 저장하고, 채팅 AI와의 대화를 위한 화면을 추가하며, 사용자의 요청에 따라 서버에서 해당 사용자의 HTML, CSS, JavaScript 파일을 수정하는 메커니즘을 만들 수 있습니다.

이 텍스트와 함께 기존 전자상거래 웹 앱의 구성 정보 및 소스 코드를 생성형 AI에 제공하면, 이러한 기능을 추가하는 단계와 필요한 프로그램을 알려줄 것입니다.

이러한 방식으로 리퀴드웨어는 이미 현재의 주제이며, 현재 진행 중인 현상이어도 놀랄 일이 아닙니다.

전방위 엔지니어

AI 기반 자동 프로그래밍의 범위가 확대되고 리퀴드웨어 시대가 이미 시작되었다 하더라도, 소프트웨어 개발이 전적으로 생성형 AI만으로 이루어질 수는 아직 없습니다.

그러나 소프트웨어 개발에서 프로그래밍의 비중이 크게 줄어들 것이라는 점은 확실합니다.

또한, 소프트웨어를 원활하게 개발하기 위해서는 일반적인 프로그래밍뿐만 아니라 클라우드 인프라, 네트워크, 보안, 플랫폼, 개발 프레임워크, 데이터베이스 등 시스템 전반에 걸쳐 광범위한 지식과 엔지니어링 기술이 필요합니다.

이러한 지식과 기술을 갖춘 인력을 풀스택 엔지니어라고 부릅니다.

지금까지는 소수의 풀스택 엔지니어가 전체 설계를 담당하고, 나머지 엔지니어들은 프로그래밍에만 집중하거나 시스템 스택 내의 특정 비프로그래밍 영역을 전문으로 하는 방식으로 역할을 분담했습니다.

그러나 생성형 AI가 프로그래밍 부분을 담당하게 되면서 소프트웨어 개발 비용이 크게 절감될 것이고, 이는 다양한 새로운 소프트웨어 개발 계획으로 이어질 것입니다.

결과적으로, 각 개발 프로젝트에서는 단순히 코드를 작성할 수 있는 엔지니어는 거의 필요 없게 되고, 대신 다수의 풀스택 엔지니어가 필요하게 될 것입니다.

더 나아가, 이러한 상황에서는 단순히 풀스택 지식과 기술을 갖는 것만으로는 불충분할 것입니다. 왜냐하면 다양한 소프트웨어 개발 프로젝트는 다양한 유형의 소프트웨어를 요구할 것이며, 이는 개발이 항상 동일한 시스템 스택 내에서 요청되지 않음을 의미하기 때문입니다. 또한, 여러 시스템 스택을 필요로 하는 복합 시스템에 대한 수요도 증가할 수밖에 없습니다.

예를 들어, 웹 애플리케이션의 시스템 스택은 비즈니스 또는 핵심 시스템의 시스템 스택과 다릅니다. 따라서 풀스택 웹 앱 엔지니어에게 핵심 시스템 개발 프로젝트를 맡길 수는 없습니다.

더욱이 웹 앱, 스마트폰 앱, PC 애플리케이션은 각기 다른 시스템 스택을 가집니다. IoT와 같은 임베디드 소프트웨어의 세계에서는 임베드되는 장치에 따라 시스템 스택이 완전히 달라집니다.

그러나 프로그래밍의 중요성이 줄어들고 소프트웨어 개발의 전체 비용이 낮아진다면, 서로 다른 시스템 스택을 가진 소프트웨어를 결합한 복합 시스템 개발이 증가할 것입니다.

이는 개발을 위해 여러 명의 개별 풀스택 엔지니어를 모아야 하지만, 전체 그림을 파악하고 기본적인 설계를 수행할 수 있는 엔지니어가 중요한 위치를 차지하게 될 것입니다.

이는 개별 시스템 스택의 경계를 넘어 다양한 시스템 스택에 걸쳐 전방위적인 지식과 기술을 갖춘 엔지니어에 대한 수요가 증가할 것임을 의미합니다.

이러한 엔지니어는 아마도 전방위 엔지니어라고 불릴 것입니다.

그리고 생성형 AI로 인해 프로그래밍만 할 수 있는 엔지니어의 수요가 줄어드는 것처럼, 언젠가는 단일 시스템 스택에 국한된 풀스택 엔지니어의 수요도 줄어드는 시대가 올 것입니다.

그 시대에도 IT 엔지니어로서 활발하게 활동하고 싶다면, 지금 당장 전방위 엔지니어가 되기 위해 노력해야 합니다.

전방위 엔지니어의 역할

개발하게 될 프로그래밍 언어, 플랫폼, 프레임워크는 매우 다양합니다.

하지만 그렇다고 해서 이 모든 것을 다 배워야 한다는 의미는 아닙니다. 전방위 엔지니어 또한 생성형 AI의 도움을 받을 수 있기 때문입니다.

생성형 AI에 맡기면, 개인이 직접 사용해 본 적 없는 프로그래밍 언어, 플랫폼, 프레임워크라도 말로 지시하기만 하면 생성할 수 있습니다.

물론, 버그나 보안 취약점이 유입되거나, 향후 수정이 어려워질 수 있는 기술 부채가 쌓일 위험이 있습니다.

이러한 위험을 식별하고 완화하려면 해당 언어나 라이브러리에 대한 지식이 필요합니다. 그러나 그 지식 또한 생성형 AI로부터 얻을 수 있습니다. 전방위 엔지니어는 이러한 문제를 감지하고 예방하거나 사후 처리하는 절차와 메커니즘을 철저히 구축할 수만 있으면 됩니다.

이러한 절차와 메커니즘은 시스템 스택의 차이에 따라 크게 변하지 않습니다. 버그 및 보안 취약점의 유입을 억제하고 개발 중 미래 확장성을 보장하는 절차와 메커니즘을 정형화할 수 있다면, 나머지는 생성형 AI나 해당 분야에 능숙한 엔지니어에게 맡길 수 있습니다.

전방위 엔지니어는 모든 개별 시스템 스택에 대한 상세한 지식이나 장기적인 경험을 보유할 필요는 없습니다.

나아가, 전방위 엔지니어의 주요 역할 중 하나는 여러 다른 시스템 스택에 걸쳐 협력적으로 작동하는 복잡한 소프트웨어 내에서 기능이 어떻게 분배되고 어떻게 상호 운용되는지를 설계하는 것입니다.

또한, 전체 소프트웨어가 어떻게 개발되고 관리되어야 하는지를 고려하는 것 역시 전방위 엔지니어의 중요한 역할이 됩니다.

전방위 소프트웨어

어떤 종류의 소프트웨어 개발이 전방위 엔지니어를 필요로 하는지 생각해 봅시다.

앞서 저는 전자상거래 웹 애플리케이션 개발의 예를 들었습니다.

회사 경영진으로부터 전자상거래 웹 애플리케이션을 전면 개편하라는 지시를 받은 담당 임원의 지휘 아래, 기획팀은 다음과 같은 요구사항을 제시할 수 있습니다.

사용자 커뮤니티 플랫폼 전환. 이는 단순히 전자상거래 전용 앱이나 사이트가 아니라, 제품 사용자들이 제품 자체와 사용법에 대해 서로 교류할 수 있는 플랫폼을 제공하는 것을 의미합니다. 사용자 유지, 입소문 효과, 사용자 기여를 통한 콘텐츠 풍부화, 그리고 제품 개발 피드백(긍정적 및 부정적 모두)을 신제품 기획 및 마케팅과 통합하는 것을 목표로 합니다.

옴니 디바이스 호환성. 이는 웹 앱뿐만 아니라 스마트폰 앱, 음성 비서, 웨어러블 기기, 스마트 가전제품 등 모든 기기에서 사용자 커뮤니티 및 제품 정보에 접근할 수 있도록 합니다.

옴니 플랫폼 호환성. 이는 자사 사용자 커뮤니티 플랫폼뿐만 아니라, 예를 들어 일반 전자상거래 사이트에서의 제품 목록 및 리뷰 공유, 소셜 미디어와의 통합, 그리고 다양한 AI 도구와의 기능 및 정보 연동을 포함합니다.

업무 시스템 재구축. 기존 판매 관리 및 제품 배송 시스템과 일시적으로 연동하면서도, 이러한 시스템들 또한 재구축될 것입니다. 재구축 후에는 실시간 판매 데이터 집계, 수요 예측, 재고 관리 시스템과의 통합이 구상됩니다. 더욱이, 지역 분산 재고 시스템 및 배송업체가 제공하는 제품 배송 서비스와의 점진적인 통합이 진행됨에 따라, 정보 시스템 또한 이에 맞춰 점진적으로 통합되어야 합니다.

리퀴드웨어 호환성. 물론 모든 사용자 인터페이스는 리퀴드웨어와 호환될 것입니다. 또한, 제품 개발 및 기획을 위한 정보 집계 및 피드백, 시스템 운영 부서, 경영진 보고서 등 모든 내부 사용자 인터페이스도 리퀴드웨어로 전환될 것입니다.

이러한 복잡한 소프트웨어 개발 계획이 제시된다면, 전통적인 소프트웨어 개발팀은 즉시 수락하지 않을 것입니다. 혹은 시스템 사양을 조율하는 과정에서 막대한 개발 비용과 시간이 필요하다는 것을 논리적으로 입증하고, 사양을 대폭 축소하도록 유도할 것입니다.

하지만 생성형 AI가 대부분의 프로그래밍을 자동화할 수 있고, 제시된 시스템 스택의 절반 이상이 팀 내 누군가에게 익숙하며, 팀이 이전에 생성형 AI의 도움을 받아 새로운 시스템 스택, 플랫폼, 프레임워크를 처음부터 성공적으로 도입한 경험이 있다면 어떨까요? 그리고 당신이 전방위 엔지니어로서 이미 이 길을 걷고 있었고 앞으로도 계속 걸어갈 의향이 있다면 어떨까요?

그러한 관점에서 보면, 이는 매우 매력적인 프로젝트로 보일 것입니다. 당신은 기획 리더십의 지휘 아래 야심찬 제안을 내놓는 기획팀과, 전방위 소프트웨어 개발팀으로 성장할 잠재력을 가진 개발팀과 함께 일하게 될 것입니다.

기존 시스템이 있다는 점도 안심할 수 있는 부분입니다. 또한 이는 민첩한 개발 프로세스가 가능한 프로젝트이기도 합니다. 즉, 영향력 있는 기능을 빠르게 구축하고, 초기 사용자들의 피드백을 통해 시스템을 점진적으로 성장시킬 수 있는 프로젝트입니다.

이러한 점들을 고려할 때, 이 전방위 소프트웨어의 개발은 매력적인 프로젝트로 보일 것입니다.

맺음말

생성형 AI의 자동 프로그래밍 덕분에, 리퀴드웨어와 전방위 소프트웨어 개발은 이미 현재 진행형으로 현실이 되고 있습니다.

이러한 상황에서 IT 엔지니어들은 풀스택을 넘어 전방위 엔지니어가 되기를 목표로 삼아야 할 필요성이 점점 커지고 있습니다.

나아가, 그 범위를 확장하여 IT 시스템의 영역을 넘어 고객, 내부 직원, AI를 연결하여 조직 활동을 종합적으로 엔지니어링하는 전방위 비즈니스 엔지니어링과 전방위 커뮤니티 엔지니어링으로 나아갈 것입니다.

그리고 더 나아가, 사회를 전방위적으로 개선하는 것을 목표로 하는 전방위 사회 공학이라는 분야가 등장할 것이라고 저는 믿습니다.