ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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

    댓글

Designed by Tistory.