JavaScirpt 18

[JavaScript] 문법 기초(for ~of, for ~in, forEach, 함수, 커링, 펼침 연산자, 나머지 파라미터, 화살표 함수, 고차함수, 생성자 함수)

목차 for ~ of 문 여러 개의 요소를 가지는 배열, 문자열, 맵, 셋 등의 자료 구조의 경우에서 모든 요소에 대한 조건 체크나, 순환하면서 요소의 값을 갱신하는 작업을 하는 경우가 있다 for문이 아닌, 조금 더 간결하고 안전한 for ~ of 문을 사용하여 작성할 수 있다. for ~ of문은 배열, 문자열, 맵, 셋 객체에서 사용 가능 규격 명세에서 [Symbol.iterator] 속성이 있는 객체만 사용 가능 일반 객체의 속성에 접근하기 위해서는 for ~ in을 사용 for ~ of 문의 구조 for(let 요소변수이름 of 대상) { // 반복 실행문 } let people = { {name: ‘name11’, age: 12}, {name: ‘name12’, age: 13}, }; for(..

JavaScirpt/basic 2020.12.20

[JavaScript] 문법 기초(변수와 상수, 자료형, 숫자표현, 연산자 기초 등)

자바스크립트 기초 자바스크립트 파워북 www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9791197122811 자바스크립트 파워북 - 교보문고 자바스크립트 입문자를 위한 학습서로, ES6 기초부터 DOM에 대한 이해까지 할 수 있습니다. 300개 이상의 기초 예제를 통해 자바스크립트 실력을 키울 수 있으며, 실무 프로젝트에서 가져 온 다양 www.kyobobook.co.kr 변수와 상수 - ES5까지 사용하던 var - ES6에서 새롭게 추가된 let, const - ES5 까진 상수 선언이 없었지만 ES6에 와서 const 상수 선언자가 생겼다. - 상수로 선언한 변수에 다른 값을 대입하면 에러가 발생 - 변수를 선언..

JavaScirpt/basic 2020.12.19

[Node.js] Starting Node.js with Crawling (insta crawling, last)

서론 평소에 나는 인스타그램을 잘 하지 않지만, 인스타그램에 어떤 태그에 어떠한 태그들을 같이 쓰는가에 대한 호기심이 있어왔다. 그래서 특정 태그를 인스타그램에서 검색하고, 검색한 태그로 게시물을 탐색하면서 같이 쓰인 태그들을 수집하고, 어떤 태그가 많이 쓰이고 같이 쓰였는지를 이번 기회에 알아보았다. 데이터 수집 태그 수집을 위해 라이브러리는 PhantomJS, SlimerJS, CasperJS를 사용하였다. 환경 설정 # nodejs 및 npm이 설치되어 있어야 한다. npm install phantomjs npm install slimerjs #export SLIMERJSLAUNCHER=[firefox bin path under 5.9v] npm install casperjs 코드 및 크롤링 수행 ..

JavaScirpt/Node.js 2020.12.14

[Node.js] Starting Node.js with Crawling (character code, RegExp)

문자 코드와 호환 - 문자 코드 - 컴퓨터에서 문자를 표시하기 위해 대응하는 고유 번호, 문자에 할당된 번호 - 웹 브라우저 위에 표시되는 많은 글들이 숫자의 나열[바이너리], 컴퓨터가 그 숫자의 나열을 문자로 인식하여 표시 - 문자 코드가 어려운 이유 - 알파벳과 숫자만 있다면 1byte로도 충분히 모든 문자가 표현이 가능하지만, - 한글이나 일본어, 중국어 등의 경우에는 문자의 수가 많아 2byte(0~65535)를 사용하지 않고서는 모든 분자를 표현하는 것이 불가능하다. - 이들 언어의 문자를 컴퓨터상에서 다루기 위한 다양한 방법이 고안. - 다만 문제는 문자 코드 간의 호환성, 문자 코드의 인식에 실패하거나 문자 코드 간의 변환이 잘못되면 이른바 '문자가 깨지는' 현상이 발생 - 현재의 주류 : ..

JavaScirpt/Node.js 2020.12.10

[Node.js] Starting Node.js with Crawling (page capturing, electron, css selectors)

인자로 지정한 페이지를 캡쳐하는 도구 - 저번에 이어 이번에는 커맨드 라인에서 인자로 URL을 넘겨주어 스크린샷을 찍는 프로그램을 작성할 것이다. - CasperJS에서는 실행 시 지정한 인자가 casper.cli.args에 배열 형식으로 들어간다. 코드 // Capturing the web page appointed by command line argument. const casper = require('casper').create(); const utils = require('utils'); // Getting an argument. let args = casper.cli.args; if(args.length = 2) savepath = args[1]; // Executing CasperJS proc..

JavaScirpt/Node.js 2020.12.09

[Node.js] Starting Node.js with Crawling (Parsing XML/RSS, PhantomJS?, CasperJS?)

XML/RSS 해석 - eXtensible Markup Langauge / Really Simple Syncdication - XML - eXtensible Markup Language의 약어로 목적에 맞게 사용될 수 있는 범용적인 데이터 형식 - 기본적으로 텍스트 데이터, 각각의 데이터에 태그를 붙임으로써 문서나 데이터를 구조화 가능 - XML의 목적 : 다른 종류의 시스템 간에 구조화된 문서와 데이터를 쉽게 공유하는 것 - XML은 범용적인 형식이며, XML을 바탕으로 한 다양한 데이터 형식이 존재 - 뉴스 사이트의 요약 정보인 RSS나 벡터 그래픽을 다루는 SVG도 XML을 바탕으로 한다. - 엑셀/워드 등 마이크로스프트의 오피스 저장 형식도 여러 XML파일을 ZIP으로 압축한 것 - XML은 기계..

JavaScirpt/Node.js 2020.12.07

[Node.js] Starting Node.js with Crawling, HTML 재귀적 다운

저번 글에 이어서 계속 책 내용을 진행해 보려고 한다 상대 URL을 절대 URL로 변경 - 페이지에서 링크를 추출하는 프로그램을 저번에 작성하였는데, a 태그의 href 속성을 잘 살펴보면 절대 경로가 아닌 상대경로로 출력되던 것을 알 수 있었다 - 상대경로란, 현재 웹 페이지의 위치를 기준으로 기술한 대상 파일의 경로를 뜻하는데 - Node.js의 'url' 표준 module을 사용하면 상대경로를 절대 경로로 변환할 수 있다. - url 모듈의 resolve 메소드를 사용한다 (parameter로 기본 url과, 상대 url을 인자로 준다) - 코드 // download url module const urlType = require('url'); // convert relative path to abs..

JavaScirpt/Node.js 2020.12.06

[Node.js] Starting Node.js with Crawling, HTML 다운로드 까지

Introduction 부족하지만 웹이나 SNS 상의 데이터를 크롤링하여 얻어온 데이터를 감성분석하여 키워드에 대한 사람들의 감정을 알아보려는 프로젝트를 기획하고 있다. 이 글은 데이터를 웹으로부터 얻어오기 위한 첫 기록이며, 내가 공부하는 책의 Summary이다. github.com/Jpub/JSWebCrawler Jpub/JSWebCrawler 리포지토리. Contribute to Jpub/JSWebCrawler development by creating an account on GitHub. github.com ECMAScript가 실현한 범용 자바스크립트의 세계 - ECMAScript는 Ecma International에 의해 표준화된 스크립트 언어의 명세서. - 웹 브라우저별로 달랐던 클라이언트..

JavaScirpt/Node.js 2020.12.05