목록전체 글 (115)
IT is Smart
JSON 파일은 인터넷에서 데이터를 주고 받는 표준으로 많이 사용되는 파일 포맷입니다.보안을 위해 방화벽으로 대부분의 서비스 Port가 차단되다보니 그나마 방화벽 외부와 내부를 통행할 수 있도록 오픈해준 http프로토콜을 통해 데이터를 주고 받는 방법으로 고안됐다고 봐도 무방합니다. 테스트용이나 파일럿 작업을 위해 가끔 Json 파일을 직접 만들어야 하는 경우가 있는데 계층이 있는 데이터의 경우는 제대로 작성되었는지 눈으로 확인하는 것이 쉽지 않은 경우가 많습니다. 이때 유용한 도구가 바로 JSON Formatter입니다. 요즘은 웬만한 도구는 웹버전으로 구현이 다 되다 보니 이 툴도 웹버전입니다. 눈으로 오류를 찾는다고 한참 헤매다 이 툴을 사용하고는 몇번의 조정만으로 오류를 해결했습니다.참조하시기 바..
필요한 정보를 수집하기 위해 크롤링 작업을 수행하다보면 어떤 주소는 웹브라우저에 직접 입력하면 페이지를 확인할 수 있는데 크롤러를 돌리면 HTTP 403 Forbidden 에러를 띄우고 크롤링이 되지 않는 경우를 만날 수 있습니다. 이는 각 사이트마다 비정상적인 접근을 차단하기 위한 조치 때문에 발생하는 현상입니다. 정상적으로 웹브라우저를 통해 접근하면 우리쪽에서 상대방 사이트서버로 HTTP Request메시지를 보내게 되는데 이때 우리쪽의 작업환경에 대한 정보를 보내줍니다. 사이트에서는 이 정보를 이용해서 접속자들의 OS, 브라우저1 종류나 버전 등을 파악해서 대응하게 되는 거죠. 근데 python과 같은 도구를 사용해서 사이트에 접속하게 되는 경우 브라우저를 통해 접속하는 경우와 다른 HTTP Req..
저는 Toad for MySQL 7.9버전을 사용하고 있습니다. Toad는 데이터베이스에서 수행할 작업을 만들고 확인하는데 매우 유용한 툴입니다. 특히 MySQL버전은 Freeware이기 때문에 선택을 했습니다.물론 Toad for MySQL이 Toad for Oracle만큼 훌륭한 것은 아닙니다. 무료버전으로 쓰기에 나쁘지 않다는 말이죠. 하지만 무료버전임에는 툴을 바뀌야 하나를 심각하게 고민하게 만드는 결함이 있습니다.Toad에서 작성한 SQL을 저장했다가 다시 Open할 때 Toad 자체가 hang이 걸려버려서 Open을 할 수가 없다는 것입니다. 다른 Editor툴에서 sql파일을 열어서 필요한 내용을 복사해야 하는 겁니다. 단순하지만 매우 빈번히 사용하는 기능이 제대로 작동하지 않는다는 것은 치..
https://en.wikipedia.org/wiki/List_of_HTTP_header_fields 클로링할 때 헤더정보를 확인해야 하는 경우가 있어서 우선 참조로 링크 게시합니다.이후에 세부적으로 확인 필요한 항목을 추가로 편집하겠습니다.
요즘은 다국어를 처리해야 하는 상황이 매우 일반적입니다. 여러 나라의 문자를 저장할 수 있도록 UTF-8 character set이 대부분 지원이 되는데 UTF-8모드에서도 에러가 발생하는 경우를 발견하여 조치방법을 정리해둡니다.저의 경우 중국어 기사를 크롤링해서 database에 저장하는 프로그래밍을 하고 있는데 대부분의 기사들이 정상적으로 저장되는데 일부 기사가 에러로 떨어지는 경우가 있었습니다. 아래와 같은 에러메시지입니다. (1366, "Incorrect string value: '\\xF0\\x9F\\x98\\x82' for column 'article' at row 1") 먼저 해당 에러를 일으킨 기사 내용을 뽑아 봤습니다. wuli艺术家崔塔塔ins更新照片一张,这个照片原型是电影老无所依里的杀手安..
파이썬 Class 구현하기 다시 보기 이번에는 Class를 초기화하는 좀더 고급진 방법을 알아보겠습니다. class Enemy: def __init__(self, x): self.energy = x def get_energy(self): print(self.energy) jason = Enemy(5) sandy = Enemy(18) jason.get_energy() sandy.get_energy() Class를 선언할 때 변수를 선언하고 변수값을 지정하는 것으로 초기화하는 방법과 함께 __init__() 메소드를 선언해서 사용하는 방법이 있습니다. __init__() 메소드는 별도로 호출을 하지 않아도 Class의 Instance가 생성이 되는 순간 자동으로 실행됩니다. 해당 Instance를 초기화하기..