[근황] 학사 졸업의 논문 도전기
논문 작업을 시작하다
올해 팀을 옮기지 않았지만, 그동안 메인으로 하던 프로젝트를 서브로 내려놓고 팀의 가장 큰 프로젝트를 참여하며 굉장히 바쁜 한 해를 보냈다. 대부분의 시간을 기존 프로젝트를 이해하는데 사용했던 것 같다. 그러다보니 해결한 업무들은 비교적 난이도가 낮은 업무들이 많았고 그 점이 올 한해를 돌아봤을 때 가장 아쉬운 점이었다.
운이 좋게도 9월에 기회가 왔다. 검색 엔진 개발자로서 실제 검색엔진을 운영하는 서비스에 대한 이해가 필요하다고 생각해 서비스 조직 회의도 같이 들어가곤 한다. 그 덕에 비교적 서비스 측에서 검색 엔진에 불편함을 느끼는 지점을 잘 이해할 수 있었다. 그래서 나는 남는 시간에 서비스향 기능 지원을 할 수 있는 지점이 없을지 고민을 많이 하곤 했었다.
9월에 들어온 이슈는 검색 엔진 개발자는 전혀 예측하지 못했던 이슈였다. 지금 밝힐 수 없지만 개발시 테스트 하기 어려운 환경에서 관측되는 이슈였고, 알고리즘 자체의 약점이라서 해결할 수 있는 뾰족한 방법이 없었다. 혹시나 학회에 발표된 논문들 중 유사한 문제를 푼 논문이 없는지 조사했지만 딱 맞는 연구는 없었다.
하지만 이 문제는 해결할 수 있는 문제라고 어느정도 직감이 왔던 것 같다. 그래도 근 몇 년간 틈틈히 관련 필드의 논문들을 보았었고 이미 발표된 논문들 중에서도 참고할 수 있는 방법들이 분명히 존재했다. 그리하여 수 없이 많은 가설을 세우고 그 가설을 바탕으로 PoC를 만들어 검증하기 시작했다.
결과적으로 PoC가 보여준 효과가 꽤 좋았고 별 이슈가 없으면 검색엔진에 구현하여 배포로 나갈 것 같다. 그리고 이 PoC를 발전시켜 현재 논문을 작성 중이고 Industry 트랙으로 학회에 제출할 것 같다.
이 블로그는 주로 다른 사람들의 논문을 소개하고 있었는데, 조만간 내 논문도 소개할 수 있을 것 같다.
AI, AI, AI
참 운이 좋았다. AI가 없었으면 PoC 구현이 오래 걸렸을 것이고, 현실 업무에 치여 결국 드랍했을 것이다. 당장 작년 이맘때 쯤에 내가 그 해 발표된 연구들 중 일부 테크닉을 적용하려고 PoC를 만들었었는데, 그때와 비교해 PoC 검증 속도가 10배 이상 빨라진 것 같다. 그때도 AI는 있었음에도 말이다.
AI의 도움으로 대학원을 가보지 않은 내가 논문을 작성할 수 있다는 것은 큰 축복이다. 선행 연구 분석, 실험 수행, writing 등 큰 시간이 들어가는 작업들이 AI 도움으로 훨씬 짧아졌고 이 때문에 리서처가 아니더라도 누구나 연구를 쉽게 할 수 있는 세상이 온 것 같다.
그러나 AI를 쓸 수록 같이 드는 고민이 있다.
- 실험시 사용하는 코드를 잘 읽지 않는다.
- AI가 정리해준 논문 내용이 맞는지 꼼꼼히 확인하지 않는다.
물론 아예 확인을 안한다는 것은 아니다. 하지만 확실한 것은 AI가 발전할수록, 내가 AI를 믿고 의지할 수록 그 횟수와 들이는 시간이 줄어들고 있다.
일을 빠르게 하고 싶은 욕심이다. 세션을 3,4개 사용하면 단순 지시만 내리더라도 내가 병목이다. 코드 확인 없이 지시만 하더라도 어쨌든 결과를 보고 해석하고 다음 명령을 내려야 하기 때문에 시간이 걸린다. 하지만 AI의 생산성은 내 이해력의 속도를 훨씬 초월한다. 이 상황에서 내가 AI가 생성한 코드들을 꼼꼼히 검사한다면 세션을 N개 사용하는 것과 1개 사용하는 것과 생산성이 비슷하다. 욕심을 내면 생산성을 N배로 늘릴 수 있으니 점점 코드를 읽는 횟수를 줄이게 된다.
확인을 몇 번 해봤을 때 코드가 잘 구현된 것을 보니 믿고 쓰게 되는 것이기도 하다. 많은 개발자가 공감하겠지만, 현재의 AI는 지시만 잘 한다면 구현은 사람이 하는 것보다 더 정확하게 해준다. 문제는 내가 AI에게 지시를 충분히 하지 못했을 경우다. 나는 지시를 충분히 했다고 생각하지만 내 머리속의 context를 충분히 전달하지 못한 경우가 있다. 혹은 내가 아예 어떤 문제를 잘못 이해해 잘못된 지시를 내리는 경우도 존재할 수 있다. 그러한 경우에 AI가 생성한 코드나 정보에 대해서 꼼꼼히 확인한다면 금방 인지하여 되돌아 오기 쉽다.
확인을 자주 하지 않는 경우가 문제다. 그러다 보면 방향이 엇나간 채로 업무가 오랜 시간 진행될 수도 있다. 간단한 예로는 내가 작성한 논문대로 구현하지 않고 PoC 코드를 다르게 구현하는 경우가 있었다. AI도 그러한 결정을 할 때 나름의 이유가 있다. 코드 변경이 너무 크다거나, 실무에서 사용할 코드는 좀 더 보수적으로 접근해야한다거나. 하지만 내가 인지하지 못한채 스노우볼이 구르면 어느 순간 AI가 내가 생각한 것과 완전히 다른 것을 하게 된다.
또한 AI와 discussion을 통해 도달한 내용을 글로 쓰려고 하면 전혀 이해하지 못했다는 것을 깨닫기도 한다. discussion은 보통 내 직관을 AI에게 말하면 그것이 정말 옳은지 확인하는 방법을 찾아나가는 방식으로 진행된다. 예를 들어 수학적인 정리들이나 선행 연구들을 AI가 알기 쉽게 정리해서 보여주면, 내가 그 중 필요한 부분들을 내 연구에 적용하는 경우가 있겠다. 문제는 나는 이해했다고 생각했지만 실제로는 이해하지 못한 경우가 왕왕 발생하고, 그로 인해 논리 전개를 잘못하거나 PoC 를 잘못 만드는 경우가 발생한다는 것이다. 마치 학교 수업 시간에 이해했다고 생각했는데 시험을 보면 내가 이해하지 못했다는 것을 깨닫는 것과 비슷하달까...
AI를 어떻게 활용해야 할까
모든 원인은 결국 나의 확인 및 이해 속도다. 그 속도에 만족하지 못하고 내 capacity를 넘겨서 일을 처리하려다 보니 이런 불상사가 생기는 것이다. 만약 인정하고 세션을 N개 돌리는 대신 1,2개만 사용하면서 많은 시간을 코드 점검과 이해에 쏟는다면 내 실력도 안정적으로 올라가고 헛수고를 덜 할 것이다.
마음 한 켠에는 헛수고를 하더라도 세션 N개를 쓰는게 throughput이 더 크지 않을지 불안감이 크다. 다른 사람들은 더 많은 일들을 하고 있을 것 같고, 이들에게 뒤처지지 않으려면 나도 최대한 달려야하지 않을까라는 감정들이 올라온다.
올해는 이 중간 지점을 잡으려고 노력하지 않을까. AI 시대에 여러 AI 에이전트들을 활용하지 않는 것은 너무 아깝다. 그렇다고 너무 여러 에이전트들을 사용하려고 하면 내 능력보다 에이전트들의 생산성이 초과하면서 어느 순간 따라잡지 못하게 된다. 결국 재미없는 결론이지만 나는 꾸준히 시간과 노력을 들이면서 그 중간 지점을 찾아야할 것이다.
마무리
명확한 답 없이 마무리하기 때문에 약간 우울해 보일 수 있다. 하지만 나는 전혀 그렇지 않고 오히려 너무 신난다. 내가 할 수 있는 영역이 늘어나는게 느껴진다. 내년에는 더 넓은 영역의 지식에 도전하고 활용할 수 있게 되지 않을까. 이 시대의 축복을 잘 사용할 수 있도록 준비하고 즐겨야겠다.