알고리즘 영어로는 Algorithms(알고리즘) 전공자이든 비전공자이든 바이든이든 이건 누구나 다 들어 봤을 표현이다.
그러면 이게 정확히 무엇인지 아는 사람들이 있을까? 솔직히 많다.
그래도 사전적 정의는 '주어진 문제를 논리적으로 해결하기 위해 절차나 방법을 묵어 놓은 것'이다.
구글 Youtube 알고리즘을 예로 들어서 설명해보자
대표적인 Youtube 알고리즘의 문제는 '사용자에게 어떤 영상을 추천하는가?' 로 시작된다.
그럼, 이 문제를 논리적으로 해결하기 위한 절차나 방법을 생각해 보자.
먼저 흔히 생각해 낼 방법은 아래와 같다.
1. 사용자의 시청 기록 확인하기
2. 사용자의 검색 기록 확인하기
3. 사용자에게 직접 물어보기
그럼 위의 방법들을 좀 더 자세하게 절차와 함께 생각해보자.
1. 사용자의 시청 기록
a. 영상마다 태그를 걸어서 사용자가 어떤 태그를 가장 많이 보는지 확인하자.
2. 사용자의 검색 기록
a. 검색된 내용을 기반으로 어떤 태그가 가장 많이 검색됐는지 확인하자.
3. 사용자에게 직접 물어보기
a. 영상 시청 후 사용자에게 영상 만족도를 물어봐 만족도가 높았던 영상의 태그를 확인하자.
위와 같이 문제를 생각하고 그 문제를 해결하는 방법과 그 방법을 순서대로 배열하면 그게 알고리즘이다.
물론 이런 알고리즘을 어떻게 디자인해야 할지 그리고 알고리즘이 작동하는지 안 하는지에 대한 평가 방식은 방대하다.
그리고 구체적으로 내려가면 한도 끝도 없이 내려가는게 알고리즘이다!
또한 알고리즘이 해결할수 있는 문제의 종류와 그러한 종류를 해결할수 있는 알고리즘도 다양하다.
그래서 이 블로그에서는 매주 새로운 알고리즘에 대한 설명과 해당 알고리즘이 어떤 문제에 적용할 수 있는지에 대해 설명하며 진행될 것이다.
잘부탁드리겠습니다 :)