나의 코드가 구석기 유물이 되던 날

by 미드나잇 로그


2020년 8월, 뜨거운 햇살 아래 판교로 첫 출근을 했다.

출근길 풍경은 낯설고도 신선했다.


약속이라도 한 듯 손목마다 채워진 스마트 워치, 그리고 정장 대신 반바지와 티셔츠를 입고 출근하는 사람들. 형식보다는 효율을 택한 그들의 자유로운 옷차림에서 나도 덩달아 해방감을 느꼈다.


설렘 가득했던 그 날, 나는 미처 알지 못했다.

자유로워 보이는 이 거리의 이면에서, 멈추는 순간 도태되는 냉혹한 기술의 변화가 쉴 새 없이 흐르고 있다는 사실을 말이다.




'눈치'를 가르치다


검색팀에 배정받고 떨어진 첫 임무는 '뉴스 사진 검색' 기능을 살려내는 것이었다. 이미 개발은 되어 있었지만, 정확도가 낮아 오픈조차 하지 못한 채 창고에 쌓여있는 서비스였다.


나는 먼저 알고리즘이 가진 한계를 들여다봤다. 당시 기술은 사진을 직접 보는 게 아니라, 사진에 붙어있는 설명 텍스트에만 의존해서 검색했다. 그러다 보니 기계는 글자만 같으면 다 똑같은 사진인 줄 알았다.


예를 들어 'OOO 회장'을 검색하면, 정작 회장님 얼굴은 안 보이고 그가 방문한 '공장 전경'이나 '건물 사진'만 잔뜩 뜨곤 했다. 사진 설명에 이름이 있다는 이유만으로 기계가 눈치 없이 엉뚱한 사진을 내민 것이다.


나는 이 꽉 막힌 기계에게 '문맥'을 가르치기로 했다. 핵심은 뉴스의 '카테고리'와 문장 속 '단어의 속성'을 조합하는 것이었다.


나는 코드를 열어 새로운 규칙을 입력했다.


"만약 사용자가 찾는 뉴스가 '정치'나 '스포츠'면, 배경보단 사람이 중요한 정보야. 그러니 설명글에 '장소'나 '시간'보다는 '사람 이름'이 포함되어 있을 때 점수를 대폭 높여!"


단순히 글자가 일치하는지를 넘어, 그 단어가 사람을 뜻하는지 장소를 뜻하는지를 구별해 중요도를 다르게 매긴 것이다.


결과는 적중했다. 정치 기사에서 밋밋한 풍경 사진은 뒤로 밀려나고, 의원들의 이름(인물)이 포함된 생생한 현장 사진들이 검색 결과 맨 위로 떠올랐다.


뒤죽박죽 섞여 나오던 사진들이 비로소 제 자리를 찾았다. 굳게 닫혀있던 서비스의 문이 열렸고, 내 코드는 실제 서비스가 되어 기자들의 모니터 위에서 바쁘게 돌아가기 시작했다.




자신감이 위기감으로 바뀌던 순간


서비스 오픈을 성공시키며 업무에 자신감이 붙어가던 무렵, 우연히 본 논문 하나가 나를 멈춰 세웠다.


그곳엔 '벡터 검색'이라는 단어가 있었다.

이전에 '뉴스 사진 검색'에서 내가 구현했던 방식은 "정치면이면 인물 점수를 올려"라는 식으로 일일이 규칙을 정해줘야 했지만 이 기술은 달랐다.


개발자가 굳이 규칙을 주입하지 않아도, AI가 단어의 의미를 스스로 이해하고 있었다.

머리를 한 대 맞은 기분이었다.


예를 들어 기존 방식이 '스마트폰'이라는 단어를 정확히 입력해야만 결과를 찾는다면, 벡터 검색은 '손에 들고 다니는 전화기'라고 검색해도 찰떡같이 스마트폰을 찾아준다. 단어가 겹치지 않아도 문맥상 같은 의미라면 검색이 가능한 것이다.


순간 이전에 내가 공들여 했던 규칙을 세우는 작업들이 낡아 보였다.

'나는 수동으로 중요도들을 조절했는데, 이 기술은 기계가 의미를 이해하는구나. 이 기술이 상용화되면 내가 알고 있던 방식은 순식간에 구시대의 유물이 되겠구나.'




변화는 파도처럼 밀려오고


도망칠 수는 없었다.

나는 살기 위해 다시 모니터 앞에 앉았다.


인터넷에 공유된 최신 기술 문서들을 뒤지고 코드를 분석하며, 딥러닝 기반의 벡터 검색을 공부했다. 그리고 곧바로 팀에서 준비 중이던 챗봇 프로젝트에 눈을 돌렸다.


당시 챗봇은 사용자의 질문에 엉뚱한 거짓말을 늘어놓는 문제로 골머리를 앓고 있었다. AI 모델이 과거의 데이터로만 학습된 탓에, 최신 정보를 알지 못해 없는 사실을 지어내는 '할루시네이션(환각)' 증상을 보인 것이다.


나는 여기에 벡터 검색을 도입해보기로 했다.


챗봇이 자기 지식만 믿고 답변하기 전에, 질문과 관련된 '최신 참고 자료'를 데이터베이스에서 먼저 검색해 오도록 만든 것이다. 즉, 챗봇에게 '오픈북 테스트'를 시킨 셈이다.


효과는 확실했다.

챗봇은 더 이상 과거에 갇혀 엉뚱한 소리를 하지 않았다. 대신 사용자의 질문 의도에 딱 맞는 최신 정보를 찾아내, 그것을 근거로 정확하게 답변하기 시작했다.


검색팀 최초의 벡터 검색 도입 성공.

그제야 나는 가쁜 숨을 고를 수 있었다.




결국 변하지 않는 것


이 경험을 통해 뼈저리게 배운 건 '기술은 사용자의 문제를 더 잘 해결하는 방향으로 계속 진화한다'는 사실이었다.

내가 개발했던 '키워드 검색'이 시간이 지나자 '벡터 검색'이라는 새로운 흐름에 자리를 내주었듯, 지금 내가 쓰는 기술도 언젠가는 낡은 것이 될 것이다.


나는 여전히 새로운 기술이 나올 때마다 '내가 뒤처지는 건 아닐까'라고 걱정하는 평범한 개발자다. 매일 밤 논문을 파고들 만큼 성실하지도 못하다.


하지만 적어도 새로운 파도가 밀려올 때, 눈을 감는 대신 올라타야 할 파도가 맞는지 살펴보곤 한다.




ChatGPT 등장


벡터 검색을 익히며 안도하던 어느 날, IT 업계를 송두리째 뒤흔든 괴물이 등장했다.

"ChatGPT? 이게 뭔데 다들 난리야?"


모니터 속 깜빡이는 커서를 보며 생각했다.

이번에 밀려오는 거대한 파도에 나는 휩쓸려 사라질 것인가, 아니면 다시 한번 올라탈 것인가.


이전 02화AI에게 대체될까 두려워 AI 엔지니어가 된 이야기