사과를 고르는 것도 알고리즘이 있다

by SW짱

퇴근길에 마트에 들렀다. 아내에게서 "사과 좀 사 와"라는 메시지가 왔기 때문이다.

과일 코너 앞에 섰다. 수십 개의 사과가 쌓여 있다. 나는 습관처럼 한 손에 하나씩 들어 보기 시작했다. 가장 먼저 확인하는 것은 색깔이다. 색이 고르고 윤택이 있는 것들을 몇 개 골라 넣는다. 그 중 표면에 흠집이 있는 건 내려놓았다. 다음으로 꼭지가 싱싱한 걸 확인했다. 손끝으로 가볍게 눌러보며 너무 크거나 작지는 않은지, 단단함과 무게가 적당한 걸 골랐다. 물론 여기에 가격도 확인해야 한다.


내가 지금 하고 있는 이 행동이 — 회사에서 매일 하고 있는 일과 똑같다는 것을 문득 깨달는다.

나는 비전검사 소프트웨어를 만드는 엔지니어다. 카메라가 촬영한 이미지에서 좋은 것과 나쁜 것을 가려내는 프로그램을 개발한다. 25년째 하고 있다. 디스플레이 패널에 흠집이 있는지, 배터리 셀에 이물이 붙어 있는지, 수십 대의 카메라가 쉬지 않고 찍은 이미지를 소프트웨어가 판단한다.

그 과정을 아주 단순하게 풀면 이렇다.

먼저 기준을 정한다. "이 정도 색이면 정상이고, 이 이상 벗어나면 이상이다." 그다음 이미지를 하나하나 비교한다. 기준에 맞는 건 통과시키고, 기준에서 벗어난 건 걸러낸다. 크기, 모양, 밝기, 색상 — 항목은 여러 가지지만 결국 하는 일은 같다. 기준을 세우고, 보고, 판단한다.

그런데 마트에서 내가 한 행동을 되짚어 보니, 순서가 똑같았다.

색이 고른가 — 이미지의 색상 분포를 확인하는 것. 흠집이 있는가 — 표면의 결함을 검출하는 것. 크기가 적당한가 — 규격 범위 안에 있는지 측정하는 것.

나는 알고리즘을 짠 게 아니라, 원래 사람이 하던 일을 코드로 옮긴 거였구나.

가끔 사람들이 내게 묻는다. "비전검사? 그게 뭐예요?" 그때마다 나는 공장 이야기를 꺼냈다. 카메라가 어떻고, 해상도가 어떻고, 알고리즘이 어떻게 작동하는지를 설명했다. 듣는 사람은 대부분 어느 순간부터 고개만 끄덕이다가 조용히 화제를 바꿨다.

이제는 이렇게 말해야겠다고 생각했다.

"마트에서 사과 고르는 거 있잖아요. 그거예요."


Minimalist_vector_illustration_insert_image_169-1773583757783.png

기술이라는 건 원래 멀리 있지 않았다. 다만 우리가 어려운 이름을 붙여놓았을 뿐이다. 색상 분석, 결함 검출, 패턴 매칭 — 이런 단어들이 벽을 만들었지만, 알고 보면 사과를 고르고, 옷의 보풀을 떼고, 아이 얼굴에 묻은 밥풀을 닦아주는 것과 다르지 않다.

사과 여섯 개를 골라 봉투에 담으며 생각했다. 25년 동안 만들어 온 그 복잡한 소프트웨어가, 알고 보면 사과 고르는 마음에서 시작된 거라고.

세상에서 가장 오래된 알고리즘은 아마 코드가 아닐 것이다. 좋은 것을 알아보려는 사람의 눈과 손끝 — 그것이 첫 번째 알고리즘이었을 것이다.

오늘도 퇴근길, 마트 과일 코너 앞에서 나는 알고리즘을 실행 중이다.