
알고리즘이란 무엇일까?
요사이 AI 시대가 되면서 ‘알고리즘(Algorithm)’이라는 말을 자주 듣게 될 것이다. 알고리즘이란 컴퓨터가 따라 할 수 있도록 문제를 해결하는 절차나 방법을 자세히 설명하는 과정이다. 우리가 알고리즘이라고 하면 매우 어렵게 생각되겠지만 단순하게 음식의 ‘레시피(recipe, 조리법)’라고 생각하면 매우 간단할 것 같다. 이를 자세히 설명하면 컴퓨터를 활용한 문제 해결 과정에서 주어진 문제를 해결하는 일련의 방법 또는 절차이며, 문제해결 방법을 순서대로, 절차대로 나열한 것이라고 볼 수 있다.
#. 라면을 끓일 때
가장 쉽게 알고리즘에 대해 설명하려면 우리가 일상생활에서 가장 쉽게 조리해 먹고 있는 ‘라면’을 생각하면 될 것이다. 라면 봉지에는 반드시 ‘조리법’이 나와 있다. 조리법 대로 라면을 끓이면 아주 간단하지만 ‘조리법’을 모르고 설명조차 되지 않는 상태에서 라면을 건네 받으면 그냥 과자에 스프를 뿌려 먹을 수도 있을 것이다. 일반적인 라면의 경우 조리법은 ▲냄비에 물 550ml를 넣는다 ▲불을 켜고 물을 끓인다 ▲물이 끓으면 면과 스프를 넣는다 ▲4분간 더 끓인 후 그릇에 담는다의 순서대로 하면 된다. 따라서 우리는 매일 일상생활 속에서 알고리즘을 접하게 된다. 즉 ‘일의 순서’라고 할 수 있기 때문이다. 물론 이 대목에서 순서가 바뀔 수 있지 않은가에 대한 질문을 할지 모르겠다. 그러나 일반적인 순서가 그렇다는 것이다.
#. 우리가 꼭 알아야 할 '알고리즘' 이야기
우선 시니어들 조차 이해 하기 쉽게 ‘알고리즘’을 설명하려고 한다. 최근 자녀나 손주들과 대화하다 보면 '알고리즘'이라는 단어를 심심치 않게 듣게 될 것이다. 물론 알고리즘을 모르고도 사는 데 지장은 없다. 하지만 "유튜브 알고리즘이 나를 이 영상으로 이끌었어", "알고리즘 때문에 쇼핑 광고가 자꾸 뜨네" 같은 말들을 듣다 보면 궁금증이 생길 것이다. 스마트폰을 조작하는 방법을 익히기에도 버거운데 AI까지 알아야 하니 고충이 이만 저만이 아닐 터. 도대체 '알고리즘'이 무엇이길래 우리 생활 깊숙이 들어와 있는 것인가? 더 쉽게 설명하자면 앞서 이야기한 라면 끓이는 방법이 순서를 따르는 것처럼 컴퓨터에게 이 문제를 해결하기 위해 1번부터 4번까지 순서대로 일하라고 명령하는 것이 바로 알고리즘이다.
#. 알고리즘은 내 마음을 읽는 요술쟁이?
시니어분들에게 가장 많이 듣는 말이 유투브를 켜면 내가 평소에 좋아하던 가수의 노래나 즐겨보던 영상이 제일 먼저 뜨더라는 이야기일 것이다. 우리는 이러한 현상을 ‘추천 알고리즘’이라고 말 할 수 있다. 어쩌면 우리 인간들보다 더 마음을 잘 읽어 낸다. 컴퓨터는 우리가 어떤 영상을 끝까지 봤는지, 어떤 사진에 '좋아요'를 눌렀는지를 조용히 관찰한다. 그리고 그 데이터를 바탕으로 "이 사람은 심수봉의 노래를 좋아하니 이 영상을 보여 주면 기뻐하겠군" 하고 판단하여 우리 앞에 가져다 놓는 것이다. 따라서 알고리즘은 단순한 부분에만 적용되는 것이 아니다. 우리가 매일 사용하는 생활 서비스 곳곳에 적용되고 있다. 가장 활발하게 우리가 접할 수 있는 영역은 길 찾기와 스팸 차단, 검색 엔진 등을 예로 들 수 있을 것이다.
#. 알고리즘을 어떻게 표현할까?
알고리즘을 ‘자연어 알고리즘(일상 언어 표현법)’이라고 표현 하기도 한다. 이건 대한민국 교과서에 등장하는 용어이기도 하다. 자연어 알고리즘을 쉽게 표현하면 자연어 표현법, 일상 언어 표현법이라고도 한다. 더 쉽게 이야기 하자면 우리가 평소에 쓰는 말투나 용어를 그대로 순서대로 나열한다는 뜻이다. 자연어는 일상적인 언어를 사용하기 때문에 매우 쉽게 표현할 수 있지만 모호하게 표현될 수 있다는 단점이 있다. 하지만 우리는 여러 일상생활 속에서 알고리즘 ‘순서도(Flowchart)’를 만들어 볼 수 있다. 순서도는 약속된 기호를 사용하여 알고리즘을 표현하는 방법이다. 순서도 표현 방식에서는 일련의 수행과정을 공용의 약속 기호로 표시하고, 화살표로 수행 과정을 순서대로 연결하여 알고리즘을 표현한다.
#. 알고리즘의 원리
우리가 머릿속으로 '라면을 끓여야지'라고 생각하면, 컴퓨터 세계에서는 이를 표준화된 도형 기호로 먼저 그린다. 이것을 순서도라고 부른다. 이걸 다시 풀어서 3단계로 쉽게 설명하면 ▲타원형 (시작/종료): "자, 이제 시작한다!" ▲직사각형 (처리): "물을 붓는다", "면을 넣는다" 같은 구체적인 행동 ▲마름모 (판단): "물이 끓는가?" (예/아니오에 따라 길이 갈라짐) 로 세분화 할 수 있다. 생각의 흐름을 ‘약속된 기호’로 만드는 것이다. 그 다음으로는 논리를 ‘수식(수학적 기호와)’으로 바꾸는 것이다. 알고리즘의 핵심은 결국 숫자로 계산하는 것이다. 예를 들어 ‘가장 빠른 길’을 찾아내는 내비게이션 알고리즘은 복잡한 도로 상황을 전부 숫자와 기호로 바꿔주게 된다. 이것을 다시 최종적으로 ‘코드’, 즉 프로그래밍 언어로 변환시키게 되는 것이다.
#. AI도 실수 할 수 있다!
결론적으로 알고리즘은 "인간의 복잡한 생각 → 논리적 순서 → 수학적 수식 → 컴퓨터 기호(코드)"로 변하는 일종의 통번역 과정이라고 보면 된다. 따라서 알고리즘에 끌려 다니는 것이 아니라, 알고리즘을 부리는 '지혜로운 인간'이 되는 것이 디지털 시대를 즐겁게 사는 비결이다. 오늘 저녁, 유튜브가 추천해 주는 영상 하나에 "내 마음을 잘 읽어줬네" 하고 가볍게 웃어 보시는 건 어떨까? 알고리즘은 결국 우리를 돕기 위해 만들어진 친절한 비서이기 때문이다. 마지막으로 모든 AI에는 경고 문구가 있다는 사실을 상기해야 한다. “AI도 실수 할 수 있다”고. AI도 ‘실수’할 수 있다. AI는 모르는 질문을 받았을 때 "모릅니다"라고 하기보다, 자기가 가진 데이터를 조합해 그럴싸한 거짓말을 지어낼 때가 있다. AI는 사람이 만든 데이터를 학습합니다. 만약 학습 데이터에 편견이나 오류가 섞여 있다면, AI도 그대로 그 편견을 배운다. 스승이 틀리니 제자도 틀리는 것이다. 그래서 '사람의 눈'이 꼭 필요하다. 중요한 건강 정보, 금융 정보, 역사적 사실 등을 다룰 때는 AI의 말을 참고용으로만 쓰고, 실제 전문가나 정확한 문헌을 통해 교차 검증(Cross-check)하는 습관이 디지털 시대의 필수 덕목인 것이다.
이훈구 기자