생능출판사
[컴퓨터과학] 넷플릭스!! 알고리즘이 당신에게 이것을 추천합니다 본문
★이 글은 《처음 떠나는 컴퓨터과학 산책》을 발췌하여 작성되었습니다.
넷플릭스를 이용하는 많은 사람은 끊임없이 추천되는 자신의 취향을 저격하는 영상들에 몇 시간 넘게 푹 빠져버린 경험이 있을 것이다. 넷플릭스는 어떻게 각각의 취향을 파악해 콘텐츠를 추천해줄 수 있을까?
그것은 바로 알고리즘 덕분!
독일의 과학 저널리스트 크리스토프 드뢰서는 책 『알고리즘이 당신에게 이것을 추천합니다』를 통해 넷플릭스의 추천 서비스가 모두 알고리즘 덕분이라고 말한다. - 출처 : 테크월드뉴스(http://www.epnc.co.kr)
알고리즘이란 무엇인가요?
이번 장에서는 문제 해결을 위해 컴퓨터에 일을 시키는 자동화에 꼭 필요한 단계인 알고리즘에 대해서 알아보겠습니다.
최근에 소프트웨어 교육이 강화되면서 가장 많이 들리는 단어가 '알고리즘'인 것 같습니다. 알고리즘을 쉽게 설명하면 '일을 처리하는 순서를 표현한 것'이라고 볼 수 있습니다. '위키백과'에 나온 알고리즘의 정의를 먼저 살펴볼까요?
컴퓨터과학에서는 어떤 작업을 수행하기 위해 컴퓨터에 내리는 명령을 순서대로 나열한 것을 알고리즘이라고 생각하면 됩니다. 앞선 장에서 계속 공부한 내용은 컴퓨터가 자동으로 일하도록 명령을 잘 내려야 한다는 것이었습니다. 바로 그 명령을 잘 내리기 위한 가장 중요한 단계가 명령을 논리적인 순서대로 작성하는 것이고, 이것을 '알고리즘'이라고 합니다.
일반적으로 알고리즘(algorithm)이라는 단어는 '알 콰리즈미(Al-Khwarizmi)'라는 중세 시대의 아라비아 수학자의 이름에서 유래되었다고 알려져 있습니다. 알 콰리즈미는 수학자, 지리학자, 천문학자로도 유명했으며, 수학의 2차 방정식의 해법을 연구하였습니다.
어떤 작업을 수행하도록 명령을 순서대로 나열한 것이 알고리즘이라면, 여러분은 어떤 알고리즘이 떠오르나요? 주위를 둘러보면 일상생활 곳곳에서 알고리즘의 사례를 볼 수 있습니다. 예를 들면, 라면 끓이기 조리법, 도서 대출 순서, 화재 발생 대피 요령 등도 알고리즘이라고 할 수 있습니다.
하지만 이런 알고리즘은 컴퓨터에 의해서 자동화되지 않습니다. 이 책에서 계속 고민하고 공부하는 내용은 ‘어떻게 하면 컴퓨터가 자동으로 계산하도록 일을 시켜서 문제를 해결할까’에 대한 과정입니다.
이제부터 여러분은 일상생활의 알고리즘에서 조금 더 나아가서 컴퓨터에 일을 시키기 위한 알고리즘으로 관점을 옮겨야 합니다.
‘튜링의 일화’를 살펴보면 어떤 관점인지 이해할 수 있을 겁니다. 튜링의 집에는 수학 문제를 풀지 못하는 가정부가 있었다고 합니다. 어느 날 튜링은 이 가정부에게 수학 문제풀이를 가르칠 수 없을까 생각하게 되었고, 풀이과정을 잘게 나누어 순서대로 따라 하게 하였더니 대학 수준의 문제를 풀더라는 일화입니다. 물론 개념을 이해해서 문제를 푼 것이 아니고 기계적으로 순서대로 계산과정을 수행한 것입니다. 이 일화를 통해서 알 수 있는 것은 알고리즘을 정확히 표현할 수 있으면 기존 지식이 없는 컴퓨터에도 문제를 풀게 할 수 있다는 것입니다. 여러분이 해결하고 싶은 문제가 있으면 아주 간단한 수준까지 잘게 쪼개어 그 과정을 순서대로 나열할 수 있으면 컴퓨터에 일을 시켜 해결할 수 있다는 것입니다.
1장에서 살펴본 것과 같이 튜링은 이런 아이디어를 발전시켜 ‘튜링 머신’을 제안하였고, 이런 모델이 바로 오늘날의 컴퓨터의 이론적인 기반이 되었습니다.
우리가 이 책에서 계속 확인해야 하는 것은 알고리즘으로 만든 것을 자동화하는 것인데, 알고리즘을 아주 간단한 수준으로 만들 수 있으면 컴퓨터로 자동화할 수 있게 됩니다. 예를 들어 학교에서 성적을 처리할 때 학생들의 성적을 입력하면 자동으로 평균과 등급을 계산하는 프로그램을 생각해 보면 쉽게 이해할 수 있습니다. 5장에서 살펴본 IPO 모델로 생각해 보면, 학생들의 정보와 성적이 입력으로 들어오고, 계산 ‘알고리즘’에 의해서 순서대로 계산해서 평균과 등급을 출력하게 됩니다.
이런 방식을 적용하면 여러분 주변에서 발생하는 문제들도 컴퓨터로 자동화해서 해결하도록 만들 수 있습니다.
이제 여러분은 세상의 문제를 알고리즘으로 표현하면 컴퓨터에 일을 시켜 해결할 수 있다는 사실을 알게 되었습니다.
《컴퓨터과학 산책》과 함께 알고리즘에 대해 공부해요 : )
[1] 넷플릭스!! 알고리즘이 당신에게 이것을 추천합니다
[2] 알고리즘의 표현 방법
[3] 알고리즘의 구조
'컴퓨터과학' 카테고리의 다른 글
[개발자의 3분 책소개] 처음 떠나는 컴퓨터과학 산책, 유튜브 영상 (0) | 2021.06.08 |
---|---|
[컴퓨터과학] 알고리즘의 구조 : 순차, 반복, 선택 (0) | 2021.05.26 |
[컴퓨터과학] 알고리즘의 표현 방법 : 순서도, 의사코드(슈도코드) (0) | 2021.05.24 |