본문으로 건너뛰기
이 아티클은 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에 요청하여 변경할 수 있게 됩니다.

또한, 다른 앱에 있는 편리한 기능을 추가하거나, 여러 조작의 조합을 원클릭으로 실행하거나, 자주 보는 화면을 하나의 화면에서 볼 수 있도록 만들 수도 있습니다.

소프트웨어 개발자 측면에서도 이러한 사용자 맞춤 설정을 허용함으로써, 기능 추가 요청을 직접 처리해야 하는 수고를 덜 수 있으며, 이를 통해 사용 편의성에 대한 부정적인 평가나 불만을 피하고 소프트웨어의 인기를 높일 수 있다면 큰 이점이 있습니다.

사용자가 이처럼 화면과 기능을 자유자재로 변경할 수 있게 되면, 우리가 전통적으로 '소프트웨어'라고 불러왔던 개념과는 크게 동떨어진 모습으로 비춰질 것입니다.

이는 하드웨어보다 유연하다는 의미의 소프트웨어보다 더 유동적이고 자유롭게 변화하며 사용자에게 완벽하게 맞춰진다는 의미에서 '리퀴드웨어'라고 부르는 것이 적절할 것입니다.

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

여기에서 더 나아가, 생성형 AI에 의한 개변이 가능한 부분이라는 의미의 리퀴드웨어가 등장한다고 보면 됩니다. 그러면 전체적으로는 하드웨어 + 소프트웨어(개발자가 제공) + 리퀴드웨어(사용자의 개변)에 의해 기능이 구현될 것입니다.

이 리퀴드웨어 시대가 오면, 사용자 측면에서 개변 아이디어가 폭발적으로 증가할 것입니다.

어떤 사용자가 발명한 획기적인 개변 방법 아이디어가 SNS 등에서 화제가 되어 다른 사람들도 이를 모방하여 다양한 리퀴드웨어를 개변하는 일도 일어날 것입니다.

또한, 다양한 소프트웨어를 통합적으로 다룰 수 있는 리퀴드웨어도 등장할 것입니다. 여러 다른 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를 연결하여 조직 활동 자체를 전방위적으로 엔지니어링하는 전방위 비즈니스 엔지니어링과 전방위 커뮤니티 엔지니어링까지 확대될 것입니다.

그리고 그보다 더 나아가, 사회를 전방위적으로 개선하기 위한 전방위 사회 공학이라는 분야가 출현할 것이라고 저는 전망합니다.