javascript 9

[JS] HTML에서 JS를 이용하여 IP 주소 얻기

1. HTML에서 Javascript만으로 IP 주소 얻기 HTML에서 IP주소를 확인하기 위한 방법으로 대부분 사람들이 Java script를 이용하려고 한다. 단도직입적으로 HTML내에서 Javascript만으로 IP 주소를 얻을 수 없다. 2. IP address를 구하는 방법 서버는 사용자의 요청(Request)을 받을 때 TCP 또는 UDP 헤더를 보고 IP 주소를 알 수 있다. 즉, IP 주소를 얻기 위해서는 서버단에서 처리를하여 값을 되돌려 주어야 한다. 따라서 할 수 있는 방법으로 1. 서버를 구현한다. 2. API를 사용한다. 두개로 좁힐 수 있다. (1) 서버를 구현하는 방법 많은 사람들이 사용하는 Node.js나 php를 이용한다면, 많은 소스코드가 인터넷 상에 존재한다. 애초에 이런..

[JS] IP를 이용한 Geolocation 정보 얻기 (위도, 경도)

IP 주소를 이용하여, Geolocation 정보를 얻을 수 있다. 여기서 Geolocation은 위도와 경도 (Latitude, Longitude)를 뜻한다. 여기서 얻어지는 위도와 경도값은 굉장히 부정확하다. 그 이유는 ISP(인터넷 공급자)가 제공한 데이터를 이용하기 때문이다. 따라서 현재 위치는 서울이지만 조회 결과가 경기도로 나타날 수도 있다. 이 1. IP 주소 얻기 현재 자신의 위치 정보를 얻는 방법은 [JS] HTML에서 JS를 이용하여 IP 주소 얻기를 참조하자. 2. Geolocation API 설명 여기서 사용할 API는 ip-api.com가 제공한다. 이 사이트는 별도의 회원가입이나, 키발급 없이 바로 조회를 할 수 있다. 다만 분당 150회의 제한이 있으니 확인하기 바란다. 또한 ..

[Node.js / Javascript] 초당 처리 횟수 제한을 위한 윈도우 함수

API 크롤링이나, 기타 데이터 수집을 위해서 함수 또는 특정 프로시저를 실행할 때 횟수제한에 걸리지 않도록 윈도우를 잡아서 처리하는 코드 다만, 이 코드는 setInterval을 사용하므로 CPU 소모량이 클 수 있다. 소스코드 function AWS(limit, secs){ this.list = []; this.limit = limit; this.window = secs*1000; this.push = function(a, b){ this.list.push([-1, a, b]); } this.pop = function(){ if(this.list.length==0) return "EMPTY"; var now = new Date().getTime(); var st = -1; for(var i = 0 ;..

[Node.js] Jade(pug) 템플릿 엔진 속도 문제

요약 : 1. Node.js에서 사용하는 Pug 템플릿 엔진 (Jade)를 이용하면 간단한 페이지도 로드되는데 굉장히 오래 걸린다. 2. 코드를 구성하기 나름이지만, 쿼리 + Pug 컴파일 + 변수 대입 + 요청 응답의 4단계에서 컴파일 타임이 약 8할이상 시간이 걸린다. (응답시간 1초의 경우 약 800ms이상 소요) 3. Pug 엔진에서 캐시가 가능하다. 결과 : 컴파일 시간이 0ms으로, 응답시간이 5배 이상 빨라진다. var fn = pug.compileFile('파일.pug',{ basedir:__dirname, cache:true }); res.writeHead(200, {'Content-Type' : 'text/html'}); res.end(fn(varlist)); 캐시이므로, 서버 켜질때 ..

[크롤링] 데이터 수집을 위한 크롤링 5편 : Yahoo 파이낸스를 이용한 환율 크롤링

데이터 수집을 위한 크롤링 연속 포스팅 [크롤링] 데이터 수집을 위한 크롤링 1편 : 크롤링이란 무엇인가? [크롤링] 데이터 수집을 위한 크롤링 2편 : 크롤링에 필요한 필수 요소들 [크롤링] 데이터 수집을 위한 크롤링 3편 : JSON, 더 자세한 설명 [크롤링] 데이터 수집을 위한 크롤링 4편 : Java의 설치와 간단한 Jsoup 예제 [크롤링] 데이터 수집을 위한 크롤링 5편 : Yahoo 파이낸스를 이용한 환율 크롤링 1. 크롤링전에 앞서 본격적으로 자신의 목적에 맞는 크롤러를 만들어보자. 이번에 만들 크롤러는 환율 정보를 가져오는 크롤러이다. 1편에서 다뤘던대로, 4단계로 나누어 그 과정을 살펴보자. - (1) 대상 선정 -> (2) 데이터 로드 -> (3) 데이터 분석 -> (4) 데이터 수..

[크롤링] 데이터 수집을 위한 크롤링 4편 : Java의 설치와 간단한 Jsoup 예제

데이터 수집을 위한 크롤링 연속 포스팅 [크롤링] 데이터 수집을 위한 크롤링 1편 : 크롤링이란 무엇인가? [크롤링] 데이터 수집을 위한 크롤링 2편 : 크롤링에 필요한 필수 요소들 [크롤링] 데이터 수집을 위한 크롤링 3편 : JSON, 더 자세한 설명 [크롤링] 데이터 수집을 위한 크롤링 4편 : Java의 설치와 간단한 Jsoup 예제 [크롤링] 데이터 수집을 위한 크롤링 5편 : Yahoo 파이낸스를 이용한 환율 크롤링 1. Java 설치 크롤링을 위한 언어로 Java와 JSoup 라이브러리를 이용한다. 만약 자신이 편리한 언어가 있다면 해당 언어를 사용해도 무방하다. Jsoup의 경우 Java 버전 라이브러리이며, 해당 언어에 맞는 크롤링 라이브러리가 존재할 것이다. Java를 설치하는 전체 과..

[크롤링] 데이터 수집을 위한 크롤링 3편 : JSON, 더 자세한 설명

데이터 수집을 위한 크롤링 연속 포스팅 [크롤링] 데이터 수집을 위한 크롤링 1편 : 크롤링이란 무엇인가? [크롤링] 데이터 수집을 위한 크롤링 2편 : 크롤링에 필요한 필수 요소들 [크롤링] 데이터 수집을 위한 크롤링 3편 : JSON, 더 자세한 설명 [크롤링] 데이터 수집을 위한 크롤링 4편 : Java의 설치와 간단한 Jsoup 예제 [크롤링] 데이터 수집을 위한 크롤링 5편 : Yahoo 파이낸스를 이용한 환율 크롤링 1. 크롤링이란? 이번 글에서는 JSON과 Javascript단에서 어떻게 사용하는지를 자세히 설명하려고 한다. 또한 앞서 모든 예제는 자바스크립트로 구성될 예정이므로, 잘 이해가 안된다면 웹 브라우저에서 F12(개발자모드)를 열어 예제 코드를 입력해보자. 우선 JSON은 Java..

[크롤링] 데이터 수집을 위한 크롤링 2편 : 크롤링에 필요한 필수 요소들

데이터 수집을 위한 크롤링 연속 포스팅 [크롤링] 데이터 수집을 위한 크롤링 1편 : 크롤링이란 무엇인가? [크롤링] 데이터 수집을 위한 크롤링 2편 : 크롤링에 필요한 필수 요소들 [크롤링] 데이터 수집을 위한 크롤링 3편 : JSON, 더 자세한 설명 [크롤링] 데이터 수집을 위한 크롤링 4편 : Java의 설치와 간단한 Jsoup 예제 [크롤링] 데이터 수집을 위한 크롤링 5편 : Yahoo 파이낸스를 이용한 환율 크롤링 1. 크롤링이란? 전편에 이어서, 이번에는 크롤링에 필요한 필수 요소들을 짚어보도록 하자. 2. 크롤링 대상 어떠한 목적을 가지고 정보 수집을 하는 경우, 그 목적에 부합하는 대상이 필요하다. 당연하게도 웹 크롤링의 대상은 웹 자원이다. 웹 자원의 경우 웹 문서와 API 결과, 좀..

[크롤링] 데이터 수집을 위한 크롤링 1편 : 크롤링이란 무엇인가?

최근 블로그의 유입 로그를 봤더니 생각보다 많은 사람들이 크롤링으로 내 블로그를 들어온다는 사실을 알았다. [Java] Jsoup을 이용한 간단한 웹 크롤러 만들기, 사실 이 글은 워드프레스로 오기 전에 쓴 글로 대학원에서 심심풀이로 썼던 기억이 난다. 블로그에 새글도 없기에 한번 크롤링을 간단하게 다루어서 글을 써보려고한다. 데이터 수집을 위한 크롤링 연속 포스팅 [크롤링] 데이터 수집을 위한 크롤링 1편 : 크롤링이란 무엇인가? [크롤링] 데이터 수집을 위한 크롤링 2편 : 크롤링에 필요한 필수 요소들 [크롤링] 데이터 수집을 위한 크롤링 3편 : JSON, 더 자세한 설명 [크롤링] 데이터 수집을 위한 크롤링 4편 : Java의 설치와 간단한 Jsoup 예제 [크롤링] 데이터 수집을 위한 크롤링 5..

페이스북으로 공유카카오톡으로 공유카카오스토리로 공유트위터로 공유URL 복사