티스토리 뷰
센트리를 보다가 발견한 오류. 무료버전을 쓰고 있어서 월 5,000건이 전부인데, 주말이 지나고 오니 한 오류에서만 3,700건을 수집해버렸다...! 용량이 있었는데, 없었습니다.
이 오류의 특이사항은 모두 Yeti에서 수집되고 있다는 점-! Yeti를 처음 들어본 나는 내 친구 예지를 생각하고 말았다.. 하여 알아보는
Yeti란 무엇인가.
Yeti를 알려면 먼저 웹문서에 대하여 정리하는 것이 필요하다.
웹문서란
웹문서란 어려울 것 없이 웹 상에 존재하는 웹 페이지들을 의미한다. (페이지 = 문서) 우리가 검색했을 때, 포털 사이트들에서 보여주는 검색 결과가 웹문서들이라고 생각하면 된다.
이 중 포털사이트 NAVER는 로봇 프로그램이 인터넷을 자동으로 돌아다니며, 국내외 넓은 웹상에 뿌려진 웹문서들을 수집하고 다닌다. 이 때, 수집하고 다니는 로봇 프로그램 이름이 Yeti이다.
참고로 Yeti는 히말라야에서 살고있다는 전설의 설인 이름이다.
Mozilla/5.0 (compatible; Yeti...) 와 같은 형태의 User-agent로 NAVER 검색 로봇을 식별할 수 있으며, robots.txt에 따르는 국제적인 검색 규약을 따르고 있다.
참고로 구글봇의 이름은 Googlebot이며, 다음봇의 이름은 DAUMOA이다.
User-agent
(언제 이름을 바꾸었는지 모르겠지만) 네이버 크롤러인 Yeti는 웹을 돌아다니며, 여러 웹문서의 각종 정보를 수집한다. 웹을 돌아다닌다/크롤링 한다의 의미는 한 페이지를 방문하여 정보를 수집하고, 해당 페이지에 포함된 다른 페이지의 링크를 따라 이동하여 정보를 수집하며 무한 반복함을 뜻한다.
이를 무작위로 나쁘게 사용하는 사례도 있긴 하지만 보통의 정상적인 웹크롤러는 투명하게(?) 정보를 수집하게 되는데, 이 때 자신을 증명하는 것이 User-agent이다.
하여 이번 센트리에서도 User-agent에 Yeti라고 적어두었기 때문에 알 수 있었다.
robots.txt
robot.txt는 Yeti와 같은 검색 로봇에게 웹문서를 수집할 수 있도록 허용 혹은 수집하지 못 하도록 제한하는 국제 권고안이다. 따라서 robot.txt에서 제안하는 규칙을 지켜 수집을 해야한다.
robots.txt 파일은 국제 권고안에 따라 텍스트 파일로 작성하여 루트 디렉토리에 위치시켜야한다. 만약 루트 디렉토리에 해당 파일이 없다면 검색 로봇은 모든 콘텐츠를 수집한다고 인지하게 된다.
robots.txt 파일에 작성된 규칙은 같은 호스트, 프로토콜, 포트번호 하위에 대하여만 유효함을 주의하여야 한다. 예를 들어 http://www.example.com/robots.txt의 내용은 http://example.com/ 와 https://example.com/에서는 불가하다는 의미이다.
파일에 작성되어야 할 대표적인 규칙은 다음과 같다
- Yeti에서만 수집을 허용할 때,
User-agent: *
Disallow: /
User-agent: Yeti
Allow: /
- 모든 검색 로봇에 대하여 수집을 허용할 때,
User-agent: *
Allow: /
- 루트 페이지에 대해서만 수집을 허용할 때,
User-agent: *
Disallow: /
Allow: /$
- 일부 페이지에 대하여 수집을 허용하지 않을 때,
User-agent: Yeti
Disallow: /private*/
- 모든 검색 로봇에 대하여 수집을 허용하지 않을 때,
User-agent: *
Disallow: /
검색 로봇의 IP는 변경될 수 있기 때문에 허용 혹은 제한을 하기 위해서는 IP 차단 보다는 상단의 방법을 이용하는 것이 좋다.
참고로 간혹 일부 사이트에서 JS/CSS 파일 등을 robots.txt 규칙 내에서 수집이 비허용 될 때가 있으니 해당 파일에 대하여도 수집을 허용하는 것이 좋다. (웹 페이지의 원활한 해석을 위함)
'TIL:Today I Learn > etc' 카테고리의 다른 글
npm 전역 설치 시, 권한 거부 해결방법 2 (0) | 2022.05.31 |
---|---|
npm 전역 설치 시, 권한 거부 해결방법 1 (0) | 2022.05.27 |
프론트엔드 네이버 api 연결하기 - 예시 검색 api (쇼핑,영화) (0) | 2022.05.15 |
ARIA를 통한 웹접근성 최적화 (0) | 2022.05.10 |
firebase timestamp, 파이어 베이스 타임스탬프 변환 (0) | 2022.04.03 |
- Total
- Today
- Yesterday
- 깃명령어
- npm
- 리액트상태관리
- vue
- 모바일사파리
- 센트리
- 김민태
- 크롬
- react
- 프론트엔드
- TIL
- 깃
- 자바스크립트
- 리코일
- 센트리모니터링
- js
- javascript
- 리액트
- 리액트훅
- CSS
- js테스트
- storybookUI
- BFCache
- 사파리
- gitRebase
- Git
- reacthook
- 프론트앤드
- frontend
- sentry
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |