-
[Node.js] 11일차교육 2019. 9. 27. 00:50
devDependencies
- 개발에서만 사용하는 패키지 (개발용 패키지 ex> 목, 테스트 패키지 등)
- 설치 명령어 : npm install --save-dev
cron
- 유닉스 계열의 Job 스케줄러
- 특정 시간, 날짜, 주기적으로 무언가 실행해야 할 때 사용 (스케줄링 목적)- crontab (cron table) 은 설정 파일
- 스케줄링 프로그램을 이용해서 특정 시간에 크롤링하도록 구현 가능 (특정 시간마다 원하는 URL 호출 가능)
- 주의할 점은 우리 서버 시간과 다른 서버 시간이 다를 수 있음
크롤링 종류
- 정적인 사이트(정보)를 크롤링하는 경우 : 대한 통운에서 배송 정보를 가져오는 것
- 동적인 사이트(정보)를 크롤링하는 경우 : 동적인 액션에 따라 변하는 정보를 가져오는 것ex) 클릭했을 때 HTML 요소가 바뀌는 경우 (Ajax 콜)
puppeteer (인형을 조종하는 사람)
- UI 테스트 용도 : puppeteer가 상품등록/수정/삭제를 자동으로 해줘서 테스트 자동화 가능 (Selenium이랑 기능이 비슷)
- 사용자가 일일이 클릭하고 데이터 넣는 작업을 자동으로 코드가 해줌
- 모든 브라우저 지원 (한 번 짜두면 모든 브라우저에서 테스트 가능, 옵션 설정으로 가능)
- 크롤링 용도 : crontab + headless broswer 이용해서 자동으로 반복동작 수행 가능 (특정 시간마다 농구 기사를 가져오는 크롤링)
- puppeteer를 통해 내가 수행하고 싶은 액션들을 코드로 짜두면 됨 (ex. 네이버 로그인해서, 네이버 스포츠 페이지 들어가서 농구 부분 기사들을 가지고 오는 행위)
- headless browser는 웹브라우저를 띄우지 않고 원하는 동작을 해줌 (리눅스 같은 데서 웹브라우저를 띄울 수 없기 때문)
- headless 지원한다는 의미 = linux에서 돌아갈 수 있다는 의미
테스트
- mocha (모카) : Node.js 테스트 프레임 워크
var assert = require('assert'); describe('Array', function() { describe('#indexOf()', function() { it('should return -1 when the value is not present', function() { assert.equal([1, 2, 3].indexOf(4), -1); }); }); });
- chai : assertion 라이브러리- supertest : 통합 테스트
ORM
- ORM에서 자동으로 생성해주는 Mapping 테이블은 (LikeProducts 테이블) 직접 접근을 못함
- 만약 직접 접근하고 싶다면 Mapping 테이블을 별도로 생성해서 1:N으로 만들어줘야 함'교육' 카테고리의 다른 글
[Node.js] 13일차 (0) 2019.10.09 [컴퓨터 시스템] 1일차 (0) 2019.10.07 [Node.js] 10일차 (0) 2019.09.25 [Node.js] 8일차 (2) 2019.09.18 [Node.js] 4일차 (0) 2019.09.11