본문 바로가기

[PCMC의 기록]

(84)
네트워크와 관련된 넓고 얕은 지식 (ICMP편) 찾고 싶은 내용이 있으시면 Ctrl + F로 찾아보시는 것을 추천해요. 혹여나 틀린 내용이 있다면, 댓글이나 이메일로 알려주시면 감사하겠습니다. ICMP Ineternet Control Mesaage Protocol 이라고 한단다. 오류 보고 프로토콜이라고 할 수 있는 ICMP는 라우터 - 라우터 혹은 라우터 - 호스트간 주고 받는다. 물론 ICMP 를 이용한 Ping 프로그램으로 호스트 간에도 사용하지만, 개인적으로는 오류 보고라는 관점에서 봤을 때 조금 다른 이야기라고 생각된다. ICMP Header ICMP header는 요렇게 생겼는데, 이 header는 별도로 IP header 대신에 들어간다거나 하는 것이 아니라, IP 패킷의 Payload로 들어간다. 이런 식으로 IP 헤더로 감싸져서 ICM..
네트워크와 관련된 넓고 얕은 지식 (IP 프로토콜 편) 찾고 싶은 내용이 있으시면 Ctrl + F로 찾아보시는 것을 추천해요. 혹여나 틀린 내용이 있다면, 댓글이나 이메일로 알려주시면 감사하겠습니다. IP 프로토콜 IP 프로토콜은 OSI 7 Layer에서 3계층에 존재하는 프로토콜로 사실상 유일한 3계층의 프로토콜이다. IP 프로토콜의 철학..? 은 바로 Best Effort Service 이다. 뭔가 사람에게서나 나올법한 이야기같지만, 말그대로 IP 프로토콜은 자신이 구현된 설계대로 목표를 온전히 "수행"함에 초점을 둔다는 의미인 것 같다. IP 프로토콜이 다루는 패킷은 상대 호스트에게 온전히 도착한다는 보장이 없다. 다만 IP 정보를 이용해서 보내면 되는 것. 그게 IP 프로토콜의 사명인가보다. (물론 상위 레이어에서 이를 보장해줄 수 있다.) Best ..
네트워크와 관련된 넓고 얕은 지식 (ARP 편) 찾고싶은 내용이 있으시면 Ctrl+F로 찾아보시는 걸 추천해요. 틀린 내용이 있다면 알려주시면 감사해요. Data Link Layer 한 호스트에서 다른 호스트로 데이터를 보내는 것이 목표. 물리계층에서 올라오거나 상위 레이어에서 내려온 패킷을 raw bit로 풀어주거나 frame으로 묶어준다. Ethernet 원래는 Ethernet은 회선을 통해서 어떻게 데이터를 주고 받을지에 대한 방법 중 하나로 다양한 기술들 중 하나이다. 토큰링, FFDI 등 다른 기술들도 있으나 현재로서는 Ethernet이 사실상 표준이라고 해도 무방할 만큼 점유율이 커서 Data Link layer를 Ethernet 계층이라고 부르는 사람도 있다. Ethernet에서는 MAC Address를 보고 데이터를 보낸다. MAC Ad..
네트워크와 관련된 넓고 얕은 지식 (IP 편) 찾고 싶은 내용이 있으시면 Ctrl + F로 찾아보시는 것을 추천해요. 혹여나 틀린 내용이 있다면, 댓글이나 이메일로 알려주시면 감사하겠습니다. 모바일컴퓨팅 오늘 포스팅할 내용은 대학에서 강의 중인 내용이다. 요새 시험기간이라 별도로 포스팅하기도 어렵고 해서, 겸사겸사 강의 내용을 리마인드할 겸 포스팅하기로 했다. 일단 강의는 "모바일컴퓨팅" 이라는 강의인데, 네트워크 레이어를 훑어가며 프로토콜 하나하나 작동 원리와 취약점, 연관된 내용 등 다양하게 배우고 있다. 3학년때 배웠던 컴퓨터네트워크의 연장선이자 조금 심화된 내용을 강의하시는 것이 목적인 듯 하다. 아무래도 같은 분야 (네트워크)에 대한 강의를 다른 교수님 께서 하시다보니 학생들의 적극적인 건의가 없다면 중복되는 내용이 있는 것은 불가피하다고 ..
Crawler (Bot) Detection Avoid / 크롤러 탐지 우회 + 2021-04-08 수정 지금은 당시 글 썼을 때와 좀 생각이 달라졌습니다.. 😅 당시에는 개인 서버라고는 운영해본 적도 없는 대학생이어서 크롤링이 안되면 되게 하는 방법으로 고민했는데, 하지말라는 것에는 다 이유가 있기 마련이네요.. 이제는 회사에서 서버를 담당하고 있는 입장에서 크롤링 시도들이 달갑게 느껴지지는 않기 때문에.. 차단을 우회하면서까지 하는 건 분명 문제가 있어보입니다. 당시에는 그런 고려조차 안했었네요. 글을 삭제하지는 않고 서두에 수정내용만 달아놓겠습니다 🙇‍♂️ 피드백주신 분 감사드립니다 🙇‍♂️ 긁어오기 처음 크롤러를 만들면서 생각한 건 오로지 성능이었다... 지난 포스팅들도 보면 그렇고 "Selenium은 상당히 느려서 어떻게하면 성능을 끌어올릴 수 있을까"가 초점이었는데, ..
천향루 / 마라롱샤 맛있는 마라롱샤안산 원곡동에있는 중국요리집(?)을 갔다. 종업원부터 주변 모든 길거리 간판, 사람들이 다 중국인이다. 다문화의 거리에 있는데.. 어쨌든 가서 마라롱샤와 양주볶음밥 (그냥 볶음밥인듯 하다) 을 먹었다. 우리나라 매콤함과는 또다른 알싸한 매콤함이 너모나 중독적이다. 또 갈 것 같다.
Bot Detection / 크롤러 차단 / 크롤러 우회 #4 (END) 지난번 포스팅은.. 지난번에 포스팅을 급하게 핸드폰으로 했더니 내용도 너무 적고 블로그에서 보니 폰트와 글씨 크기며.. 총체적 난국이었다. 뭐 간편하게 글을 쓸 수 있는 것은 좋긴 한데, 앞으로 핸드폰으로 글을 포스팅할 일은 거의 없지 않을까.. ActionChain 2 어쨌든 원래 크롤링 코드에 ActionChain을 적용해봤는데, 결과적으로는 잘 작동했다. 하지만, 시행착오는 언제나 존재하는 법. 그 삽질들을 조금 기록해보고자 티스토리를 열었다. 1. StaleElementReferenceException 이름부터 번지르르한 이 친구는 비교적 해결하기 쉬웠다. StaleElementReferenceException (이하 Stale) 은 Web Element에 접근할 때, DOM에 해당 Element..
Bot Detection / 크롤러 차단 / 크롤러 우회 #3 ActionChain 지난번에 분명 이어지는 포스팅에서는 header를 조작하는 내용에 대해서 다루겠다고 했는데... 원래 시작한 내용으로부터 너무 산으로 갈 것 같아서 안되겠다. 아예 차단 우회를 포기한 것은 아니고, 찾아보니 Webdriver에 ActionChain 이라는게 존재하는데 자세한 원리는 아직 파악 못했지만 사람이 마우스 등 으로 조작하듯이 특정 태그로 포커스나 마우스를 이동하고 클릭 등의 명령을 일종의 Chain형태로 수행할 수 있는 메소드 인듯 하다. ToDo 다만 내가 구현한 크롤러는 속도만 고려했기에 링크만 파싱해서 driver로 웹페이지를 탐색하는 방식인데, Actionchain을 사용하려면 어느정도 속도 저하는 감안하지만 사람과 유사하게 브라우징 한다는 점에서 차단을 우회할 수 ..