Paul Jialiang Wu agentic-portfolio English 中文 Español 日本語 ✉️ 무료 구독
← 포트폴리오로 돌아가기

나는 2019년에 회사의 두뇌를 만들어 놓고 할 일 목록으로 착각했다

1분 요약 — 이 글에서 얻어갈 것

물리 AI 기업은 매 주기마다 '다음에 취할 최선의 수'를 다시 계산하는 방식으로 전 부서에 걸쳐 자원을 배분해야 한다. 이는 로봇이 쓰는 것과 동일한 MPC 루프다. 나는 2019년에 이 엔진을 Life GPS(이진 정수 선형계획법)라는 이름으로 만들어 놓고는, 그것을 그저 할 일 목록쯤으로 착각했다.

물리 AI 기업이 소프트웨어, 하드웨어, R&D, 마케팅, 영업, 제조에 걸쳐 어떻게 자원을 배분해야 하는가. 매 주기마다 '다음에 취할 최선의 수'를 다시 계산함으로써, 마치 로봇이 경로를 다시 계획하듯이 말이다.

The company GPS: re-solve the best next move every time the map changes.
회사의 GPS: 지도가 바뀔 때마다 다음에 취할 최선의 수를 다시 계산한다.

모든 창업자와 모든 CEO가 은근히 제대로 답하지 못하는 질문이 하나 있다:

우리에게는 소프트웨어, 하드웨어, 프론티어 R&D, 마케팅, 영업, 제조가 있다. 돈은 한 덩어리, 엔지니어 시간도 한 덩어리뿐이다. 다음 1달러와 다음 1시간은 어디로 가야 하는가?

대부분의 회사는 원시인이 모든 것에 답하는 방식으로 이 질문에 답한다: 가장 크게 목소리를 내는 사람이 이긴다. 실리콘밸리에는 이런 현상을 가리키는 이름까지 있다 — 바로 HiPPO, 즉 가장 많이 받는 사람의 의견(Highest-Paid Person's Opinion)이다. 가장 그럴듯한 이야기를 하는 부사장이 인력을 따낸다. 그건 전략이 아니다. 즉흥극일 뿐이다.

이제 진짜 답을 보여주고 싶다 — 그러고 나서 6년 전에 내가 이미 그걸 만들어놓고도 내가 무엇을 손에 쥐고 있는지 몰랐다는 걸 고백하려 한다.

첫 번째 함정: "깊이 팔 것인가, 넓게 갈 것인가?"

엔지니어들에게 이 자원 배분 질문을 던지면, 다들 익숙한 그림 하나를 떠올린다: 바로 트리다. 깊이 우선(depth-first)으로 한 가지를 결과가 나올 때까지 밀어붙일 것인가, 너비 우선(breadth-first)으로 모든 갈래를 조금씩 동시에 진행할 것인가? 깊이 우선이냐 너비 우선이냐. DFS냐 BFS냐. 그럴듯하게 들린다.

하지만 이건 함정이다. 왜 함정인지 짚어볼 가치가 있는데, 바로 이 함정에 빠지는 방식 자체가 배울 점이 많기 때문이다.

그래프 순회가 답하는 질문은 "각 노드를 어떤 순서로 방문할 것인가?"이고 — 각 노드는 정확히 한 번씩만 방문된다. 하지만 예산을 배분하는 일은 방문하는 일이 아니다. 영업팀을 "방문"하는 게 아니라, 그 팀에 쏟아붓는다 — 나눌 수 있고 상한이 있는 자원을. 그리고 그 대가로 무엇이 돌아오는지 측정한다. 깊이 우선과 너비 우선은 사실 같은 기계의 다이얼을 두 개의 멍청한 극단에 고정시켜놓은 것에 불과하다. DFS는 "항상 가장 새로운 가지로", BFS는 "항상 가장 오래된 가지로"다. 둘 다 정말 중요한 단 한 가지를 무시한다 — 지금 이 순간 어떤 가지가 가장 가치 있는가 하는 것.

그러니 여기서 솔직히 정정하겠다 — 앞서 내가 세운 프레임을 스스로 뒤엎는 셈이지만 —정답은 애초에 순회 순서가 아니었다. 핵심은 목적함수와 제약조건이다. 필요한 도구는 그래프 탐색이 아니다. 최적화다. 그리고 이건 70년 묵은, 지루하고, 이미 풀린 부류의 문제다. 당신의 회사가 그 문제의 한 사례라는 걸 알아차리기만 하면 된다.

고백: 나는 이걸 2019년에 만들고 "Life GPS"라고 불렀다

6년 전 나는 허우적대고 있었다 — 배울 건 너무 많고, 시간은 너무 적고, 아무리 빡빡하게 짠 주간 계획도 수요일이면 어김없이 무너졌다. 그래서 다른 누구도 아닌 나 자신을 고치려고 작은 앱을 하나 만들었다, 나 자신을 위해서 말이다. 이름은 Life GPS라 붙였고, 아이디어는 단순했다: 아무리 여러 번 갈아탈 지점을 놓쳐도, GPS처럼 다음 최선의 한 걸음을 알려주는 플래너.

큰 그림부터 보고 싶다면, 여기 Medium에 올린 원글이 있다. 글로 읽는 대신 직접 느껴보고 싶다면? 6년이 지난 지금도 여전히 라이브 앱을 직접 건드려볼 수 있다 — 목표 몇 개를 설정하고 "Update My Plan"을 눌러서 다시 풀리는 걸 지켜보라. (코드는 GitHub에.)

귀여운 UI 밑에는 이진 정수 선형계획법(Binary Integer Linear Program)이 있었다. 쉽게 말하면 이렇다. 일주일을 시간 슬롯들의 격자로 취급하고, 각 슬롯을 어떤 작업에 켜거나 끄는 식으로 배정해서 실제로 중요한 일이 얼마나 처리되는지를 최대화한다는 것인데, 여기에는 엄격한 규칙들이 붙는다 — 각 작업은 최소 시간은 채워야 하지만 최대 시간을 넘길 수 없고, 한 시간에 한 가지만, 마감을 넘겨서 일정을 잡지 않는다. 솔버가 격자를 채우는 단 하나의 최선책을 찾아낸다. 그게 다다. 그게 전체 두뇌다. "시간 슬롯"을 "엔지니어 시간과 예산"으로 바꾸면 곧 회사가 된다:

maximize    Σ  value(department) × resource(department)   # the best next move
subject to  each team-hour spent only once                # no double-booking
            each effort ≥ floor,  ≤ cap                    # min viable, don't over-invest
            respect dependencies + deadlines               # the graph
then RE-SOLVE every cycle as reality reports back          # ← the GPS reroute (MPC)

이 마지막 문장이 핵심 트릭이다. 그 위의 모든 것은 그냥 계획일 뿐이고, 이 문장이 그것을 살아있는 계획으로 만든다.

그리고 지금 생각해도 소름 돋는 부분이 여기 있다. 실제로 무슨 일이 있었는지 — "오늘 아침엔 딥워크를 두 시간이 아니라 겨우 40분밖에 못 했어" — 알려주고 Update My Plan을 누르면, 그것은 구체적인 일을 했다. 과거를 고정시키고, 이미 써버린 만큼을 남은 모든 예산에서 뺀 다음, 나머지 한 주를 처음부터 다시 풀어낸 것이다.

로보틱스에는 이걸 부르는 이름이 있다. 바로 Model Predictive Control, 즉 계획하고, 실행하고, 현실이 움직이는 걸 지켜본 다음, 지금 실제로 있는 위치에서 다시 계획하는 방식이다. 복도에 상자가 나타났을 때 자율주행 로봇이 경로를 다시 짜는 데 쓰는 것과 정확히 같은 제어 법칙이다.나는 주말 한 번 만에 조직 단위의 MPC를 짜놓고, 그걸 생산성 앱인 줄로만 알았다.

그 오래된 코드에는 유령 같은 흔적도 하나 남아 있다. 작동시키지 못해서 주석 처리해버린 기능이다. "이 일은 최소 3일은 하되 5일을 넘기지는 마라"라는 규칙이었는데 — DFS 대 BFS 뒤에 숨은 진짜 긴장 관계, 즉 집중이냐 다양성이냐를 어설프게나마 인코딩해보려던 시도였다. 2019년의 내 솔버는 여기서 막혀버렸다(비선형 제약 조건이라서 그렇다). 요즘 솔버는 이런 건 식은 죽 먹기다. 내가 포기했던 그 문제가 지금은 한 줄짜리 코드다.

왜 장난감으로 남았는가 — 그리고 그것이 왜 곧 기회 전체인가

Life GPS는 옳았다. 내 노트북 밖으로 나가지 못한 이유는 단 하나였다: 사람이 손으로 일일이 입력해줘야 하는 세 가지 피드가 굶주려 있었기 때문이다.

The three starved feeds: what a human hand-cranked in 2019, an AI company now supplies automatically.
굶주린 세 가지 피드: 2019년엔 사람이 손으로 돌려야 했던 것을, 지금은 AI 기업이 자동으로 공급한다.
  1. 가중치. 나는 "학습 = 10, 놀이 = 6"이라고 입력했다. 순전히 감이었다. 회사에서는 아무도 이 숫자에 동의하지 않는다. 그런데 이 숫자가 모든 걸 결정한다.
  2. 작업과 규칙. 표에 일일이 손으로 입력했다. 지루하고, 정적이고, 늘 뒤처져 있었다.
  3. 피드백. 하루에 두 번 스스로 점수를 매겨야 했다. 귀찮은 일이라 결국 그만뒀다.

이 세 가지 모두 사람이 손으로 돌리는 크랭크였다. 그리고 이 셋 모두, AI 네이티브 기업이라면 지금은 자동으로 돌아가는 것들이다:

한마디로 정리하면 이렇다: Life GPS는 세 가지 데이터 공급이 끊긴 채로도 옳은 답이었고, AI 네이티브 시대는 그 세 가지를 전부 공짜로 채워준다. 아이디어가 더 똑똑해진 게 아니다. 센서가 천 배 저렴해진 것이다.

로보틱스 기업을 위한 결론

머릿속을 떠나지 않는 한 문장이 있다:

물리 AI 기업은 자사 로봇이 세상을 헤쳐나갈 때 쓰는 것과 똑같은 알고리즘으로 스스로를 조종해야 한다.

당신의 로봇들은 완벽한 계획 하나를 계산해놓고 눈감고 돌진하지 않는다. 감지하고, 몇 걸음만큼만 계획하고, 행동하고, 다시 감지하고, 다시 계획한다 — 영원히. 그 로봇들 위에 있는 회사도 정확히 그런 방식으로 돈과 사람을 배분해야 한다. 1월에 돌에 새기듯 정해놓고 3월이면 죽어버리는 연간 계획이 아니다. 매 주기마다 리더십에게 단 하나의 최선의 다음 수 를 건네주고, 게이트가 실패하거나 시장이 흔들리거나 대형 채용이 성사되는 순간 즉시 경로를 다시 짜는, 살아있는 GPS다.

The control loop: sense, solve for the best next move, act, re-plan — the same receding-horizon loop a robot runs.
제어 루프: 감지하고, 최선의 다음 수를 계산하고, 행동하고, 다시 계획한다 — 로봇이 돌리는 것과 똑같은 수용 지평선(receding-horizon) 루프다.

"The medium is the message" (번역: 매체가 곧 메시지다). 폐루프 제어를 믿어서 로봇 안에 넣을 정도라면, 회사 안에도 넣어야 한다.

이것이 실제로 풀어내는 것 (더 큰 문제)

한 발 물러서보면, 이 작은 아이디어는 더 큰 문제를 가리키고 있다. "다음 1달러는 어디로 가야 하는가?"는 로봇이 경로를 계획하는 것과, 펀드가 포트폴리오 균형을 맞추는 것과, AI가 탐험할지 활용할지 결정하는 것과 똑같은 수학이다. 이것들은 하나의 문제 다 — 불확실성 아래에서 희소 자원을 배분해 가치를 극대화하는 것 — 그리고 이제 처음으로 우리는 이것을 회사 규모에서 실제로 돌릴 수 있다. 예전에는 사람이 필요했던 세 가지 공급이 이제는 자동이기 때문이다.

함정도 있다. 숨기지 않겠다: 모든 것이 가중치에 달려 있다는 것이다. 최적화 엔진에 쓰레기 같은 추정치를 넣으면 그것은 당신을 벼랑 끝으로 몰고 갈 것이다 그것도 최적성 증명서까지 발급하면서 — 자신만만하게 틀리는 것은 대충 맞는 것보다 나쁘다. 그러니 정직한 첫걸음은 엔진을 만드는 것이 아니다. 추정치가 믿을 만한지 증명하는 것 — 과거 결정 여섯 개를 골라, AI에게 그 당시 알 수 있었던 정보만으로 값을 매기게 하고, 그 수식이 실제로 효과가 있었던 선택을 골라냈을지 확인해본다. 반나절이면 된다. 이 테스트는 시스템 전체의 정당성을 입증해주거나, 혹은 진짜 제품은 추정기 그 자체라는 사실을 알려줄 것이다. 이건 곁길이 아니다. 이것이 원칙이다.

나는 2019년, 내 한 주를 통제하려고 GPS를 만드는 데 시간을 쏟았다. 알고 보니 나는 회사가 스스로를 통제하는 데 필요한 바로 그것을 만들고 있었다. 그저 세상이 그 코드를 따라잡을 때까지 기다리기만 하면 됐다.

당신의 다음 1달러는 어디로 가는가 — 그리고 당신의 회사는 시끄러운 목소리 하나 대신 정직한 숫자 하나로 그 질문에 답할 수 있는가?


AI 네이티브 physical-AI 기업을 만드는 것에 관한 연재의 일부다 — "데모가 아니라 루프를 출시하라"와 "사람들에게 루프를 닫으라고 명령할 수는 없다"에 이어지는 글이다. 내 개인 사이트에 게재했으며, 그 배후의 전략 계획은 코드와 함께 보관되어 있다. 2019년의 씨앗은 이것이다: github.com/wjlgatech/life_GPS.