• AWS CLI로 multiple profile 사용하기

    작업환경 windows 10 cli 설치 aws-cli를 링크를 참고해 사용해 설치합니다. 한글설명서로 아주 자세히 나와있습니다. 참고로 저는 msi파일로 설치했습니다. cli가 2버전이 베타로 나왔다고 하네요. 여기에서 확인하실 수 있습니다. cli 및 credential 파일 설정 aws-cli를 사용하는 이유 iam profile을 설정해줘야 cli를 사용할 수 있습니다. aws-cli를 쓰는 이유는 다음과 같습니다. aws 계정은 모르는데...

  • Javascript 유사배열을 배열로 바꾸기

    리스트로 된 html 요소를 추출하고자 할때, 특히 웹크롤을 하고자할때 분명 배열로 추출된 것 같은데 배열 메서드를 쓰려고만 하면 에러가 발생할 때가 있습니다. 그 에러를 겪다가 삽질 후 다음번에는 시행착오를 겪지 않기 위해 이 글을 작성합니다. 아래와 같은 html이 있다고 가정하겠습니다. <ul id="list"> <li class="item">1</li> <li class="item">2</li> <li class="item">3</li> <li class="item">4</li>...

  • AWS EC2는 비밀번호로 & Git은 비밀번호 없이 사용하기

    작업환경 windows 10 git bash EC2 비밀번호 설정하기 INSTANCES - Instances로 이동해서 Launch Instance를 클릭합니다. E키 페어를 만들어서 .pem파일을 다운받거나, 기존에 만들어둔 키 페어를 사용해서 인스턴스를 시작할 수 있습니다. NETWORK & SECURITY - Security Groups로 이동해서 Create Security Group을 클릭합니다. 양쪽으로 ssh 포트를 열어줍니다. 이제 외부에서 ssh로 접속할 수 있는...

  • Docker 위에서 jekyll 실행하기

    작업환경 git bash docker for windows 로컬에 다 설치하고 실행하면 생각할 필요도 없는 문제들이 계속해 발생했습니다. 문제 별로 묶어서 확인 해보겠습니다. 경로 및 옵션 문제 docker run --rm --name blog -v \$(pwd -W):/srv/jekyll -p 49160:4000 -it jekyll/jekeyll jeykll serve 위와 같은 명령어로 실행하면 실행이 되기는 하되 regenerating이 되지 않습니다. 옵션으로...

  • AWS Lambda에서 Python 코드 배포하기

    작업환경 windows 10 python 3.7 docker for windows vanilla python 빠른 코드 배포를 위해 다른 생각 없이 로컬환경에 python을 설치해 pip로 패키지를 설치했습니다. 로컬과 aws lambda의 리눅스 환경이 차이가 있다는 것을 이 때까지는 인지하지 못하고 있었죠. 며칠동안 펼쳐질 고통을 이 때 미리 깨달았어야 했습니다. 기존에 있던 코드에 살을 덧대는 과정이라...

  • Puppeteer로 크롤러 만들기 - 무한스크롤

    작업환경 puppeteer v1.19.0 moment v2.24.0 시리즈 Puppeteer로 크롤러 만들기 - 준비 Puppeteer로 크롤러 만들기 - 페이지네이션 Puppeteer로 크롤러 만들기 - 무한스크롤 모듈 불러오기 및 글로벌 스코프 선언하기 이전 편에서 작성한 것처럼 모듈을 불러옵니다. 이번편에서는 cheerio를 쓰지 않고 puppeteer 내장 함수를 사용할겁니다. // instagram.js const fs = require('fs'); const path =...

  • Puppeteer로 크롤러 만들기 - 페이지네이션

    작업환경 puppeteer v1.19.0 moment v2.24.0 시리즈 Puppeteer로 크롤러 만들기 - 준비 Puppeteer로 크롤러 만들기 - 페이지네이션 Puppeteer로 크롤러 만들기 - 무한스크롤 모듈 불러오기 및 글로벌 스코프 선언하기 함수분리 없이 한 파일에서 모든 코드를 작성하도록 하겠습니다. // ppomppu.js const fs = require('fs'); const path = require('path'); const moment = require('moment'); const...

  • Puppeteer로 크롤러 만들기 - 준비

    시리즈 Puppeteer로 크롤러 만들기 - 준비 Puppeteer로 크롤러 만들기 - 페이지네이션 Puppeteer로 크롤러 만들기 - 무한스크롤 체크리스트 커뮤니티, 포털, SNS는 게시판의 형태가 상이하기때문에 어떤 식으로 크롤할지 전략을 수립하는게 크롤러개발 시간을 단축하는데 큰 도움을 준다고 봅니다. 그래서 아래와 같이 체크리스트를 작성해봤습니다. 출처: 나의 자존감 체크리스트 통합검색이 구글검색인지 아닌지 확인한다 해당 게시판이...

  • Selenium, Puppeteer 비교하기

    서두 nodejs의 cheerio, python의 beautiful soup은 둘 다 스스로 웹사이트를 크롤링 할 수 없습니다. request 라이브러리를 사용해서 html 소스를 가져온 다음에야 크롤이 가능합니다. 또한 웹사이트에서 javascript가 사용된 부분에는 접근하는데 한계가 있습니다. 그래서 이벤트가 일어나야 html이 렌더되는 부분의 데이터를 얻기 위해서는 puppeteer나 selenium같은 라이브러리가 필요합니다. 브라우저를 조작할 수 있는 기능들이 있기때문에...

  • Sequelize 다대다 관계 사용하기

    작업환경 mysql2: 1.6.5 sequelize: 5.8.8 sequelize-cli: 5.4.0 작업순서 여기서 사용하는 용어인 모델은 테이블과 같은 의미로 사용하고 있음을 미리 알려드립니다. sql에서는 다대다 관계가 유효하지 않습니다. 그래서 다리 역할을 하는 테이블을 따로 만들어 인덱스를 주어야합니다. 따라서 쿼리는 테이블 3개로 작동하며, 연결 테이블은 쿼리에 적지 않습니다. 우선 다대다를 구현하기 위해 product, category, product_category...