본문바로가기


결혼과 백화점 쇼핑에 대한 비유를 들은 적이 있다. 일층부터 올라가면서 괜찮은 상대를 고르는데 적절한 대상이 나타나면 구입을 결정해야 한다. 어느 순간 배우자를 고를 것이냐가 핵심이다. 근데 한 가지 원칙이 있다. 맘에 들 때까지 위로 올라가면서 고를 수 있지만 다시 밑으로 내려갈 수는 없다는 것이다. 어느 순간 결정해야 할까? 이를 고르는데 어떤 기준이 있는가? 다음 글을 보면 아이디어를 얻을 수 있다.


한 사람이 비서를 뽑으려 한다. 이미 몇 사람을 봤는데 신통치 않다. 지금 인터뷰한 사람이 그런대로 괜찮다. 근데 더 괜찮은 사람이 나타나지 않을까 갈등이 생겨 결정을 미룬다. 계속 더 봤는데 마땅치 않다. ‘그때 그 사람을 뽑았어야 했는데’라는 후회가 밀려온다. 언제 결정을 해야 할까? 이럴 때는 37%에서 멈추라는 최적 멈춤optimum stopping 알고리즘이 도움이 된다. 적절한 시점에서 멈춰야 하는데 전체 소요 시간의 37% 정도 시점이 좋다는 것이다. 아파트를 구할 때도 그렇다. 한 달 예정으로 구입한다면 11일째까지는 막연하게 돌아다니면서 대안을 살펴본다. 그때는 맘에 들어도 결정하지 않는다. 그러다 37% 시점에서 결정하는 것이 성공 확률이 가장 높다. 꽤 많은 문제들이 여기에 해당한다. 너무 알아만 보고 결정하지 않는 것도 문제가 될 수 있고, 알아보지도 않고 결정하는 바람에 더 좋은 기회를 놓칠 수도 있다.


다니는 회사는 맘에 든다. 회사를 그만두고 더 나이 들기 전에 내 사업을 하고 싶다는 생각도 든다. 이 길로 가야 할까, 저 길로 가는 것이 좋을까 고민이 된다. 이럴 때 어떻게 결정해야 할까? 혹시 기준점이 있나? 아마존을 만든 제프 베조스가 좋은 사례다. 그는 아마존을 세우기 전 뉴욕의 투자회사 D. E. Shaw에서 연봉도 많고 안정적인 자리에 있었다. 하지만 시애틀에서 온라인 서점 사업을 너무 하고 싶었다. 그런 얘기를 보스에게 하자 그의 보스는 신중하게 생각하라고 조언한다. 하지만 그는 사업을 하기로 결정한다. 그가 가진 결정의 틀은 심플하다. 후회 최소화의 틀이다. 80세가 됐을 때 스스로에게 “좋아, 내 인생에 후회는 없어. 있어도 아주 적어”란 말을 하고 싶었다. 후회에는 두 종류가 있다. 해 본 일에 대한 후회와 하지 않은 일에 대한 후회가 그것이다. 근데 후회의 성격이 다르다. 해본 일이 대한 후회는 후유증이 짧지만 안 해본 일에 대한 후회는 오래간다. 제프 베조스가 의사결정을 할 때 사용한 기준은 후회 최소화 알고리즘이다.


옷장이 꽉 차서 더 이상 옷을 넣을 수 없다. 어떻게 옷장을 정리하는가? 우선, 여러 기준으로 옷을 버린다. 다음은 찾기 쉽게 옷장을 정돈한다. 한마디로 정리정돈이다. 정리가 먼저이고, 정돈이 나중이다. 컴퓨터의 메모리 장치도 비슷한 개념으로 만들었다. 컴퓨터 과학자들은 무엇을 간직하고, 그것을 어떻게 정리할 것인지를 수십 년 동안 씨름했다. 그러다 1946년 폰 노이먼은 기억계층구조 개념을 생각한다. 작고 빠른 기억을 저장 장치로 보내는 대신 다시 쓸 가능성이 높은 내용을 따로 저장하는 것이다. 필요 정보를 작업기억에 남겨 주기억장치에 다시 접근할 필요를 없애는 것이다. 이게 캐싱이다. 자주 참조하는 정보를 계속 담아둔다는 개념이다. 도서관 책 정리에서 아이디어를 얻었다. 필요할 때마다 도서관에서 책을 빌리는 대신 필요한 책을 옆에 두면 도서관 가는 횟수를 획기적으로 줄일 수 있다.


문제는 ‘캐시가 다 차면 어떻게 할 것이냐?’이다. 세 가지 옵션이 있다. 첫째, 무작위 퇴거Random Eviction이다. 캐시에 새 데이터를 추가할 때 무작위로 기존 데이터에 덮어씌우는 것이다. 완벽하지는 않지만 그렇게 나쁘지도 않다. 캐시를 어떻게 관리하든 캐시를 가졌다는 것만으로도 시스템은 효율적이다. 둘째는 선입선출First-in, First-out, FIFO, 즉, 가장 오랫동안 캐시에 죽치고 있던 것을 내쫓거나 덮어씌우는 방식이다. 셋째는 최저사용빈도Least Recently Used다. 가장 오랫동안 쓰지 않는 항목을 내쫓는 것이다. 셋 중 LRU가 가장 효과적이다. 특정 정보를 불러온다는 건 가까운 미래에 다시 불려올 가능성이 높다는 것이고 반대로 오랫동안 사용하지 않은 프로그램은 앞으로도 사용하지 않을 가능성이 높다는 것이다.


이런 개념을 다시 도서관에 적용하면 재미난 사실을 생각할 수 있다. 도서관의 핵심은 ‘어디에 책을 보관할 것이냐’이다. 핵심은 가장 자주 찾는 책을 찾기 쉬운 중앙에 배치하는 것이다. 가장 최근에 찾은 책을 다시 찾을 가능성이 가장 높기 때문이다. 현재 도서관은 어떤가? 도서관을 뒤집어야 한다는 것이 저자의 설명이다. 현재 중앙에 있는 신간코너를 뒤편에 두고 가장 최근에 반납된 책을 중앙통로에 둬야 한다는 것이다. 가장 최근에 대출해 간 책을 다시 찾을 가능성이 높기 때문이다. 최근 반납된 책을 중앙통로에 둔다면 서가정리 과정이 필요 없을지도 모른다. 고객들도 멀리까지 들어갈 필요가 없다. 


알고리즘은 핵심을 뽑아내는 기술이다. 무엇이 핵심인지를 뽑고 정렬하고 순서를 매기는 과정이다. 사실 인공지능도 알고리즘 설계를 어떻게 하느냐에 따라 품질이 좌우된다.

* 칼럼에 대한 회신은 kthan@hans-consulting.com으로 해주시기 바랍니다.