![](https://images.dongascience.com/uploads/article/Contents/201607/C201614N019_1.jpg)
컴퓨터에는 많은 양의 정보, 즉 ‘데이터’가 저장돼 있어요. 데이터가 많다 보니 간혹 원하는 데이터를 바로 찾기 어려울 때가 있어요. 그럴 땐 검색창을 띄우고 이름 하나만 쓰면 그 데이터가 포함된 공간이 어디인지 바로 나오지요. 이 과정에서 사용되는 것이 바로 ‘검색 알고리즘’이랍니다.
검색 알고리즘은 찾고자 하는 데이터가 어디 있는지 밝히는 알고리즘이에요. 컴퓨터나 스마트폰 등의 데이터 검색부터 ‘알파고’ 같은 인공지능의 학습에까지 두루두루 쓰이고 있지요.
다양한 검색 알고리즘의 기본이 되는 건 ‘순차 검색’과 ‘이진 검색’이에요. 순차 검색은 처음부터 끝까지 차례로 찾는 방법이에요. 예를 들어 1부터 10까지 숫자 중에서 8을 찾는다고 해요. 그럼 1부터 하나씩 세어가는 거지요. 데이터의 수가 많을수록 시간이 오래 걸리지만, 코드를 짜기 쉽고 정렬되지 않은 데이터에도 쓸 수 있다는 장점이 있어요.
이진 검색은 일단 정렬이 끝난 데이터 중간에 기준이 되는 값을 정하고, 이 기준과 원하는 값을 비교해가는 방식이에요. 1부터 10까지 숫자 중 8을 찾는다고 하면, 일단 5를 기준으로 정해요. 5는 8보다 작죠? 이 경우 5를 최저값으로 바꾸고, 5부터 10 사이에 있는 7을 새로운 기준값으로 둬요. 이런 식으로 훑어봐야 할 데이터의 수를 줄여가면서 검색하기 때문에 순차 검색보다 빠른 시간에 검색을 끝낼 수 있답니다. 하지만 정렬되지 않은 데이터들에는 사용할 수 없다는 단점이 있지요.
그래서 검색 알고리즘은 대부분 정렬 알고리즘과 함께 사용돼요. 데이터들을 순서대로 정렬하지 않으면 내가 원하는 값이 어디 있는지 찾기 어렵기 때문이랍니다.
![](https://images.dongascience.com/uploads/article/Contents/201607/C201614N019_2.jpg)
![](https://images.dongascience.com/uploads/article/Contents/201607/C201614N019_3.jpg)
대형 포털이나 사이트에서 검색어로 정보를 찾을 때에도 검색 알고리즘이 쓰여요. 검색 대상인 사이트 내 데이터나 전세계의 웹 사이트에서 사용자가 입력한 단어와 비슷한 단어가 포함된 구간이 있는지 재빨리 훑는 방식이지요. 그리고 비슷한 단어가 발견되면 앞, 뒤의 일정한 부분까지 보이게 해서 검색 결과로 표시해 줘요. 이때 어느 정보를 우선적으로 찾고 표시하는지는 사이트별로 조금씩 다르답니다.
예를 들어 ‘구글 검색’은 ‘페이지 랭크(PageRank)’라는 알고리즘을 사용해요. ‘중요한 웹 사이트는 다른 웹사이트와 많이 연결 돼 있다’는 원칙에 따라, 사람들이 많이 클릭하거나 오래 머무르는 웹사이트에 높은 순위를 매기는 방식이지요. 순위가 높을수록 검색 결과의 상위에 표시돼, 유용한 정보를 더 빨리 찾을 수 있게 한답니다.
반면 우리나라 포털 사이트에서는 ‘지식in’ 등의 문답 서비스나 블로그, 카페의 글을 검색 결과에 우선적으로 보여 줘요. 또 블로그 방문자 수나 방문자가 머무는 시간, 좋은 반응을 얻은 덧글을 검색 우선순위에 반영하지요. 사람들이 정보를 찾는 동안 포털 내에 계속 머물도록 하기 위해서랍니다.
![](https://images.dongascience.com/uploads/article/Contents/201607/C201614N019_4.jpg)