본문 바로가기
Study/내가 정리하는 개념들

크롤러란?

by 오늘만 사는 여자 2022. 6. 22.
728x90
반응형

우리는 무언가 만들거나 배우기 전에 만들려는 대상, 배우는 대상이 무엇인지 알아야 합니다. 인터넷에 크롤러를 검색하여 이미지 결과를 보면 거미와 거미줄을 볼 수 있습니다. 이 그림이 크롤러와 연관된 것입니다. 또한, 검색 결과 중 수영 영법 중 하나인 크롤, 지렁이의 의미를 가진 나이트 크롤러NightCrawler를 볼 수 있습니다.

 

[그림 1-1] 크롤러 비유

 

거미, 지렁이, 수영은 거미줄, 물, 땅이라는 공간에서 자유롭게 움직이는 객체입니다. 크롤러는 www World Wide Web : 3W인 인터넷 속을 자유롭게 다니는 프로그램을 의미합니다. 조금 더 구체적으로 설명하면 자유롭게가 아닌 알고리즘에 의해 움직이며 데이터를 수집하는 프로그램입니다.


크롤러를 부르는 다양한 표현
크롤러는 알고리즘에 의해 인터넷을 탐색하는 프로그램입니다. 이러한 크롤러를 다양한 방식으로 표현할 수 있습니다.

 

[그림 1-2] 크롤러의 다양한 표현 방식

 

[그림 1 -2]처럼 크롤러는 스크래퍼, 봇, 스파이더, 지능 에이전트라고도 부릅니다. 이중에서 가장 많이 사용되는 용어는 크롤러와 스크래퍼입니다. 크롤러가 동작하는 것을 크롤링, 스크래퍼가 동작하는 것을 스크래핑이라고 부릅니다.


페이지를 돌아다니는 행위는 크롤링, 특정 페이지의 데이터를 수집하는 행위는 스크래핑으로 의미는 약간 다릅니다. 하지만 이 둘을 합쳐 통상적으로 크롤러가 크롤링한다고 표현합니다. 이러한 크롤러를 가장 잘 구현한 서비스는 모두가 잘 알고 있는 검색 엔진이 대표적입니다. 검색 엔진은 크롤러를 통해 다양한 페이지를 수집 후 검색 키워드에 맞추어 사용자에게 제공해 주는 서비스입니다.

 


크롤러를 만들기 위해 필요한 지식

크롤러는 인터넷을 돌아다니며 데이터를 수집하는 프로그램입니다. 인터넷을 돌아다니기 때문에 인터넷이 무엇인지 알아야 합니다. 즉, 인터넷의 기본 개념인 클라이언트와 서버를 알아야 합니다. 우리는 웹 브라우저로 인터넷을 사용합니다. 그러므로 웹 브라우저의 작동 방식을 알아야 합니다.


물론 이들을 몰라도 크롤러를 만들 수 있는 페이지가 많습니다. 하지만 이러한 동작 방식, 개념을 정확하게 알지 못한다면 우리는 제대로 된 크롤러를 만들 수 없습니다.

크롤러를 만드는 데 다양한 개념이 필요한 이유는 크롤러가 웹에 대해 상당히 의존적이기 때문입니다. 크롤러라는 것은 우리가 수집하고자 하는 사이트에 따라 만드는 방식이 달라집니다. 그러므로 기본 개념을 잘 잡고 크롤러를 만드는 것이 중요합니다.

 

[그림 1-3] 서버와 클라이언트

 

클라이언트
크롤러를 만들기 위해 필요한 지식 중 첫 번째는 클라이언트에 대한 개념입니다. 여기서 클라이언트란 웹 브라우저 및 웹을 의미합니다. 우리는 스마트폰을 쓰며 다양한 앱을 실행하고, 컴퓨터를 사용하면서 프로그램을 실행합니다. 우리가 사용하고 있는 각종 앱, 프로그램, 웹 브라우저를 클라이언트 프로그램이라고 합니다.


서버
크롤러를 만드는 데 필요한 지식 중 두 번째는 서버입니다. 클라이언트를 제외하고 보이지 않는 곳에서 클라이언트의 처리를 도와주는 것을 서버라고 부릅니다.


서버 없이 클라이언트가 존재할 수 없기 때문에 서버의 개념을 알고 가는 것이 중요합니다. 특히 웹은 서버 없이는 절대 동작할 수 없습니다. 우리가 주소를 치고 사이트에 접속하는 행위가 서버에 접속하는 것입니다.


서버는 클라이언트가 필요한 데이터를 제공해주는 역할을 합니다. 크롤러를 만들 때 서버의 개념이 꼭 필요한 것은 아닙니다. 하지만 복잡한 사이트의 경우 서버의 개념 없이 크롤러를 만드는 것은 불가능합니다.


언어(파이썬)
크롤러를 만들기 위해 필요한 지식 중 세 번째는 프로그래밍 언어입니다.

 

[그림 1-4] 파이썬

 

다양한 언어로 크롤러를 만들 수 있지만, 이 책에서는 파이썬을 사용하고 있습니다. 다른 언어보다 진입 장벽이 낮아 입문자도 쉽게 익힐 수 있는 장점이 있습니다.

 

파이썬은 다른 언어보다 데이터를 처리하는 데 매우 특화되어 있습니다. 파이썬이 인공지능, 데이터 처리에 관련된 다양한 라이브러리와 프레임워크를 제공하고 있기 때문입니다. 라이브러리와 프레임워크에 대해서는 차차 설명하겠습니다.

 

 

출처 : https://post.naver.com/viewer/postView.nhn?volumeNo=12369666&memberNo=15488377

 

728x90
반응형

'Study > 내가 정리하는 개념들' 카테고리의 다른 글

웹서버와 NginX  (0) 2022.06.22
[Terms] BoilerPlate  (0) 2022.06.22
배스천 호스트 (Bastion Host)  (0) 2022.06.22
핫픽스 hotfix  (0) 2022.06.21
맥에서 homebrew 설치  (0) 2022.06.21

댓글