AI에게 일을 맡기는 나는 어떤 일을 하는 사람인가
오늘 나의 직업적 정체성에 대한 고민을 했다.
최근에 회사에서 소프트웨어 팩토리 형태의 개발 자동화 작업을 하고 있다. 개발 과정을 분석하다 보면 결국 가장 힘든 것은 설계 초반에 아키텍처를 정하는 것, 그리고 구현이 끝난 후 운영과 배포를 관리하는 것이다.
이 두 가지를 자동화하기 위해 열심히 공부하고 있다. 『다시, 소프트웨어 엔지니어』라는 책에서는 아키텍처를 공부하는 데 'architectural kata'라는 방법이 유용하다고 소개되어 있다. 일본 무술에서 카타는 특정 동작을 반복 수련하는 것인데, 이걸 따와서 아키텍처 카타는 특정 상황에 맞는 아키텍처를 선택하고 그 이유와 성공 조건, 예상 가능한 한계 등을 정리하는 일종의 학습법이다.
이걸 해볼까 하다가, 어차피 AI가 나보다 이걸 더 잘해 줄 텐데 하는 생각이 들었다. 상황과 조건만 명확히 준다면 거기에 맞는 답을 나보다 잘 찾을 테니까.
그래서 지금 당장 내가 필요하다고 생각한 건, AI가 일관된 워크플로로 아키텍처 설계 작업을 하도록 하는 거다. 결국엔 harness engineering으로 돌아온다. 그래서 pstack처럼 최근에 바이럴이 많이 되는 harness를 더 살펴보게 되었다.
이 과정에서 느낀 건, 내가 더 이상 소프트웨어 엔지니어가 아닐지도 모른다는 생각이다. 최근에는 영상 제작이나 효과적인 학습 방법 같은 소프트웨어 개발 외적인 것을 더 많이 공부하고 있고, 이것마저도 어떻게 AI와 더 잘할 수 있을지를 고민하는 게 내 시간 사용의 대부분이다. 내 정체성은 AI 부리미인가? 약간 현타가 오기도 하지만, 지금 상황에서 내가 할 수 있는 최고의 선택일지도 모른다. 시대는 바뀌고 있고, 앞으로 직업이나 인간이 해야 할 일에 대한 정의도 많이 바뀔 테니까. 나는 그 길을 먼저 가고 있는 거다.
그렇다면 AI에게 일을 시킨다는 것이 무엇일지 좀 더 곰곰이 생각하게 된다.
어쨌든 AI를 부려 먹으려면 일을 시켜야 한다. 회사의 대표가 사람을 고용하는 것과 비슷하달까. 특정 스펙을 가진 사람을 뽑는 것과 다르게, 특정 일을 하도록 세팅한다는 게 차이점일 수는 있겠다.
그리고 또 하나의 차이는, 지금의 AI는 자율성이 떨어진다는 것이다. 고용된 직원은 일을 주면 많은 것들을 자율적으로 해온다. 하지만 AI는 '입력'이라는 트리거가 필요하다. loop engineering이나 최근 유행하는 봇 형태의 에이전트들은 이 자율성을 높이기 위한 시도다.
AI는 트리거가 필요하다. 내 인풋만이 트리거라면 AI의 유휴 시간이 늘어난다. 나보다 컨텍스트 메모리가 크고 병렬 처리가 가능한 AI를 내 인풋에만 반응해 동작하게 하면, 병목은 내 인풋이 된다. 이걸 깨려면 내 인풋 말고 다른 곳에서 트리거되는 AI 루프 시스템이 필요하다. 버그 리포트가 생기면 그것에 트리거된 개발 에이전트가 버그 재현, 수정, 리뷰, 배포까지 자율적으로 할 수 있어야 한다.
추가로, 검증 시스템도 중요한 것 같다. 자율적으로 동작하는 AI가 많아지면 검증해야 할 것들의 양도 늘어난다. 검증까지 위임하는 것도 한 방법이겠지만, 통제를 벗어난 위임은 리스크도 같이 커진다. 내가 이해하는 범위로 harness를 구축해서 과정을 통제한다면 불안이 좀 줄어들 수 있을 것 같다. 한편으로는, 내 이해가 병목이 되도록 하는 게 맞는가라는 고민도 든다.
안드레 카파시는 최근 LLM의 능력에 대한 인식 격차가 심해진다고 했다. 앤트로픽 같은 프론티어 기업 내부의 5000명 정도는 수천 개의 에이전트가 수 주간 협력해서 진행하는 프로젝트를 관리하고 있으며, 점점 검증과 이해의 속도가 결과물의 생산 속도를 따라가지 못하고 있다고 한다. (GeekNews)
AI를 어떻게 부릴지도 고민이 크다.