4만 줄의 VBA 요새를 만들고 깨달은 것: 'AI 잔업주의'에서 배우며, 이제는 빼기(축소)로 나아가야 할 때
요약
글쓴이는 4만 줄이 넘는 거대한 VBA 애드인 개발 경험을 바탕으로, AI를 활용한 업무 효율화 트렌드를 접하며 성찰합니다. 단순히 기능을 많이 추가하는 것보다 '현장에서 막힘없이 사용 가능한' 간결함과 실용성을 추구해야 한다고 주장합니다.
핵심 포인트
- AI를 병렬로 구동시켜 잔업하게 하는 방식은 매우 합리적이다.
- 기능의 양(4만 줄)보다 현장 사용성(사용 편의성)이 더 중요하다.
- 앞으로는 외부 AI 의존도를 낮춘 완전 로컬 자율 툴을 목표한다.
- 복잡한 기능을 '스마트한 집약'으로 축소하여 사용자 경험에 집중할 것이다.
지난번에는 직접 만든 검사 툴을 개수하면서 매크로의 관문을 일주일 동안 봉쇄했던 범인이 무려 3개월 전 Claude 자신이었다는 결말을 적었습니다.
제 손안의 개발 환경이 겨우 안정을 되찾은 어느 밤, 인터넷 경제 영상 미디어에서 한 젊은 리더의 밀착 다큐멘터리를 보게 되었습니다.
대형 IT 기업에서 최연소 본부장으로 발탁된 20대의 그가 생성 AI와 웹 툴을 자유자재로 구사하며 업무 효율화를 진행하고, 사내외 자료 작성이나 기업 리서치를 순식간에 끝내는 모습을 추적한 프로그램이었습니다.
화면 속에서 그가 이야기하는 것은 '인간이 잔업으로 밤샘 근무를 하는 것을 멈추고, AI를 병렬로 구동시켜 잔업하게 한다'는 매우 가볍고 합리적인 업무 방식이었습니다.
그 열정에 감탄하면서 문득 제 발밑을 다시 바라보았습니다.
제 손에 있는 직접 만든 애드인 『秀コンボ』(슈콘보)는 일상 실무의 불편함을 해소하려 기능을 계속 추가한 결과, 어느새 코드 라인 수가 **4만 줄(40,940줄)**을 넘어서고 있었습니다.
최고 수준의 지능인 Claude나 Gemini에게도 '어딘가 고칠 곳은 없는지' 총점검을 시켜봐도, 이미 '손댈 곳이 없다'는 말을 들릴 정도로 세련된, 말 그대로의 '요새'였습니다.
하지만 화면 너머의 스마트한 업무 방식과 손에 있는 4만 줄의 두꺼운 코드를 비교했을 때, 가슴속에 하나의 조용한 의문이 떠올랐습니다.
──이 거대한 요새가 현장의 동료들에게 정말로 사용하기 쉬운 도구가 될까?
이번 글에서는 화제가 된 AI 업무 방식에서 배운 점과, 4만 줄의 코드를 완성한 끝에 보게 된 '앞으로의 빼기(축소)'에 대해 이야기합니다.
- 방송에서 소개된 '인간의 잔업을 포기하고, AI에게 병렬로 잔업하게 한다'는 발상은 극도로 합리적이며, 실무에서 AI를 사용하는 사람으로서 깊이 공감했습니다.
- 회의 중간 몇 분 동안 Claude Code에 전략 리뷰를 던지고, 자신이 미팅하는 사이에 뒤에서 AI가 작업을 끝내 놓는 방식은 그야말로 AI를 '손 놓고 있게 하지 않는' 훌륭한 실무 지혜입니다. 반면 자신의 발밑을 돌아보니, 직접 만든 애드인 『秀コンボ』는 기능을 계속 추가한 결과 36 모듈・40,940줄이라는 거대한 규모에 달했습니다.
- Claude와 Gemini 양쪽 모두에게 총점검을 시켜봐도 수정할 부분이 없을 정도로 로직은 완성되어 있습니다. 그러나 '기능이 갖춰져 있는 것'과 '현장에서 막힘없이 사용 가능한 것'은 전혀 다른 문제였습니다.
- 이제부터는 현장에 프롬프트를 입력하게 하는 것이 아니라, 현장에서는 외부 AI조차 의지하지 않는 완전 로컬 자율 툴을 목표로 합니다. Excel 표준의 '솔버(Solver)'나 '분석 도구' 같은 잠자고 있는 수학 엔진을 VBA로 조종하여, 무작정 기능을 나열하는 방식으로는 해결되지 않던 부분도 Excel 단독으로 최적해를 도출합니다.
- 표면은 철저하게 덜어내고, 현장의 누구나 세 개의 버튼만으로 막힘없이 사용할 수 있는 '빼기(스마트한 집약)'로 방향을 틀 것입니다. 우리가 목표하는 것은 거창한 DX가 아니라, **'눈앞의 한 명이 정시에 웃으며 퇴근할 수 있게 하는 작은 혁명'**입니다. 그것으로 충분하다는 설계의 근본에 돌아갑니다.
영상 속에서 소개된 그의 업무 방식은 매우 상쾌하고 시사하는 바가 컸습니다.
엔지니어 출신이 아니라는 그가 내세운 것은 '정시 퇴근을 위한 효율화'라는, 현장에서 일하는 사람이라면 누구나 공감할 수 있는 콘셉트였습니다. 특히 인상적이었던 말은 다음과 같았습니다.
인간이 아무리 밤샘하며 잔업해도 하루에 기껏해야 10시간 정도밖에 늘릴 수 없다. 하지만 AI라면, 10대를 병렬로 구동하면 하룻밤 사이에 100시간 이상 일해준다. 인간의 잔업은 포기하고, AI를 통한 잔업주의로 전환하자.
정신론으로 밤늦게까지 키보드를 두드리는 것이 아니라, 지능 쪽을 스케일 아웃(scale out)시켜 태스크를 위임하는 것. 이 발상은 현대의 생성 AI에 임하는 자세로서 더할 나위 없이 올바른 입장입니다.
영상 중반부에는 그가 취재 중간 잠깐의 2~3분 동안 노트북을 열고 Claude Code에 사업 계획 리뷰를 던지는 장면이 있었습니다.
AI로부터 돌아온 개선안 중 하나를 골라 '이 방향으로 더 깊게 파고들어 달라'고 지시하자, 그는 곧바로 PC를 닫고 다음 회의실로 향했습니다.
그가 회의에 집중하는 약 40분 동안, PC 뒤에서는 AI 에이전트가 자율적으로 사고와 조사를 진행했고, 그가 자리로 돌아올 무렵에는 다음 결과물이 완성되어 있었습니다.
'AI를 내 손안에서 가만히 기다리게 하는 것(동기 대기)'이 아니라, '비동기로 태스크를 맡겨 AI가 놀지 않게 하는 것'. 이는 평소에 AI 에이전트를 도구로 움직여 온 사람이라면 누구나 배워야 할 훌륭한 기술입니다.
그들이 개발하고 있는 도구는 웹상의 정보를 자율적으로 수집하여, 사내 공유용의 경쾌한 슬라이드와 경영 회의용의 딱딱한 슬라이드를 버튼 하나로 순식간에 분리하는 것이었습니다.
정보 요약부터 프레젠테이션 자료의 뼈대까지 한 번에 완성해내는 그 가벼움은, 현대 SaaS나 웹 도구의 장점을 충분히 활용한 것입니다.
하지만, 그 화려한 데모를 부드러운 눈으로 바라보면서도, 저는 제 책상 위에 놓인 '실제 데이터'에 대해 생각하고 있었습니다.
현장 실무에서 정말 시간이 녹아내리는 곳은 어디일까요?
예쁜 슬라이드로 만들기 전 단계의,
- 여러 부서에서 모여든, 포맷이 제각각인 수십 장의 시트
- 전각/반각이 뒤섞이고, 공백 유무에 따라 일치하지 않는 상품 코드나 고객 이름
- 과거 담당자가 남긴, 복잡하고 기괴한 수식과
#N/A나#VALUE!같은 오류 - 임의로 병합된 셀과 날짜 형식이 제각각인 수기 데이터
이러한 **'지저분하고 예외가 가득하며, 절대 피할 수 없는 원본 데이터'**를 어떻게 정리하느냐 하는 고군분투야말로 매일 잔업의 90%를 만들어내고 있습니다.
웹 도구가 아무리 진화해도, 기업에서 가장 깊고 무거운 실무 데이터는 여전히 로컬 환경의 Excel 속에 잠들어 있습니다.
화면 너머의 스마트한 슬라이드 생성을 칭찬하면서도, 저는 '역시 현장의 마지막 보루를 지키는 것은 손안의 지저분한 표와 직접 마주하는 기술이다'라는 생각을 강하게 했습니다.
그런 생각에서 저는 지금까지 자작 프로그램인 『슈콘보(秀コンボ)』에 끊임없이 기능을 추가해 왔습니다.
'우편번호 하이픈 누락을 일괄로 수정하고 싶다'
'전월과 금월의 거대한 표를 순식간에 비교하여 차이점을 내고 싶다'
'망가진 수식을 셀 값 없이 구조만으로 자동 복구하고 싶다'
'어떤 시트에서든 원클릭으로 전용 검색 화면을 띄우고 싶다'
현장에서 마주친 어려움을 하나하나 주워 담아, VBA의 최속 배열 처리(메모리 전개에 의한 일격 대입)로 구현하고 '선반'이라 불리는 매크로 그룹으로 정리해 나갔습니다.
이런 **'더하기의 날들'**을 쌓아 올린 결과, 손안의 코드베이스는 어느새 다음 규모로 부풀어 있었습니다.
| 항목 | 실측값 |
|---|---|
| 구성 요소(모듈) 수 | 36개 본 |
| ... | |
| 최근 이 4만 줄의 코드를 Claude (Opus)와 Gemini 양쪽에 맡기며, '어딘가에 낭비나 버그는 없는지 철저하게 점검해 달라'고 요청했습니다. |
두 거대 AI의 답변은 놀라울 정도로 조용했습니다.
'배열 메모리 관리, 오류 처리, 프로시저 호출 구조 모두 극도로 합리적으로 구성되어 있습니다. 현재로서는 손댈 곳을 찾기 어렵습니다.'
세계 최고 수준의 지능 두 개를 나란히 세워 흠집을 찾아내게 해도, 더 이상 수정할 부분이 나오지 않습니다.
기술적으로는 이보다 더 완벽할 수 없는 도달점입니다. 4만 줄의 코드는 현장의 어떤 무리한 데이터가 날아와도 밀리초 단위로 베어버릴, 견고무적의 '요새'로 완성되었습니다.
하지만, 완벽하게 갖춰진 4만 줄짜리 요새 앞에서 저는 문득 걸음을 멈췄습니다.
'나에게는 어디에 무엇이 있는지 전부 알지만. 하지만 현장의 동료가 이것을 본다면 어떻게 생각할까?'
답은 명확했습니다. 기능이 너무 많아서, 뭘 눌러야 할지 모르는 것입니다.
선반 안에 100개 이상의 편리한 매크로가 나열되어 있어도, 평소 업무로 바쁜 동료에게 '이 매크로는 이런 때 쓰고, 저 매크로는 이런 옵션이 있어서...'라고 설명해봤자 아무도 능숙하게 사용하지 못합니다.
'뭔가 멋있어 보이는데 어려워서 만질 수 없어'라며 기피되고, 결국 원래의 수작업으로 돌아가게 된다면 본말전도가 됩니다.
그래서 생각해낸 것이 **'기능의 빼기(스마트한 집약)'**였습니다.
그리고 한 단계 더 나아가 생각했습니다.
──**'현장에서 구동할 때는 애초에 AI에게조차 의존하지 않는 도구로 만들 수는 없을까?'**라고요.
세상의 DX는 현장 직원들에게 'ChatGPT의 프롬프트를 외워라', '새로운 클라우드 AI 화면을 열어라'고 무리를 강요하고 있습니다.
하지만, 현장의 실정은 그렇게 녹록지 않습니다.
- 인터넷이나 클라우드 AI에 사내 데이터를 내보낼 수 없다 (보안 규정이나 폐쇄망의 벽)
- 매월 API 비용이나 구독료 예산 같은 것은 현장에는 내려오지 않는다
- 애초에, 눈앞의 업무에 치여 사는 사람이 AI와 채팅으로 대화할 여유가 있을 리 없다
그렇다면 답은 하나입니다.
'AI의 지혜는 개발 단계에서 모두 4만 줄의 VBA 코드 안에 녹여 놓는다. 현장에서 사용할 때는 외부 AI 통신도, API 키도, 프롬프트도 일절 필요 없다. 완전히 Excel 단독으로 작동하는 도구로 만든다.'
이렇게 하면 인터넷에 연결되지 않은 격리된 PC에서도 정보 유출 위험 제로, 추가 비용 제로로 누구나 사용할 수 있습니다.
'하지만 AI에 의존하지 않으면 복잡한 판단이나 최적화가 불가능하지 않을까?'
라고 생각하실 수도 있습니다. 하지만 VBA와 오랫동안 함께 해온 저는 알고 있습니다. Excel은 인간이 생각하는 것보다 훨씬 깊이가 있으며, 엄청난 괴물을 처음부터 배 속에 품고 있다는 것을.
Excel의 추가 기능(Add-in) 설정 창을 열면, 예전부터 조용히 나열되어 있는 기능들이 있습니다. 바로 **'솔버(Solver)'**나 **'분석 도구(Analysis Tool)'**입니다.
하지만 여기서 멈춰 서서 냉정하게 생각할 필요가 있습니다.
실제로는 최근 Excel 함수의 진화가 엄청나며, 예전에는 분석 도구를 열지 않으면 할 수 없었던 상관관계(CORREL), 회귀분석(LINEST), 시계열 예측(FORECAST.ETS), 데이터 추출 및 정렬(FILTER, SORT, UNIQUE, LET) 등 많은 기능들이 이제는 일반 함수만으로 순식간에 계산할 수 있게 되었습니다.
함수로 해결된다면 추가 기능 설정조차 필요 없습니다. '누구의 PC에 배포해도 고장 나지 않고 작동한다'라는 의미에서, 함수로 스마트하게 해결하는 것이 훨씬 안전하고 현명합니다.
그렇다면 무엇이 '함수로는 절대 할 수 없고, 솔버로만 가능한가'일까요?
그것은 **'수천, 수만 가지의 조합 중에서 규칙(제약)을 모두 충족시키면서 가장 좋은 답을 찾아내는 퍼즐 같은 역산 과정'**입니다.
예를 들어,
- '모두의 희망 휴가와 스킬 배치를 만족시키면서 야간 근무 연속을 피하는 최적의 근무표 만들기'
- '총 1,000개 이내로, 각 50개 이상, 정수로 매출이 최대가 되는 상품의 수입 배분 결정하기'
이러한 문제들은 아무리 함수를 만지작거려도 원리적으로 풀 수 없습니다. 여기서 비로소 Excel 표준의 수리 최적화 엔진인 **'솔버(Solver)'**의 역할이 필요합니다.
10년 전만 해도 '무겁고 기다리게 한다'며 기피되던 솔버지만, 현대 PC 성능으로 실제로 VBA에서 실행해 보니, 단 0.18초라는 눈 깜짝할 사이의 속도로 수학적인 완전 최적해를 도출했습니다.
지금 저의 도구는 '트레이 마크로'를 먼저 작동시켜 표를 정리하고, 그래도 고치지 않는 수식 오류나 복잡한 잔여 부분이 있으면 AI에게 상담하여 수정하는 절차를 거치고 있습니다.
하지만 앞으로는 이렇게 바뀝니다.
- 먼저, 진화된 함수와 VBA의 최속 배열로 스마트하게 정리한다 (추가 기능 불필요・외부 통신 불필요) 여전히 풀리지 않는 조합 퍼즐이나 역산만 백그라운드에서 솔버를 0.18초로 돌려 최적해를 도출한다
'무조건 무거운 기능에 의존하기'보다는, '함수로 해결되면 함수로. 퍼즐만 솔버에게'.
외부 AI 통신 대기 시간은 제로. 계산 실수도 제로. 적재적소에서 극단적으로 낭비를 줄이는 것이야말로, 4만 줄의 산을 넘어서서 보이는 '진정한 빼기(축소)'입니다.
Google 검색 엔진은 내부적으로 세계 최대 규모의 서버군과 수억 줄에 달하는 고도화된 알고리즘을 보유하고 있습니다. 하지만 사용자에게 보이는 화면은 **'흰 배경에, 검색창이 하나 있는 것뿐'**입니다. 그래서 전 세계 누구나 헤매지 않고 사용할 수 있습니다.
저의 도구 최종 형태 역시 바로 이 모습입니다.
내부적으로는 4만 줄의 베테랑 VBA와 솔버 및 분석 도구 엔진이 작동할 준비를 하고 있습니다.
하지만 현장 사람이 보는 화면에는,
'【정리하기】: 시트의 틀어짐이나 수식 오류를 자동 진단하여 깔끔하게 만든다' '【비교하기】: 지난 데이터와 대조하여 차이점을 순식간에 추출한다' '【마무리하기】: 내부 최적화 엔진을 작동시켜 제출용/인쇄용 완벽한 보고서로 완성한다'
와 같이, 망설일 틈 없는 세 가지 큰 버튼만 조용히 나열되어 있을 뿐입니다.
'겉보기에는 극도로 단순하다. 외부 AI 의존도도 제로. 그런데 버튼을 누르니 마법처럼 업무가 끝난다'.
덧셈의 산을 넘어서야 비로소 보이게 된, 이것이 제가 목표하는 '빼기(축소)'의 종착점입니다.
여기서 본고에 나오는 객관적인 사실과 저 자신의 견해를 정리하겠습니다.
-
화제가 된 영상에서는 비동기 작업 위임이나 병렬 처리 등, AI의 특성을 살린 뛰어난 업무 방식이 실현되고 있었습니다.
-
직접 만든 애드인 『秀コンボ』는 실제 측정 결과 36 부품・40,940행에 달하며, 실행 시간은 1.19초, 매크로 호출은 0.17초로 작동하고 있습니다.
-
Claude 및 Gemini를 통한 포괄적인 코드 점검에서 중대한 로직 오류나 수정해야 할 결함은 발견되지 않았습니다.
-
한편으로 기능이 너무 많아진 도구는 개발자 외의 사람들에게 인지 부하가 크고, 그대로는 현장에 정착하기 어렵습니다.
-
웹 기반 AI 툴과 로컬 Excel을 직접 조작하는 AI 툴은 경쟁 관계라기보다는 사각지대가 다릅니다. 전자는 '발신 및 합의 형성'을 돕고, 후자는 '현장의 지저분한 실무 데이터'를 구합니다.
-
AI 개발에서의 '덧셈(기능 포괄)' 단계는 일정한 완성에 이르렀습니다. 이제는 '뺄셈(UI 통합과 자동화)'을 통해 현장의 인지 비용을 제로에 가깝게 만드는 것이 보급의 열쇠가 됩니다.
-
현장에서 구동할 때는 외부 AI에 의존하는 것을 끊고, Excel 내부의 '솔버'나 '분석 도구' 같은 표준 엔진을 VBA로 조작함으로써, 완전 오프라인 상태에서 남아있는 (최적해)를 자체적으로 완성할 수 있습니다.
-
4만 행의 코드를 잘라 줄이는 것이 아니라, 4만 행의 지식을 '배후 자동 판정'으로 침전시키고 표면적인 버튼을 줄이는 것이 진정한 '스마트화'입니다.
솔직히 말하자면, 4만 행이나 되는 코드를 쌓아온 사람에게 '표면 버튼을 줄인다', '기능을 숨긴다'는 것은 조금 쓸쓸하고 용기가 필요한 작업이기도 합니다.
애써 구현했던 그 판정 로직도, 공들여 고속화했던 그 추출 처리도, 현장 사람들에게는
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기